注册
数据库作业系统配置
专栏/技术分享/ 文章详情 /

数据库作业系统配置

2026/07/17 231 0 0
摘要

达梦数据库作业配置与参数解析

第一步:创建作业环境
作业环境是作业系统的基础设施,创建后系统会自动建立SYSJOB模式及所需系统表。

通过命令行方式:

– 创建作业环境

SP_INIT_JOB_SYS(1);

执行后可查询验证:

-- 查看SYSJOB模式下的所有表 SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER='SYSJOB';

二、完整的作业配置流程

创建作业 → 开始配置 → 添加步骤 → 添加调度 → 提交配置

2.1 创建作业

示例:

-- 创建名为JOB_CLEAN_LOG的作业,启用,不开启邮件通知 CALL SP_CREATE_JOB('JOB_CLEAN_LOG', 1, 0, '', 0, 0, '', 0, '清理过期日志表');

创建作业参数(SP_CREATE_JOB):

SP_CREATE_JOB ( JOB_NAME VARCHAR(128), -- 作业名称 ENABLED INT, -- 是否启用 ENABLE_EMAIL INT, -- 是否开启邮件通知 EMAIL_OPTR_NAME VARCHAR(128), -- 邮件通知的操作员 EMAIL_TYPE INT, -- 邮件发送时机 ENABLE_NETSEND INT, -- 是否开启网络发送(仅Windows早期版本) NETSEND_OPTR_NAME VARCHAR(128),-- 网络发送的操作员 NETSEND_TYPE INT, -- 网络发送时机 DESCRIBE VARCHAR(500) -- 作业描述 )
参数 取值范围 说明
JOB_NAME 字母、数字、_、-、$ 首字符不能是数字,不能是DM关键字,同一库内唯一
ENABLED 0或1 1=启用,作业按调度执行;0=禁用,需手动触发
ENABLE_EMAIL 0或1 1=开启邮件通知;0=不发送邮件
EMAIL_OPTR_NAME 已存在的操作员名 邮件发给谁,必须先创建操作员
EMAIL_TYPE 0/1/2 0=执行成功时发送;1=执行失败时发送;2=执行完成(无论成败)时发送
ENABLE_NETSEND 0或1 1=开启网络发送;⚠️ 仅Windows 2000/XP支持,Win7/8/10/11已取消Messenger服务,该功能无效
NETSEND_OPTR_NAME 已存在的操作员名 网络消息发给谁
NETSEND_TYPE 0/1/2 同EMAIL_TYPE,控制网络消息发送时机
DESCRIBE 最长500字节 作业注释说明,方便日后维护

2.2 开始配置

CALL SP_JOB_CONFIG_START('JOB_CLEAN_LOG');

**2.3 添加作业步骤
**

CALL SP_ADD_JOB_STEP('JOB_CLEAN_LOG', 'STEP_CLEAN', 0, 'DELETE FROM OPER_LOG WHERE OPER_TIME < ADD_MONTHS(SYSDATE, -3); COMMIT;', 0, 0, 0, 0, NULL, 0);

添加作业步骤参数(SP_ADD_JOB_STEP):
步骤是作业的最小执行单元,一个作业可以有多个步骤,按顺序执行。

SP_ADD_JOB_STEP ( JOB_NAME VARCHAR(128), -- 作业名称 STEP_NAME VARCHAR(128), -- 步骤名称 TYPE INT, -- 步骤类型(核心参数) COMMAND TEXT, -- 要执行的命令(与TYPE关联) SUCC_ACTION INT, -- 成功后的动作 FAIL_ACTION INT, -- 失败后的动作 RETRY_ATTEMPTS INT, -- 失败重试次数 RETRY_INTERVAL INT, -- 重试间隔(秒) OUTPUT_FILE_PATH VARCHAR(256), -- ⚠️ 已废弃,无实际意义 APPEND_FLAG INT -- ⚠️ 已废弃,无实际意义 )

步骤参数(TYPE)详解:
这是作业中最关键的参数,7种类型对应不同的操作能力:

TYPE 功能 COMMAND格式
0 执行SQL语句/语句块 直接写SQL,多条用;分隔。
1 V1.0版本备份还原(没有 WITHOUT LOG 和 PARALLEL 选项) 见下方格式说明
2 重组数据库 COMMAND无需填写,系统自动生成内部语句
3 更新统计信息 COMMAND无需填写
4 执行DTS数据迁移 指定DTS配置文件路径
5 V1.0版本备份还原(有WITHOUT LOG选项) 见下方格式说明
6 V2.0版本备份还原 见下方格式说明(推荐使用)

TYPE=0 的COMMAND格式:

-- 多条语句用分号分隔 COMMAND = 'DELETE FROM T1 WHERE STATUS=0; COMMIT; CALL SP_UPDATE_STATS();'

TYPE=1 的COMMAND格式:
格式:[备份模式][压缩类型][路径]

