DM作业系统

本文详细介绍了达梦数据库的作业系统,包括权限管理、系统表结构、操作员与作业的创建、修改和删除,以及作业配置与定时作业的设定。通过实例展示了全备、增备、删除备份等作业的配置方法,帮助用户实现数据库自动化管理。
摘要由CSDN通过智能技术生成

目录

前言

一、作业系统简介

二、权限及系统表

1.作业权限

2.系统表

1.SYSJOBSTEPS

2.SYSJOBSCHEDULES

3.SYSJOBHISTORIES2

4.SYSSTEPHISTORIES2

5.SYSOPERATORS

6.SYSALERTS

7.SYSALERTNOTIFICATIONS

8.SYSALERTHISTORIES

9.SYSMAILINFO

三、通过系统过程创建和删除

1.命令行操作

2.图形界面操作

三、操作员

1、创建操作员

2、修改操作员

3、删除操作员

四、作业

1、创建作业

2、修改作业

3、删除作业

4、配置作业

1. 开始作业配置;

2. 指定要开始配置一个作业;

3. 为指定的作业增加步骤;

4. 为指定的作业增加调度;

5. 结束作业配置

五、配置定时作业

1.全备作业

2.增备作业

3.删除备份作业

4.归档清理作业

5.统计信息作业

6.手动执行作业

总结



前言

DM作业系统。


一、作业系统简介

DM 的作业系统为用户提供了创建作业,并对作业进行调度执行以完成相应管理任务的功能。 可以让这些重复的数据库任务自动完成,实现日常工作自动化。 作业系统大致包含作业、警报和操作员三部分。用户需要为作业配置步骤和调度。


二、权限及系统表


1.作业权限

GRANT ADMIN JOB TO NORMAL_USER;

默认 DBA 拥有全部的作业权限; ADMIN JOB 权限可以添加、配置、调度和删除作业等,但没有作业环境初始化 SP_INIT_JOB_SYS(1)和作业环境销毁 SP_INIT_JOB_SYS(0)的权限。


2.系统表

SYSJOBS表存储用户定义的作业信息。每个作业对应此表中的一条记录。每一条记录都有一个自增ID,用来唯一表示这个作业

select * from sysjob.sysjobs;

1.SYSJOBSTEPS

SYSJOBSTEPS 存储作业包括的所有步骤信息

2.SYSJOBSCHEDULES

一个作业可以有多个调度,调度用来指定一个作业的执行情况,可以指定作业的执行方式及时间范围。

3.SYSJOBHISTORIES2

SYSJOBHISTORIES2 存储作业的执行情况的日志。

4.SYSSTEPHISTORIES2

SYSSTEPHISTORIES2 存储作业步骤的执行情况的日志。 

5.SYSOPERATORS

SYSOPERATORS 存储作业管理系统中所有已定义操作员的信息,以 NAME 为聚集索引,意味着不能具有同名的操作员。

6.SYSALERTS

SYSALERTS 存储作业管理系统中所有已定义的警报信息,聚集索引为 NAME,意味着不能定义同名的警报。

7.SYSALERTNOTIFICATIONS

SYSALERTNOTIFICATIONS 存储警报需要通知的操作员的信息,即警报和操作员的关联信息。

8.SYSALERTHISTORIES

SYSALERTHISTORIES 存储警报发生的历史记录的日志。

9.SYSMAILINFO

SYSMAILINFO 存储作业管理系统管理员的信息。

三、通过系统过程创建和删除

1.命令行操作

可以通过调用系统过程 SP_INIT_JOB_SYS(1)来创建这些表。这些表被建在SYSJOB 模式下。

创建SYSJOB模式及系统表:

SP_INIT_JOB_SYS(1);

删除SYSJOB模式及系统表:

SP_INIT_JOB_SYS(0);

2.图形界面操作

三、操作员

分别用 SP_CREATE_OPERATOR、 SP_ALTER_OPERATOR 和 SP_DROP_OPERATOR 三个过程来完成操作员的创建、修改和删除。

1、创建操作员

SP_CREATE_OPERATOR (

OPR_NAME VARCHAR(128),

ENABLED INT,

EMAILADDR VARCHAR(128),

NETSEND_IP VARCHAR(128)

)

2、修改操作员

SP_ALTER_OPERATOR (

OPR_NAME VARCHAR(128),

ENABLED INT,

EMAILADDR VARCHAR(128),

NETSEND_IP VARCHAR(128)

)

3、删除操作员

SP_DROP_OPERATOR (

OPR_NAME VARCHAR(128)

)

四、作业

1、创建作业

SP_CREATE_JOB (

JOB_NAME VARCHAR(128),

ENABLED INT,

ENABLE_EMAIL INT,

EMAIL_OPTR_NAME VARCHAR(128),

EMAIL_TYPE INT,

ENABLED_NETSEND INT,

NETSEND_OPTR_NAME VARCHAR(128),

NETSEND_TYPE INT,

DESCRIBE VARCHAR(8187)

)

例如, 创建一个名为 TEST 的作业。

