1、什么是作业管理?
在数据库的日常运维工作中,有许多日常工作都是固定不变的。例如,定期备份数据库,定期生 成数据统计报表等等。这些工作既单调又费时,如果这些重复任务能够自动化完成,那就可以节省大量的时间。
DM 的作业系统为用户提供了创建作业,并对作业进行调度执行以完成相应管理任务的功能。可以让这些重复的数据库任务自动完成,实现日常工作自动化。
作业系统大致包含作业、 警报和操作员三部分。用户需要为作业配置步骤和调度。还可以创建警报,当发生警报时,将警报信息通知操作员,以便操作员能够及时做出响应。
2、配置作业
作业配置可以通过两种方式来实现:一是通过系统过程来实现;二是通过图形化客户端 MANAGER 管理工具实现。
2.1、图形化工具实现
代理环境(达梦数据库会创建一个sysjob的模式)
创建作业:
2.2、系统过程实现
例子:
1、创建作业环境
SP_INIT_JOB_SYS(1);
2、创建操作员bill。可以通过表SYSOPERATORS查看已创建操作员的相关信息
SP_CREATE_OPERATOR('bill', 1, 'bill@qq.com', '192.168.17.0');
3、创建作业TEST。可以通过表SYSJOBS看到作业相关信息。
SP_CREATE_JOB('bill', 1, 1, 'bill', 2, 1, 'bill', 2, '一个测试作业');
4、开始配置作业
SP_JOB_CONFIG_START('TEST');
5、为作业增加一个步骤
向表 MYJOB 中插入数据,因为 A 列是主键,所以第三条数据 A 列值重复会被报错,错 误码-6602。可以通过表 SYSJOBSTEPS 查看到步骤相关信息。
SP_ADD_JOB_STEP('TEST', 'STEP', 0, 'insert into myjob values(1000,''STEP
1000'');insert into myjob values(1001, ''STEP 1001'');insert into myjob
values(1001, ''STEP 1001'');', 0, 2, 1, 1,'', 0);
6、为作业增加一个调度。可以通过表SYSJOBSCHEDULES查看到调度相关信息
SP_ADD_JOB_SCHEDULE('TEST', 'SCHEDULE', 1, 1, 1, 0, 1, CURTIME, '23:59:59', CURDATE, NULL, '一个测试调度');
7、提交配置
SP_JOB_CONFIG_COMMIT('TEST');
8、创建警报ALERT1,指定错误码-6602。可以在表SYSALERTS中查看到警报的相关信息。
SP_CREATE_ALERT('ALERT1', 1, 0,12, -6602, 1, 'DDL 警报测试');
9、关联警报,将警报 ALERT1 发送给关联的操作员bill。可以在表SYSALERTNOTIFICATIONS 中查看到警报与操作员的关联信息。
SP_ALERT_ADD_OPERATOR('ALERT1','bill',1,1);
10、添加监控服务DMJMON管理员。可以通过表SYSMAILINFO查看监控服务器管理员 信息。
SP_ADD_MAIL_INFO('SYSDBA','SYSDBA','192.168.17.0','bill@qq.com','bill@qq.com','888888');
至此就配置完了作业以及监控。
3、查看作业
如何去查看作业执行情况?
SQL> select * from sysjob.sysjobs;
SQL> select * from sysjob.sysjobhistories;
SQL> select * from sysjob.sysjobschedules;
SQL> select * from sysjob.sysjobsteps;