前面学习了作业管理的基础知识后,就可以进行简单的实战一波了,以下我会举一个具体的例子进行实战讲解,希望能更清晰的展现作业管理的强大之处。文章的末尾有我总结的实战所使用的全部函数。
一、步骤总结
配置作业管理,一共分为六个步骤:
- 数据准备
- 创建作业(代理)环境
- 创建操作员
- 配置作业(创建作业;开始配置作业;为作业增加步骤;为作业增加调度;提交配置)
- 创建并关联警报
- 监控作业(添加监控服务管理员;开启监控服务)
二、实战配置
2.1数据准备
创建一张表,名为 MYJOB,id列为主键。
create table myjob(
id int primary key,
name varchar(100)
);
2.2创建作业(代理)环境
使用以下函数打开作业代理环境
SP_INIT_JOB_SYS(1);
2.3创建操作员
创建操作员 Ansion。可以通过表 SYSOPERATORS 查看已创建操作员的相关信息
SP_CREATE_OPERATOR('Ansion',1,'Ansion@dameng.com','192.168.11.141');
2.4配置作业
创建作业:作业名称为TEST;启用该作业;开启邮件系统;收邮件操作员指定为Ansion;邮件在作业执行结束后发送;开启网络发送;收网络日志操作员指定为Ansion;作业执行结束后发送网络信息;作业信息描述是“一个测试作业”。
SP_CREATE_JOB('TEST',1,1,'Ansion',2,1,'Ansion',2,'一个测试作业');
开始配置作业
SP_JOB_CONFIG_START('TEST');
为作业增加步骤:作业名称是TEST;增加的步骤名为STEP;步骤的类型是执行一段SQL语句;指定的一段SQL语句是插入如下;指定步骤执行成功后,不报告步骤执行成功,结束作业;指定步骤执行失败后,报告步骤执行失败,并结束作业;当步骤执行失败后,需要重试的次数为1;在每两次步骤执行重试之间的间隔时间为1秒;步骤执行时输出文件的路径(该参数已废弃);输出文件的追写方式是从文件指针当前指向的位置开始追写。
SP_ADD_JOB_STEP('TEST','STEP',0,
'insert into myjob values(001,"abcd");
insert into myjob values(002,"efgh");
insert into myjob values(003,"ijkl")',0,1,1,1,'',0);
为作业增加调度:作业名称为TEST;调度名称为SCHEDULE;启用该调度;按天的频率来执行;每1天执行一次;不需要更精准的频率;一天内每隔1分钟执行一次;CURTIME 表示系统当前时间;ENDTIME 指定 23:59:59,表示每天都是执行到这个时间为止。CURDATE表示系统当前日期;DURING_END_DATE 指定的为 NULL,表示这个调度指定的日期范围为从开始执行那刻起,永不停止;DESCRIBE 指定为‘一个测试调度’。
SP_ADD_JOB_SCHEDULE('TEST','SCHEDULE',1,1,1,0,1,CURTIME,'23:59:59',
CURDATE,NULL,'一个测试调度');
提交作业配置
SP_JOB_CONFIG_COMMIT('TEST');
2.5创建并关联警报
创建警报
警报名为ALERT1;开启该警报;指定发生错误时警报;触发警报的错误类型为指定错误码;指定的错误码为-6602;表示警报发生后,推迟1秒通知操作员,警报注释为“DDL警报测试”。
SP_CREATE_ALERT('ALERT1',1,0,12,-6602,1,'DDL警报测试');
关联警报
将警报关联到操作员Ansion上;警报执行结果邮件通知Ansion;警报执行结果网络发送通知Ansion。
SP_ALERT_ADD_OPERATOR('ALERT1','Ansion',1,1);
2.6监控作业
添加监控服务管理员:
监控管理员名称为SYSDBA;密码为SYSDBA;服务器地址为192.168.11.142;邮件地址为admin@dameng.com;邮件用户名为admin@dameng.com;邮箱登录密码为123456.
SP_ADD_MAIL_INFO('SYSDBA','SYSDBA','192.168.11.142',
'admin@dameng.com','admin@dameng.com','123456');
开启监控服务
以下涉及的信息皆是监控服务管理员的信息,显示如下信息表示开启服务成功!
[dmdba@LH02 bin]$ ./dmjmon userid=SYSDBA/SYSDBA@192.168.11.142:5236
initial monitor system ...
SYSTEM IS READY.
2.7查看结果
1.通过表 SYSJOBHISTORIES2 可以查看作业的执行情况。
select * from sysjob.SYSJOBHISTORIES2;
2.通过表 SYSALERTHISTORIES 查看警报发生的历史记录。
例如,当用户插入"insert into myjob values(001,“abcd”);"语句时,表 SYSALERTHISTORIES 的查询结果会发出如下警报:
select * from sysjob.SYSALERTHISTORIES;
三、实战总结
以上就是实战的全部内容了!
达梦在线服务平台:https://eco.dameng.com/