SP_CREATE_JOB('TEST', 1, 1, 'TOM', 2, 1, 'TOM', 2, '每一个测试作业');

创建完成这个作业后,系统就会在 SYSJOBS 中插入一条相应的记录,但是这个作业不

会做任何事情,只是一个空的作业,如果需要让它执行,还需要配置这个作业。

2、修改作业

SP_ALTER_JOB (

JOB_NAME VARCHAR(128),

ENABLED INT,

ENABLE_EMAIL INT,

EMAIL_OPTR_NAME VARCHAR(128),

EMAIL_TYPE INT,

ENABLED_NETSEND INT,

NETSEND_OPTR_NAME VARCHAR(128),

NETSEND_TYPE INT,

DESCRIBE VARCHAR(8187)

)

函数 SP_ALTER_JOB 的参数和 SP_CREATE_JOB 的参数完全相同,除了 JOB_NAME 可修 改外,其他的属性都可修改。对于可修改参数,如果要修改,则指定新值;如果不修改,则 继续指定原值。 作业属性修改后,需要重新配置作业,使修改生效。

例如, 下面的语句修改了作业 TEST 的一些信息。

SP_ALTER_JOB('TEST', 0, 1, 'DBA', 2, 1, 'DBA', 2, '修改一个作业');

SP_JOB_CONFIG_START('TEST');

SP_JOB_CONFIG_COMMIT('TEST');

3、删除作业

SP_DROP_JOB (

JOB_NAME VARCHAR(128)

)

例如, 删除作业 TEST。

SP_DROP_JOB('TEST');

4、配置作业

配置一个作业主要包括以下几个步骤:

1. 开始作业配置;

2. 指定要开始配置一个作业;

3. 为指定的作业增加步骤;

4. 为指定的作业增加调度;

5. 结束作业配置

1.用系统过程 SP_JOB_CONFIG_START 指定对一个作业配置的开始。

SP_JOB_CONFIG_START (

JOB_NAME VARCHAR(128)

)

例如, 开始对作业 TEST 进行配置。

SP_JOB_CONFIG_START('TEST');

2.设置作业执行节点

SP_JOB_SET_EP_SEQNO (

JOB_NAME VARCHAR(128),

EP_SEQNO INT

)

例如,下面的例子设置了作业在指定的节点号上执行。

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,

COMMAND VARCHAR(8187),

SUCC_ACTION INT,

FAIL_ACTION INT,

RETRY_ATTEMPTS INT,

RETRY_INTERVAL INT,

OUTPUT_FILE_PATH VARCHAR(256),

APPEND_FLAG INT

)

例如, 下面的语句为作业 TEST 增加了步骤 STEP1。

SP_ADD_JOB_STEP('TEST', 'STEP1', 0, 'INSERT INTO MYINFO VALUES(1000, ''HELLO

WORLD''); ', 0, 0, 2, 1, NULL, 0);

4.修改作业的步骤通过系统过程 SP_ALTER_JOB_STEP 实现

SP_ALTER_JOB_STEP (

JOB_NAME VARCHAR(128),

STEP_NAME VARCHAR(128),

TYPE INT,

COMMAND VARCHAR(8187),

SUCC_ACTION INT,

FAIL_ACTION INT,

RETRY_ATTEMPTS INT,

RETRY_INTERVAL INT,

OUTPUT_FILE_PATH VARCHAR(256),

APPEND_FLAG INT

)

所有参数与 SP_ADD_JOB_STEP 的参数一样

5.可 以 通 过 系 统 过 程SP_DROP_JOB_STEP 删除这个步骤。

SP_DROP_JOB_STEP (

JOB_NAME VARCHAR(128),

STEP_NAME VARCHAR(128)

)

例:删除STEP1

SP_DROP_JOB_STEP('TEST', 'STEP1');

6.增加调度通过调度系统过程 SP_ADD_JOB_SCHEDULE 实现。

SP_ADD_JOB_SCHEDULE (

JOB_NAME VARCHAR(128),

SCHEDULE_NAME VARCHAR(128),

ENABLE INT,

TYPE INT,

FREQ_INTERVAL INT,

FREQ_SUB_INTERVAL INT,

FREQ_MINUTE_INTERVAL INT,

STARTTIME VARCHAR(128),

ENDTIME VARCHAR(128),

DURING_START_DATE VARCHAR(128),

DURING_END_DATE VARCHAR(128),

DESCRIBE VARCHAR(500)

)

例如, 下面的语句为作业 TEST 增加名为 SCHEDULE3 的调度。

SP_ADD_JOB_SCHEDULE('TEST', 'SCHEDULE3', 1, 1, 1, 0, 1, CURTIME, '23:59:59',

CURDATE, NULL, '一个测试调度');

7.修改调度通过调度系统过程 SP_ALTER_JOB_SCHEDULE 实现。

SP_ALTER_JOB_SCHEDULE (

JOB_NAME VARCHAR(128),

SCHEDULE_NAME VARCHAR(128),

ENABLE INT,

TYPE INT,

FREQ_INTERVAL INT,

FREQ_SUB_INTERVAL INT,

FREQ_MINUTE_INTERVAL INT,

STARTTIME VARCHAR(128),

ENDTIME VARCHAR(128),

DURING_START_DATE VARCHAR(128),

DURING_END_DATE VARCHAR(128),

DESCRIBE VARCHAR(500)

)

