语法:
SP_CREATE_JOB(
JOB_NAME, – 作业名
ENABLED, – 是否启用
ENABLE_EMAIL, – 是否开启邮件通知
EMAIL_OPTR_NAME, – 邮件通知的操作员
EMAIL_TYPE, – 邮件发送时机
ENABLED_NETSEND, – 是否开启网络发送
NETSEND_OPTR_NAME, – 网络发送的操作员
NETSEND_TYPE, – 网络发送时机
DESCRIBE – 作业描述
)
以全备作业为例:
CALL SP_CREATE_JOB(‘JOB_FULL_BACKUP’, 1, 0, ‘’, 0, 0, ‘’, 0, ‘每周日01:00全量备份’);
| 参数 | 你的传值 | 含义 |
|---|---|---|
JOB_NAME |
'JOB_FULL_BACKUP' |
作业名称,全局唯一,不能重名 |
ENABLED |
1 |
启用作业。1=启用(到了调度时间会自动跑),0=禁用 |
ENABLE_EMAIL |
0 |
不开启邮件通知。若设为1,作业执行结果会发邮件给指定操作员 |
EMAIL_OPTR_NAME |
''(空串) |
邮件接收的操作员名称(必须提前用SP_CREATE_OPERATOR创建),没开启邮件则传空串 |
EMAIL_TYPE |
0 |
邮件发送时机:0=成功时发,1=失败时发,2=无论成功失败都发 |
ENABLED_NETSEND |
0 |
不开启网络发送(仅Windows早期版本支持) |
NETSEND_OPTR_NAME |
'' |
网络发送的操作员名称,未开启则传空串 |
NETSEND_TYPE |
0 |
网络发送时机(取值同上EMAIL_TYPE) |
DESCRIBE |
'每周日01:00全量备份' |
作业注释/描述信息,最长500字节 |
语法:
SP_JOB_CONFIG_START(JOB_NAME)
示例:
CALL SP_JOB_CONFIG_START(‘JOB_FULL_BACKUP’);
| 参数 | 传值示例 | 含义 |
|---|---|---|
JOB_NAME |
'JOB_FULL_BACKUP' |
指定要配置的作业名称。执行后当前会话进入"作业配置状态",后续添加步骤/调度必须在此之后才能操作 |
语法:
SP_ADD_JOB_STEP(
JOB_NAME, – 作业名
STEP_NAME, – 步骤名
TYPE, – 步骤类型(最关键)
COMMAND, – 步骤执行的具体命令(最关键)
SUCC_ACTION, – 成功后的动作
FAIL_ACTION, – 失败后的动作
RETRY_ATTEMPTS, – 失败重试次数
RETRY_INTERVAL, – 重试间隔(秒)
OUTPUT_FILE_PATH, – 输出文件路径(已废弃)
APPEND_FLAG – 追加方式(已废弃)
)
针对全备步骤:TYPE=6 的备份步骤
CALL SP_ADD_JOB_STEP(‘JOB_FULL_BACKUP’, ‘STEP_FULL’, 6,
‘01020000/dmdata/dmbak’, 1, 1, 0, 0, NULL, 0);
| 参数 | 传值 | 详细解释 |
|---|---|---|
JOB_NAME |
'JOB_FULL_BACKUP' |
属于哪个作业 |
STEP_NAME |
'STEP_FULL' |
步骤名称,同一作业内不可重名 |
TYPE |
6 |
使用达梦V2.0备份还原语法(支持并行、压缩片大小等高级选项) |
COMMAND |
'01020000/dmdata/dmbak' |
备份指令字符串,由9部分组成,见下方拆解 |
SUCC_ACTION |
1 |
成功时:1=报告成功并结束作业(0=不报告结束,2=不报告继续下一步,3=报告继续下一步) |
FAIL_ACTION |
1 |
失败时:1=报告失败并结束作业(取值含义同上) |
RETRY_ATTEMPTS |
0 |
失败后重试0次(不重试) |
RETRY_INTERVAL |
0 |
重试间隔0秒(不重试则无意义) |
OUTPUT_FILE_PATH |
NULL |
已废弃,固定传NULL |
APPEND_FLAG |
0 |
已废弃,固定传0 |
COMMAND = '01020000/dmdata/dmbak' 逐位拆解(TYPE=6固定9位格式)
| 位序 | 字符 | 对应参数 | 含义 |
|---|---|---|---|
| 第1位 | 0 |
备份模式 | 0=完全备份;1=差异增量;3=归档备份;4=累积增量 |
| 第2位 | 1 |
压缩级别 | 0=不压缩;1~9=压缩级别(1最低,9最高) |
| 第3位 | 0 |
备份日志 | 0=备份日志;1=不备份日志 |
| 第4位 | 2 |
并行数 | 0=不并行;1=默认4个并行;2~9=指定并行数 |
| 第5位 | 0 |
USE PWR | 0=不使用;1=使用(仅语法支持,实际无用) |
| 第6位 | 0 |
MAXPIECESIZE | 0=默认(32位2G/64位4G);1=128M,2=256M…9=32G |
| 第7位 | 0 |
备份后删除归档 | 0=不删除;1=删除已备份的归档 |
| 第8位 | 0 |
保留位 | 固定填0 |
| 第9部分 | /dmdata/dmbak |
备份路径 | 备份集存放的目录(全备不需要\|分隔符) |
针对增备步骤:同样是 TYPE=6
CALL SP_ADD_JOB_STEP(‘JOB_INCR_BACKUP’, ‘STEP_INCR’, 6,
‘41010000/dmdata/dmbak|/dmdata/dmbak’, 1, 1, 0, 0, NULL, 0);
所有参数与全备相同,只有 COMMAND 不同:
COMMAND = ‘41010000/dmdata/dmbak|/dmdata/dmbak’ 逐位拆解
| 位序 | 字符 | 含义 |
|---|---|---|
| 第1位 | 4 |
累积增量备份 |
| 第2位 | 1 |
压缩级别1 |
| 第3位 | 0 |
备份日志 |
| 第4位 | 1 |
并行度=默认4(1代表默认值) |
| 第5位 | 0 |
不使用USE PWR |
| 第6位 | 0 |
默认备份片大小 |
| 第7位 | 0 |
不删除归档 |
| 第8位 | 0 |
保留位 |
| 第9部分 | /dmdata/dmbak\|/dmdata/dmbak |
管道符\|左边是基备份搜索路径(全备所在目录),右边是增量备份集存放路径(此处相同) |
针对清理步骤:TYPE=0 的SQL步骤
CALL SP_ADD_JOB_STEP(‘JOB_CLEAN_BACKUP’, ‘STEP_CLEAN’, 0,
‘SF_BAKSET_BACKUP_DIR_ADD(’‘DISK’’,’’/dmdata/dmbak’’);
CALL SP_DB_BAKSET_REMOVE_BATCH(’‘DISK’’, NOW()-30);’,
1, 1, 0, 0, NULL, 0);
| 参数 | 传值 | 详细解释 |
|---|---|---|
TYPE |
0 |
执行SQL语句或语句块(多条SQL用分号;隔开) |
COMMAND |
'SF_...; CALL ...;' |
具体执行的SQL。这里两条:①添加备份目录;②删除30天前备份集 |
| 其余参数 | 同上 | SUCC_ACTION=1、FAIL_ACTION=1,均报告结果并结束 |
语法:
SP_ADD_JOB_SCHEDULE(
JOB_NAME, – 作业名
SCHEDULE_NAME, – 调度名
ENABLE, – 是否启用调度
TYPE, – 调度类型(按天/周/月/一次)
FREQ_INTERVAL, – 频率间隔
FREQ_SUB_INTERVAL, – 子频率(周几/月哪天)
FREQ_MINUTE_INTERVAL, – 每天内分钟间隔
STARTTIME, – 每天起始时间
ENDTIME, – 每天结束时间(跨天用)
DURING_START_DATE, – 有效起始日期
DURING_END_DATE, – 有效结束日期
DESCRIBE – 描述
)
全备调度:每周日 01:00
CALL SP_ADD_JOB_SCHEDULE(‘JOB_FULL_BACKUP’, ‘SCHED_FULL’, 1, 2, 1, 1, 0,
‘01:00:00’, NULL, CURDATE, NULL, ‘每周日01:00’);
| 参数 | 传值 | 含义 |
|---|---|---|
JOB_NAME |
'JOB_FULL_BACKUP' |
属于哪个作业 |
SCHEDULE_NAME |
'SCHED_FULL' |
调度名称,同一作业内不可重名 |
ENABLE |
1 |
启用该调度 |
TYPE |
2 |
按周执行 |
FREQ_INTERVAL |
1 |
每1周执行一次 |
FREQ_SUB_INTERVAL |
1 |
周几执行?1=周日(二进制最低位为1,对应周日) |
FREQ_MINUTE_INTERVAL |
0 |
一天内执行一次(在STARTTIME时刻执行) |
STARTTIME |
'01:00:00' |
每天01:00触发 |
ENDTIME |
NULL |
每天无结束时间(只执行一次) |
DURING_START_DATE |
CURDATE |
从当前日期开始生效 |
DURING_END_DATE |
NULL |
无结束日期(永久有效) |
DESCRIBE |
'每周日01:00' |
调度注释 |
补充
FREQ_SUB_INTERVAL计算规则:7位二进制,从低位到高位依次代表 周日、周一、周二、周三、周四、周五、周六。选中哪几天,对应位设为1,再转十进制。1= 二进制0000001= 仅选中周日。
增备调度:每天 02:00(含周日)
CALL SP_ADD_JOB_SCHEDULE(‘JOB_INCR_BACKUP’, ‘SCHED_INCR’, 1, 1, 1, 0, 0,
‘02:00:00’, NULL, CURDATE, NULL, ‘每天02:00’);
| 参数 | 传值 | 含义 |
|---|---|---|
TYPE |
1 |
按天执行 |
FREQ_INTERVAL |
1 |
每1天执行一次 |
FREQ_SUB_INTERVAL |
0 |
TYPE=1时该参数无效,随便填 |
FREQ_MINUTE_INTERVAL |
0 |
一天内执行一次 |
STARTTIME |
'02:00:00' |
每天02:00触发 |
| 其余 | 同上 | 同全备调度 |
清理调度:每月1日 03:00
CALL SP_ADD_JOB_SCHEDULE(‘JOB_CLEAN_BACKUP’, ‘SCHED_CLEAN’, 1, 3, 1, 1, 0,
‘03:00:00’, NULL, CURDATE, NULL, ‘每月1日03:00’);
| 参数 | 传值 | 含义 |
|---|---|---|
TYPE |
3 |
每月某一天执行 |
FREQ_INTERVAL |
1 |
每1个月执行一次 |
FREQ_SUB_INTERVAL |
1 |
每月第1天执行(取值1~31) |
FREQ_MINUTE_INTERVAL |
0 |
一天内执行一次 |
STARTTIME |
'03:00:00' |
每月1日03:00触发 |
语法:
SP_JOB_CONFIG_COMMIT(JOB_NAME)
示例:
CALL SP_JOB_CONFIG_COMMIT(‘JOB_FULL_BACKUP’);
| 参数 | 含义 |
|---|---|
JOB_NAME |
结束该作业的配置。提交后,系统会校验作业完整性(必须有步骤和调度),校验通过后将作业加入运行队列,同时创建后台触发器,到达调度时间自动执行。此操作会提交当前事务。 |
https://eco.dameng.com
文章
阅读量
获赞
