达梦数据库通过作业实现自动备份功能
- 作业功能简介
- 一、通过DM管理工具创建备份作业(图形化配置)
- 1.创建代理环境
- 2.创建作业
- 二、命令行方式配置备份作业案例
- 1.创建代理环境
- 2.全量备份
- 3.增量备份
- 4.备份清理
- 三、JOB 运行和日志查看
作业功能简介
在管理员的工作中,有许多日常工作都是固定不变的。 例如, 定期备份数据库,定期生
成数据统计报表等等。这些工作既单调又费时,如果这些重复任务能够自动化完成, 那就可
以节省大量的时间。
DM 的作业系统为用户提供了创建作业,并对作业进行调度执行以完成相应管理任务的功
能。 可以让这些重复的数据库任务自动完成,实现日常工作自动化。 作业系统大致包含作业、
警报和操作员三部分。用户需要为作业配置步骤和调度。还可以创建警报, 当发生警报时,
将警报信息通知操作员,以便操作员能够及时做出响应。
用户通过作业可以实现对数据库的操作,并将作业执行结果以通知的形式反馈到操作员。
通过为作业创建灵活的调度方案可以满足在不同时刻运行作业的要求。用户还可以定义警报
响应,以便当服务器发生特定的事件时通知操作员或者执行预定义的作业。
一、通过DM管理工具创建备份作业(图形化配置)
1.创建代理环境
执行存储过程代理环境: sp_init_job_sys(1);
或界面上右击【代理】,选择【创建代理环境】:
创建代理环境后会创建 sysjob 模式
2.创建作业
DM 管理工具创建 JOB:
右键创建新作业
配置作业步骤,先添加步骤,选择步骤类型为备份数据库,输入对应的备份路径
选择作业调度,选择符合线上要求的调度频率
这样就配置好备份作业了
如果需要配置增量备份,则按照以上的方法,在配置步骤的时候选择累计增量备份
注:增量累计备份的前提是有一个全量备份作为基备份,所以需要在基备份目录选择中添加基备份的目录
二、命令行方式配置备份作业案例
1.创建代理环境
SP_INIT_JOB_SYS(1);
以下案例可根据需要替换备份目录和具体时候
2.全量备份
–全量备份:定时每周六01点整进行
call SP_CREATE_JOB('bakup_ql',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('bakup_ql');
call SP_ADD_JOB_STEP('bakup_ql', 'bak_ql', 6, '01000000/data/DAMENG/bak', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bakup_ql', 'diaoduql', 1, 2, 1, 64, 0, '01:00:00', NULL, '2020-06-25 22:43:59', NULL, '');
call SP_JOB_CONFIG_COMMIT('bakup_ql');
3.增量备份
–增量备份:定时每周一、二、三、四、五、日晚22:30点进行
call SP_CREATE_JOB('bakup_zl',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('bakup_zl');
call SP_ADD_JOB_STEP('bakup_zl', 'bak_zl', 6, '11000000/data/DAMENG/bak|/data/DAMENG/bak', 1, 0, 2, 6, NULL, 0);
call SP_ADD_JOB_STEP('bakup_zl', 'switch_quanbei', 6, '01000000/data/DAMENG/bak', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bakup_zl', 'diaodu_zl', 1, 2, 1, 63, 0, '22:30:00', NULL, '2020-06-21 11:15:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('bakup_zl');
4.备份清理
–备份保留30天,清除30天前的备份,每天凌晨01点整进行
call SP_CREATE_JOB('bak_clear',1,0,'',0,0,'',0,'每天删除30天前的备份');
call SP_JOB_CONFIG_START('bak_clear');
call SP_ADD_JOB_STEP('bak_clear', 'del_bak', 0, 'SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/data/DAMENG/bak'');
CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'',SYSDATE-30);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bak_clear', 'diaodu_del', 1, 1, 1, 0, 0, '01:00:00', NULL, '2020-06-25 22:54:03', NULL, '');
call SP_JOB_CONFIG_COMMIT('bak_clear');
三、JOB 运行和日志查看
–查看job
select * from sysjob.sysjobs;
–运行job
dbms_job.run(1640162093);
–查看job运行日志
select * from SYSJOB.SYSJOBHISTORIES2;