参考 《DM8作业系统使用手册》,手册位于dm安装目录的doc目录下
功能简介
管理员的工作中,有许多日常工作是固定不变的,如定期备份数据库或者生成统计表,这种工作既单调又费时;而通过配置作业系统可以使这些重复的工作自动完成,节省大量时间。
作业系统大致包含作业、警报和操作员三部分。用户需要为作业配置步骤和调度。还可以创建警报,当发生警报时,将警报信息通知操作员,以便操作员能够及时做出响应。
- 操作员是负责维护 DM 服务器运行实例的个人。
- 作业是由 DM 代理程序按顺序执行的一系列指定的操作。
- 警报是系统中发生的某种事件。
- 调度是用户定义的一个时间安排,在给定的时刻到来时,系统会启动相关的作业,按定义的步骤依次执行。
- 普通用户配置作业需要ADMIN JOB权限
配置作业环境
要进行作业管理,需要先创建作业环境,即创建一些系统表来存储作业相关的对象、历史记录等信息,位于SYSJOB模式下。删除作业环境则会删除和作业相关的一切信息。
可以通过命令行和图形化客户端两种方式来配置。
命令行
- SP_INIT_JOB_SYS(1); 创建作业环境
- SP_INIT_JOB_SYS(0); 删除作业环境
SQL> select owner,object_name from dba_objects where owner='SYSJOB' and object_type='TABLE';
未选定行
已用时间: 5.594(毫秒). 执行号:419.
SQL> SP_INIT_JOB_SYS(1);
DMSQL 过程已成功完成
已用时间: 242.035(毫秒). 执行号:420.
SQL> select owner,object_name from dba_objects where owner='SYSJOB' and object_type='TABLE';
行号 OWNER OBJECT_NAME
---------- ------ ---------------------
1 SYSJOB SYSALERTHISTORIES
2 SYSJOB SYSALERTNOTIFICATIONS
3 SYSJOB SYSALERTS
4 SYSJOB SYSJOBHISTORIES
5 SYSJOB SYSJOBHISTORIES2
6 SYSJOB SYSJOBS
7 SYSJOB SYSJOBSCHEDULES
8 SYSJOB SYSJOBSTEPS
9 SYSJOB SYSMAILINFO
10 SYSJOB SYSOPERATORS
11 SYSJOB SYSSTEPHISTORIES2
11 rows got
已用时间: 6.538(毫秒). 执行号:421.
SQL> SP_INIT_JOB_SYS(0);
DMSQL 过程已成功完成
已用时间: 124.976(毫秒). 执行号:422.
SQL> select owner,object_name from dba_objects where owner='SYSJOB' and object_type='TABLE';
未选定行
已用时间: 0.807(毫秒). 执行号:423.
客户端
作业系统的功能
作业系统的功能主要分为三类:
操作员
在预期事件发生时,可以通过电子邮件或网络发送的方式通知到操作员。
警报
定义某种系统事件,在其发生时通知操作员
作业
指定一系列操作,定时执行,包括:
- 创建作业:指定作业名和作业描述
- 开始作业配置:客户端配置会自动执行这一步骤
- 配置作业步骤:需要执行的操作
- 配置作业调度:定义执行的时间
- 完成作业配置:客户端配置会自动执行这一步骤
总结
作业系统的所有功能都可以通过命令行和图形化客户端两种方式来实现,其中命令行的方式较为繁杂不便记忆。具体可以查看位于dm安装目录的doc目录下的《DM8作业系统使用手册》。
通过上面的截图可以看到每一个功能里都有一个DDL的选项,即通过图像界面设置的功能最终都会以命令行的方式显示出来,在没有图形界面时我们也可以通过自己的电脑客户端配置想要的作业功能,在将生成的语句复制到需要的机器上执行。
以配置一个作业为例:
使用客户端获取命令
复制执行到命令行
- 别忘了先执行SP_INIT_JOB_SYS(1);创建作业环境
SQL> SP_INIT_JOB_SYS(1);
DMSQL 过程已成功完成
已用时间: 186.470(毫秒). 执行号:807.
SQL> call SP_CREATE_JOB('job01',1,0,'',0,0,'',0,'每天12点执行select * from dba_tables;');
DMSQL 过程已成功完成
已用时间: 12.764(毫秒). 执行号:808.
SQL> call SP_JOB_CONFIG_START('job01');
DMSQL 过程已成功完成
已用时间: 11.078(毫秒). 执行号:809.
SQL> call SP_ADD_JOB_STEP('job01', 'a', 0, 'select * from dba_tables;', 0, 0, 0, 0, NULL, 0);
DMSQL 过程已成功完成
已用时间: 11.791(毫秒). 执行号:810.
SQL> call SP_ADD_JOB_SCHEDULE('job01', 'aa', 1, 1, 1, 0, 0, '12:00:00', NULL, '2021-08-13 14:10:40', NULL, '');
DMSQL 过程已成功完成
已用时间: 12.236(毫秒). 执行号:811.
SQL> call SP_JOB_CONFIG_COMMIT('job01');
DMSQL 过程已成功完成
已用时间: 57.586(毫秒). 执行号:812.
SQL> select name,describe from sysjob.sysjobs;
行号 NAME DESCRIBE
---------- ----- ------------------------------------------
1 job01 每天12点执行select * from dba_tables;
已用时间: 0.397(毫秒). 执行号:813.
可以通过sysjob模式下的表来查看作业系统的相关信息。
达梦云适配中心技术社区:https://eco.dameng.com/community/question