作业权限
通常作业的管理是由DBA来维护,默认DBA拥有全部的作业权限;ADMIN JOB权限可以添加、配置、调度和删除作业等,可赋予普通用户管理作业权限
GRANT ADMIN JOB TO CRM;
一、初始化作业环境
1、通过系统过程创建或删除系统表
--作业环境初始化(DBA执行,ADMIN JOB无权限)
SP_INIT_JOB_SYS(1)
--作业环境销毁(DBA执行,ADMIN JOB无权限)
SP_INIT_JOB_SYS(0)
2、通过图形化客户端创建或删除
使用DM MANAGER管理工具,右击代理-->创建代理环境
二、管理操作员
1、通过系统过程管理
#创建一个名为CRM的操作员。
call SP_CREATE_OPERATOR('CRM',1,'crm@dameng.shanghai','192.168.50.66');
#修改操作员CRM的信息(将CRM置为不可用)
SP_ALTER_OPERATOR('CRM', 0, 'crm\@dameng.shanghai', '192.168.0.38');
#删除名为CRM的操作员。
SP_DROP_OPERATOR('CRM');
2、通过图形化客户端实现
三、作业管理
1、创建作业
对应调用系统过程的SQL:
call SP_CREATE_JOB('TEST',1,1,'CRM',1,1,'CRM',1,'新建作业'); call SP_JOB_CONFIG_START('TEST'); #指定对一个作业配置的开始 call SP_JOB_CONFIG_COMMIT('TEST'); #指定对一个作业配置的结束 |
2、添加作业步骤
添加两个作业步骤,设置[高级]选项,对应调用系统过程的SQL:
call SP_ADD_JOB_STEP('TEST', 'STEP1', 0, 'select * from XCKY.D_LOG;', 3, 1, 1, 10, NULL, 0); call SP_ADD_JOB_STEP('TEST', 'STEP2', 0, 'SELECT * FROM D_LOG where ID=1;', 1, 1, 0, 0, NULL, 0); |
3、添加作业调度步骤
添加两个作业调度步骤,对应调用系统过程的SQL:
call SP_ADD_JOB_SCHEDULE('TEST', 'SCHEDULE1', 1, 0, 0, 0, 0, NULL, NULL, '2022-04-21 10:22:58', NULL, '调度测试1'); call SP_ADD_JOB_SCHEDULE('TEST', 'SCHEDULE2', 1, 1, 1, 0, 0, '10:00:00', NULL, '2022-04-22 00:00:00', NULL, '调度测试2-反复执行'); |
4、通过系统过程管理总结
以上整个作业配置过程的SQL如下:
call SP_CREATE_JOB('TEST',1,1,'CRM',0,1,'CRM',0,'测试作业'); call SP_JOB_CONFIG_START('TEST'); call SP_ADD_JOB_STEP('TEST', 'STEP1', 0, 'select * from XCKY.D_LOG;', 3, 1, 1, 10, NULL, 0); call SP_ADD_JOB_STEP('TEST', 'STEP2', 0, 'SELECT * FROM D_LOG where ID=1;', 1, 1, 0, 0, NULL, 0); call SP_ADD_JOB_SCHEDULE('TEST', 'SCHEDULE1', 1, 0, 0, 0, 0, NULL, NULL, '2022-04-21 10:22:58', NULL, '调度测试1'); call SP_ADD_JOB_SCHEDULE('TEST', 'SCHEDULE2', 1, 1, 1, 0, 0, '10:00:00', NULL, '2022-04-22 00:00:00', NULL, '调度测试2-反复执行'); call SP_JOB_CONFIG_COMMIT('TEST'); |
1.创建/修改/删除作业过程介绍
#创建作业
SP_CREATE_JOB (
job_name varchar(128), #作业名称
enabled int, #作业是否启用。1启用;0不启用
enable_email int, #作业是否开启邮件系统。1是;0否
email_optr_name varchar(128), #指定操作员名称
email_type int, #0表示在作业执行成功后发送;1表示在作业执行失败后发送;2表示在作业执行结束后发送
enabled_netsend int, #作业是否开启网络发送。1是;0否
netsend_optr_name varchar(128), #指定操作员名称
netsend_type int, #0表示在作业执行成功后发送;1表示在作业执行失败后发送;2表示在作业执行结束后发送
describe varchar(8187) #作业描述信息,最长500个字节
)
#修改作业
SP_ALTER_JOB('TEST', 0, 1, 'DBA', 2, 1, 'DBA', 2, '修改作业');
SP_JOB_CONFIG_START('TEST');
SP_JOB_CONFIG_COMMIT('TEST');
#删除作业
SP_DROP_JOB('TEST');
2.配置作业
#指定对一个作业配置的开始/结束,在两个过程之间配置所有作业选项。
SP_JOB_CONFIG_START('TEST');
SP_JOB_CONFIG_COMMIT('TEST');
#设置作业执行节点
SP_JOB_SET_EP_SEQNO('TEST',2);
3.增加作业步骤
增加作业的步骤通过系统过程SP_ADD_JOB_STEP实现。语法如下:
SP_ADD_JOB_STEP (
job_name varchar(128), #作业的名称
step_name varchar(128), #表示增加的步骤名
type int, #步骤的类型。取值0、1、2、3、4、5和6。说明如下:
0表示执行一段SQL语句或者是语句块。
1表示执行基于V1.0版本的备份还原(没有WITHOUT LOG和PARALLEL选项)。
2表示重组数据库。
3表示更新数据库的统计信息。
4表示执行DTS(数据迁移)。
5表示执行基于V1.0版本的备份还原(有WITHOUT LOG和PARALLEL选项)。
6表示执行基于V2.0版本的备份还原。
command varchar(8187), #指定不同步骤类型(TYPE)下,步骤在运行时所执行的语句
succ_action int, #指定步骤执行成功后,下一步该做什么
0表示不报告步骤执行成功,并结束作业。
1表示报告步骤执行成功,并结束作业。
2表示不报告步骤执行成功,并执行下一步。
3表示报告步骤执行成功,并执行下一步。
fail_action int, #指定步骤执行失败后,下一步该做什么事。取值0、1、2、3。说明如下:
0表示不报告步骤执行失败,并结束作业。
1表示报告步骤执行失败,并结束作业。
2表示不报告步骤执行失败,并执行下一步。
3表示报告步骤执行失败,并执行下一步。
retry_attempts int, #表示当步骤执行失败后,需要重试的次数。取值范围0~100次
retry_interval int, #表示在每两次步骤执行重试之间的间隔时间。不能大于10秒钟
output_file_path varchar(256), #该参数已废弃
append_flag int #输出文件的追写方式。
)
4.添加作业调度
增加调度通过调度系统过程SP_ADD_JOB_SCHEDULE实现。语法如下:
SP_ADD_JOB_SCHEDULE (
job_name varchar(128), #作业名称
schedule_name varchar(128), #待创建的调度名称
enable int, #表示调度是否启用,布尔类型。1启用;0不启用
type int, #指定调度类型。取值0、1、2、3、4、5、6、7、8。分别介绍如下:
0表示指定作业只执行一次,执行时间由下面的参数DURING_START_DATE指定
1按天的频率来执行。
2按周的频率来执行。
3在一个月的某一天执行。
4在一个月的第一周第几天执行。
5在一个月的第二周的第几天执行。
6在一个月的第三周的第几天执行。
7在一个月的第四周的第几天执行。
8在一个月的最后一周的第几天执行。
freq_interval int, #与TYPE有关。表示不同调度类型下的发生频率
freq_sub_interval int,
freq_minute_interval int,
starttime varchar(128), #定义作业被调度的起始时间
endtime varchar(128), #定义作业被调度的结束时间
during_start_date varchar(128), #指定作业被调度的起始日期
during_end_date varchar(128), #指定作业被调度的结束日期。DURING_END_DATE和ENDTIME都为空,调度活动会一直持续下去。
describe varchar(500) #表示调度的注释信息,最大长度为500个字节
)
四、警报管理
1、新建警报
对应调用系统过程SQL:
call SP_CREATE_ALERT('ALERT1',1,0,1,-1,5,'警报测试1'); call SP_ALERT_ADD_OPERATOR('ALERT1','CRM',1,1); |
五、添加一个备份作业
call SP_CREATE_JOB('BACKUP_2',1,0,'',0,0,'',0,'备份测试作业2'); call SP_JOB_CONFIG_START('BACKUP_2'); call SP_ADD_JOB_STEP('BACKUP_2', 'STEP1', 6, '04000000C:\backup\xcky', 1, 1, 1, 10, NULL, 0); call SP_ADD_JOB_SCHEDULE('BACKUP_2', 'SCHEDULE', 1, 2, 1, 1, 0, '11:38:00', NULL, '2022-04-21 11:36:36', NULL, ''); call SP_JOB_CONFIG_COMMIT('BACKUP_2'); |