第1位:0=完全备份,1=增量备份
第2位:0=不压缩,1=压缩
第3位起:备份路径

'01E:\backup\full'   -- 完全备份+压缩,指定路径
'10E:\base_bak1,base_bak2|inc_bak'  -- 增量备份(逗号分隔基础备份,|后为目标路径)

TYPE=6 的COMMAND格式:
格式:[备份模式][压缩级别][日志][并行数][USE_PWR][MAXPIECESIZE][归档删除][保留][路径]

位序 参数 取值范围 说明
1 备份模式 0/1/3/4 0=完全,1=差异增量,3=归档备份,4=累积增量
2 压缩级别 0~9 0=不压缩,数字越大压缩比越高
3 备份日志 0/1 0=备份日志,1=不备份
4 并行数 0~9 1=使用默认值4,2-9=指定并行数
5 USE_PWR 0/1 并行备份时优化增量备份
6 MAXPIECESIZE 0~9 0=默认(32位2G/64位4G),1=128M,2=256M…9=32G
7 归档删除 0/1 0=保留归档,1=备份完成后删除归档
8 保留位 0 固定填0
9 路径 文件路径 基础备份路径用逗号隔开,与目标路径用
'10000000E:\backup\full'   -- 完全备份+不压缩+备份日志+单线程+默认片大小
'11110000E:\base_bak|inc_bak'  -- 增量备份+压缩+不备份日志+并行4+自适应增量备份

2.4 添加调度

配置每日凌晨2点执行:

CALL SP_ADD_JOB_SCHEDULE('JOB_CLEAN_LOG', 'SCHED_DAILY', 1, 1, 1, 0, 0, '02:00:00', NULL, SYSDATE, NULL, '每日凌晨2点执行');

参数说明:TYPE=1表示按天执行,FREQ_INTERVAL=1表示每天,FREQ_MINUTE_INTERVAL=0表示一天执行一次。

添加作业调度参数(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) -- 调度描述 )

调度类型(TYPE)详解:

TYEPE 含义 配合参数
0 执行一次 由DURING_START_DATE决定执行日期和时间
1 按天执行 FREQ_INTERVAL=每N天;FREQ_MINUTE_INTERVAL=日内频率
2 按周执行 FREQ_INTERVAL=每N周;FREQ_SUB_INTERVAL=周几执行
3 每月某日执行 FREQ_INTERVAL=每N个月;FREQ_SUB_INTERVAL=每月几号(1-31)
4 每月第一周第N天 FREQ_SUB_INTERVAL=1-7(周日~周六)
5 每月第二周第N天 同上
6 每月第三周第N天 同上
7 每月第四周第N天 同上
8 每月最后一周第N天 同上

FREQ_SUB_INTERVAL 的位运算规则:
每周可同时选多天执行,用7位二进制表示:

位序:  6     5     4     3     2     1     0
含义: 周六   周五  周四  周三  周二   周一    周日

示例:
仅周日:0000001
仅周一:0000010
周一和周三:0001010
周六和周日(周末): 1000001

时间范围参数:

参数 格式 说明
STARTTIME HH:MI:SS 每日开始时间。TYPE=0时无效
ENDTIME HH:MI:SS 每日结束时间。可跨天(如23:00:00开始,01:00:00结束)
DURING_START_DATE YYYY-MM-DD 或 YYYY-MM-DD HH:MI:SS 调度生效起始日期,必填
DURING_END_DATE 同上 调度生效结束日期,可为空(永久有效)

2.5 提交配置

CALL SP_JOB_CONFIG_COMMIT('JOB_CLEAN_LOG');

所有配置必须在 START 和 COMMIT 之间完成。

三、作业管理参数速查表

暂停作业:SP_ENABLE_JOB(‘JOB_NAME’, 0) 0=禁用,1=启用
修改作业属性:SP_ALTER_JOB(…) 参数同SP_CREATE_JOB
修改步骤:SP_ALTER_JOB_STEP(…) 参数同SP_ADD_JOB_STEP
修改调度:SP_ALTER_JOB_SCHEDULE(…) 参数同SP_ADD_JOB_SCHEDULE
删除步骤:SP_DROP_JOB_STEP(‘JOB’,‘STEP’) 若其他步骤依赖,需先解除依赖
删除调度:SP_DROP_JOB_SCHEDULE(‘JOB’,‘SCHED’) —
删除作业:SP_DROP_JOB(‘JOB_NAME’) 级联删除所有步骤和调度
立即执行:SP_DBMS_JOB_RUN(JOB_ID) 需先查询作业ID
停止作业:SP_STOP_RUNNING_JOB(JOB_ID) 停止当前运行的作业会话
查看日志:SELECT * FROM SYSJOB.SYSJOBHISTORIES2 作业维度
查看执行日志:SELECT * FROM SYSJOB.SYSSTEPHISTORIES2
清理日志:SP_JOB_CLEAR_HISTORIES(‘JOB’, ‘BEFORE_TIME’) 第二个参数可为空

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服