如何在openGauss 2.1.0中使用Job?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在openGauss 2.1.0中使用Job?相关的知识,希望对你有一定的参考价值。
参考技术AJob类似Unix中的crontab,有定时执行的功能,可以在指定的时间点或每天的某个时间点等自行执行任务。在各类系统使用运行过程中,经常会遇到需要定时完成的任务,比如定时更新数据,定时统计数据生成报表等等,这些工作都可以使用Job来完成。在openGauss 2.1.0中,提供了以下接口来实现管理Job。
1 接口描述
2 接口定义和使用示例
PKG_SERVICE.JOB_CANCEL
存储过程CANCEL删除指定的定时任务。
PKG_SERVICE.JOB_CANCEL函数原型为:
PKG_SERVICE.JOB_CANCEL( job IN INTEGER);
示例:
存储过程FINISH禁用或者启用定时任务。
PKG_SERVICE.JOB_FINISH函数原型为:
存储过程JOB_SUBMIT提交一个系统提供的定时任务。
PKG_SERVICE.JOB_SUBMIT函数原型为:
PKG_SERVICE.JOB_SUBMIT( id IN BIGINT DEFAULT, content IN TEXT, next_date IN TIMESTAMP DEFAULT sysdate, interval_time IN TEXT DEFAULT ‘null’, job OUT INTEGER);
当创建一个定时任务(JOB)时,系统默认将当前数据库和用户名与当前创建的定时任务绑定起来。该接口函数可以通过call或select调用,如果通过select调用,可以不填写出参。如果在存储过程中,则需要通过perform调用该接口函数。如果提交的sql语句任务使用到非public的schema,应该指定表或者函数的schema,或者在sql语句前添加set current_schema = xxx;语句。
示例:
PKG_SERVICE.JOB_UPDATE
存储过程UPDATE修改定时任务的属性,包括任务内容、下次执行时间、执行间隔。
PKG_SERVICE.JOB_UPDATE函数原型为:
PKG_SERVICE.JOB_UPDATE( id IN BIGINT, next_time IN TIMESTAMP, interval_time IN TEXT, content IN TEXT);
示例:
存储过程SUBMIT_ON_NODES创建一个所有CN/DN上的定时任务,仅sysadmin有此权限。
PKG_SERVICE.SUBMIT_ON_NODES函数原型为:
示例:
PKG_SERVICE.ISUBMIT_ON_NODES
ISUBMIT_ON_NODES与SUBMIT_ON_NODES语法功能相同,但其第一个参数是入参,即指定的作业号,SUBMIT最后一个参数是出参,表示系统自动生成的作业号。仅sysadmin有此权限。
3 JOB的使用示例
检查Job运行结果
修改为2分钟执行一次
检查修改情况和运行结果
禁用和启用任务
禁用和启用都是同样的函数pkg_service.job_finish,传入不同的参数表示是禁用还是启用。
可以看到如果重新启用任务的时候,没有指定下次运行时间,那么下次运行时间会始终保持在4000年,意味着仍然不会启动,所以如果禁用任务之后再重新启动,需要手动显式指定下次运行时间。
墨天轮原文链接:https://www.modb.pro/db/137362?sjhy(复制到浏览器或者点击“阅读原文”立即查看)
关于作者
刘旭,2005开始接触数据库,2014年加入云和恩墨,从事过Oracle数据库优化、SQL审核和产品开发。现阶段主要参与MogDB数据库的测试和文档编写等相关工作。
猿创征文|openGauss数据库从3.0.0升级到3.1.0操作实践
国产数据库openGauss 9.30日新出了3.1.0版本,想必有些小伙伴已经迫不及待想尝试了吧。之前基于3.0.0版本进行了一些实践,本篇就详细介绍如何将openGauss数据库从3.0.0升级到3.1.0。
目录
升级流程
升级约束官网文档详细列出,具体就不再一一列举。主要就是升级期间不要做增删改。生产和商业环境务必按照要求执行。
升级前准备
1.检查升级前版本
openGauss升级版本要求如下表所示。
[omm@pekphisprb70593 ~]$ gsql --version
gsql (openGauss 3.0.0 build 02c14696) compiled at 2022-04-01 18:12:34 commit 0 last mr
我这里查出来就是3.0.0版本
2.查看数据库节点磁盘使用率,低于80%时再执行升级操作。
[omm@pekphisprb70593 ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda3 35G 7.0G 26G 22% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 12K 3.9G 1% /dev/shm
tmpfs 3.9G 49M 3.8G 2% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/vda1 976M 117M 793M 13% /boot
tmpfs 783M 0 783M 0% /run/user/0
3. 以数据库用户(如omm)登录节点,执行如下命令查看数据库状态,确认cluster_state : Normal。
[omm@pekphisprb70593 ~]$ gs_om -t status
-----------------------------------------------------------------------
cluster_name : opengSingle
cluster_state : Normal
redistributing : No
-----------------------------------------------------------------------
4.以root用户执行如下命令对服务器的OS参数进行检查。检查服务器的OS参数的目的是为了保证数据库正常通过预安装,并且在安装成功后可以安全高效的运行。详细的检查项目请参见《工具参考》中的“服务端工具 > gs_checkos”工具。
gs_checkos -i A
5.官网并没有提供单独的升级包,所以根据情况获取新的版本安装包。我的旧版本是centos企业版,继续获取3.1.0企业版。
https://opengauss.org/zh/download.html
6.手动备份
多一重备份永远没有过错。不过我这里没有重要数据,就跳过了。
升级前自己先建个表,验证升级后是不是正常。
升级操作
1. root用户创建新包目录。
mkdir -p /opt/software/gaussdb_upgrad
2.将需要更新的新包上传至目录“/opt/software/gaussdb_upgrade”并解压,把之前旧版本使用的cluster_config.xml也拷贝过来。
3. 修改属主
[root@pekphisprb70593 software]# chown -R omm:dbgrp gaussdb_upgrade/
4.进入安装包解压出的script目录下,在升级前执行前置脚本gs_preinstall。
cd /opt/software/gaussdb_upgrade/script
./gs_preinstall -U omm -G dbgrp -X /opt/software/gaussdb_upgrade/cluster_config.xml
这里报错了,在产品文档里面查看错误码描述是说python版本的问题。
根据提示重新编译python,补充CFLAGS=-fPIC 。之前3.0.0版本没有个这个要求。
cd 到Python安装包目录下
./configure --prefix=/usr/local/python3 --enable-shared CFLAGS=-fPIC
make
make install
重新执行gs_preinstall命令成功。
[root@pekphisprb70593 script]# ./gs_preinstall -U omm -G dbgrp -X /opt/software/gaussdb_upgrade/cluster_config.xml
Parsing the configuration file.
Successfully parsed the configuration file.
Installing the tools on the local node.
Successfully installed the tools on the local node.
Setting host ip env
Successfully set host ip env.
Are you sure you want to create the user[omm] (yes/no)? no
Preparing SSH service.
Successfully prepared SSH service.
Checking OS software.
Successfully check os software.
Checking OS version.
Successfully checked OS version.
Creating cluster's path.
Successfully created cluster's path.
Set and check OS parameter.
Setting OS parameters.
Successfully set OS parameters.
Warning: Installation environment contains some warning messages.
Please get more details by "/opt/software/gaussdb_upgrade/script/gs_checkos -i A -h pekphisprb70593 --detail".
Set and check OS parameter completed.
Preparing CRON service.
Successfully prepared CRON service.
Setting user environmental variables.
Successfully set user environmental variables.
Setting the dynamic link library.
Successfully set the dynamic link library.
Setting Core file
Successfully set core path.
Setting pssh path
Successfully set pssh path.
Setting Cgroup.
Successfully set Cgroup.
Set ARM Optimization.
No need to set ARM Optimization.
Fixing server package owner.
Setting finish flag.
Successfully set finish flag.
Preinstallation succeeded.
5.切换至omm用户 使用如下命令进行就地升级或者灰度升级。
gs_upgradectl -t auto-upgrade -X /opt/software/gaussdb_upgrade/cluster_config.xml --grey
中途根据提示多次输入omm用户的密码,最后提示successfully upgrade all nodes.就可以了。详细可参加下文。
[omm@pekphisprb70593 script]$ gs_upgradectl -t auto-upgrade -X /opt/software/gaussdb_upgrade/cluster_config.xml --grey
Static configuration matched with old static configuration files.
The authenticity of host 'pekphisprb70593 (fe80::f816:3eff:fee3:12fb%eth0)' can't be established.
ECDSA key fingerprint is SHA256:yOyJOqmNfoKjxATR/5n3JNeEQDqH2BVAKz/Sxr27clA.
ECDSA key fingerprint is MD5:42:8f:e9:f1:88:6e:18:c0:d0:68:6a:97:30:0b:d0:77.
Are you sure you want to continue connecting (yes/no)? yes
omm@pekphisprb70593's password:
omm@pekphisprb70593's password:
Successfully set upgrade_mode to 0.
Checking upgrade environment.
Successfully checked upgrade environment.
Start to do health check.
Successfully checked cluster status.
Upgrade one node 'pekphisprb70593'.
NOTICE: The directory /opt/huawei/install/app_02c14696 will be deleted after commit-upgrade, please make sure there is no personal data.
Performing grey rollback.
omm@pekphisprb70593's password:
omm@pekphisprb70593's password:
No need to rollback.
The directory /opt/huawei/install/app_02c14696 will be deleted after commit-upgrade, please make sure there is no personal data.
Installing new binary.
copy certs from /opt/huawei/install/app_02c14696 to /opt/huawei/install/app_4e931f9a.
Successfully copy certs from /opt/huawei/install/app_02c14696 to /opt/huawei/install/app_4e931f9a.
Successfully backup hotpatch config file.
Sync cluster configuration.
Successfully synced cluster configuration.
Switch symbolic link to new binary directory.
Successfully switch symbolic link to new binary directory.
Switching all db processes.
Check cluster state.
Cluster state: [ Cluster State ]
cluster_state : Normal
redistributing : No
current_az : AZ_ALL
[ Datanode State ]
node node_ip port instance state
-------------------------------------------------------------------------------
1 pekphisprb70593 10.x.x.218 15400 6001 P Primary Normal
Create checkpoint before switching.
Switching DN processes.
Ready to grey start cluster.
Grey start cluster successfully.
Wait for the cluster status normal or degrade.
Successfully switch all process version
The nodes ['pekphisprb70593'] have been successfully upgraded to new version. Then do health check.
Start to do health check.
Successfully checked cluster status.
Waiting for the cluster status to become normal.
.
The cluster status is normal.
Upgrade main process has been finished, user can do some check now.
Once the check done, please execute following command to commit upgrade:
gs_upgradectl -t commit-upgrade -X /opt/software/gaussdb_upgrade/cluster_config.xml
Successfully upgrade all nodes.
升级验证
以数据库用户(如omm)登录节点,source环境变量,执行如下命令查看所有节点的版本信息。
[omm@pekphisprb70593 script]$ gsql --version
gsql (openGauss 3.1.0 build 4e931f9a) compiled at 2022-09-29 14:19:24 commit 0 last mr
以数据库用户(如omm)执行如下命令查看数据库状态,查询结果的cluster_state为Normal代表数据库正常。
[omm@pekphisprb70593 script]$ gs_om -t status
-----------------------------------------------------------------------
cluster_name : opengSingle
cluster_state : Normal
redistributing : No
-----------------------------------------------------------------------
原来的数据也在,新建也操作正常。
opengauss_db=# select * from test1;
id
----
1
(1 row)
opengauss_db=# create table test2(name varchar(20));
CREATE TABLE
提交升级
升级完成后,如果验证也没问题,接下来就可以提交升级,需要注意的是,一旦提交操作完成,则不能再执行回滚操作。
以数据库用户(如omm)执行如下命令完成升级提交。
gs_upgradectl -t commit-upgrade -X /opt/software/gaussdb_upgrade/cluster_config.xml
至此,升级完成。
openGauss: 一款高性能、高安全、高可靠的企业级开源关系型数据库。
🍒如果您觉得博主的文章还不错或者有帮助的话,请关注一下博主,如果三连收藏支持就更好啦!谢谢各位大佬给予的鼓励!
以上是关于如何在openGauss 2.1.0中使用Job?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用pg_chameleon迁移MySQL数据库至openGauss
❤️如何使用pg_chameleon迁移MySQL数据库至openGauss❤️