所有参数与 SP_ADD_JOB_SCHEDULE 的参数一样

8.调用的函数为SP_DROP_JOB_SCHEDULE。

SP_DROP_JOB_SCHEDULE (

JOB_NAME VARCHAR(128),

SCHEDULE_NAME VARCHAR(128)

)

例如, 删除作业 TEST 中名为 SCHEDULE3 的调度。

SP_DROP_JOB_SCHEDULE('TEST', 'SCHEDULE3');

9.结束作业配置

在配置完成后,用户需要对前面所做的配置进行提交,表示对作业的配置已经完成,同 时将这个作业加入到运行队列。这一步可以通过系统过程 SP_JOB_CONFIG_COMMIT 实现。

SP_JOB_CONFIG_COMMIT (

JOB_NAME VARCHAR(128)

)

10.清除作业日志记录,可以通过系统过程 SP_JOB_CLEAR_HISTORIES 清除迄今为止某个作业的所有日志记录,即删除表 SYSJOBHISTORIES2、 SYSSTEPHISTORIES2 中的相关记录。

SP_JOB_CLEAR_HISTORIES (

JOB_NAME VARCHAR(128)

)

例:删除作业TEST

SP_JOB_CLEAR_HISTORIES ('TEST');

五、配置定时作业

开启作业:

SP_INIT_JOB_SYS(1);

1.全备作业

call SP_CREATE_JOB('bakfull',1,0,'',0,0,'',0,'周六23:00全备');

call SP_JOB_CONFIG_START('bakfull');

call SP_ADD_JOB_STEP('bakfull', 'bak01', 6, '01000000/dmdata1/dmbak', 1, 2, 0, 0, NULL,0);

call SP_ADD_JOB_SCHEDULE('bakfull', 'bak01', 1, 2, 1, 32, 0, '23:00:00', NULL, '2020-11-02 14:42:15', NULL, '');

call SP_JOB_CONFIG_COMMIT('bakfull');

2.增备作业

call SP_CREATE_JOB('bakincr',1,0,'',0,0,'',0,'每天23:00增备');

call SP_JOB_CONFIG_START('bakincr');

call SP_ADD_JOB_STEP('bakincr', 'bak02', 6, '11000000/dmdata1/dmbak|/dmdata1/dmbak', 1, 2, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('bakincr', 'bak2', 1, 2, 1, 95, 0, '23:00:00', NULL, '2020-11-02 14:44:30', NULL, '');

call SP_JOB_CONFIG_COMMIT('bakincr');

3.删除备份作业

call SP_CREATE_JOB('delbak',1,0,'',0,0,'',0,'周日02:00删除前14天备份');

call SP_JOB_CONFIG_START('delbak');

call SP_ADD_JOB_STEP('delbak', 'bak1', 0, 'SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/dmdata1/dmbak'');call sp_db_bakset_remove_batch(''DISK'',now()-14);', 1, 2, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('delbak', 'del01', 1, 1, 1, 0, 0, '23:30:00', NULL, '2020-11-02 14:48:41', NULL, '');

call SP_JOB_CONFIG_COMMIT('delbak');

4.归档清理作业

每周日02:00执行删除30天以前的归档日志,2020年10月10日00:00开始执行

call SP_CREATE_JOB('JOB_DEL_ARCH_TIMELY',1,0,'',0,0,'',0,'定时删除归档日志');

call SP_JOB_CONFIG_START('JOB_DEL_ARCH_TIMELY');

call SP_ADD_JOB_STEP('JOB_DEL_ARCH_TIMELY', 'STEP_DEL_ARCH', 0,'SF_ARCHIVELOG_DELETE_BEFORE_TIME(SYSDATE - 30);', 1, 2, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('JOB_DEL_ARCH_TIMELY', 'SCHEDULE_DEL_ARCH',1, 2, 1, 1, 0, '02:00:00', NULL, '2020-10-10 00:00:00', NULL, '');

call SP_JOB_CONFIG_COMMIT('JOB_DEL_ARCH_TIMELY');

5.统计信息作业

--每天自动收集统计信息

call SP_CREATE_JOB('STAT_GATHER',1,0,'',0,0,'',0,'');

call SP_JOB_CONFIG_START('STAT_GATHER');

call SP_ADD_JOB_STEP('STAT_GATHER', 'STAT_GATHER', 3, '', 0, 0, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('STAT_GATHER', 'STAT_GATHER', 1, 1, 1, 0, 0, '23:38:35', NULL, '2021-04-29 13:38:35',NULL, '');

call SP_JOB_CONFIG_COMMIT('STAT_GATHER');

6.手动执行作业

查询作业表

select sysjob.sysjobs;

根据作业号执行作业:

call dbms_job.run(1626857481);

总结

更多资讯请上达梦技术社区了解:https://eco.dameng.com

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值