DM数据库定时作业备份


前言

在数据库的日常运维工作中,有许多日常工作都是固定不变的。比如,定期备份数据库,定期生成数据统计报表等等,都是比较耗费时间的事情,如果这些重复任务能够自动化完成,那就可以节省大量的时间。
DM 的作业系统为用户提供了创建作业,并对作业进行调度执行以完成相应管理任务的功能。可以让这些重复的数据库任务自动完成,实现日常工作自动化。
作业系统大致包含作业、 警报和操作员三部分。用户需要为作业配置步骤和调度。还可以创建警报,当发生警报时,将警报信息通知操作员,以便操作员能够及时做出响应。本次主要针对利用作业进行定期备份方面做一个介绍。


一、开启归档和代理环境

在创建作业之前,我们要优先开启数据库的归档模式,方法如下:

ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/opt/dmdbms/data/DAMENG/arch, TYPE=LOCAL, FILE_SIZE=2048, SPACE_LIMIT=51200';
ALTER DATABASE OPEN;

可根据需求不同修改归档日志的大小和上限,此处设置为大小2048MB,上限51200MB,注意,默认单位为MB。

然后,启动代理环境:

SP_INIT_JOB_SYS(1);

二、设置定时作业备份

1.定时全库备份

创建定时进行全库备份的作业,内容如下:
每周日晚 00:00进行全库备份,2021年4月17日(周六)00:00开始执行

call SP_CREATE_JOB('FULL_BAK',1,0,'',0,0,'',0,'每周日00:00进行依次全库备份');
call SP_JOB_CONFIG_START('FULL_BAK');
call SP_ADD_JOB_STEP('FULL_BAK', 'JOB1', 5, '01000/opt/dmdms/data/DAMENG/bak/all', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('FULL_BAK', 'JOB11', 1, 2, 1, 1, 0, '00:00:00', NULL, '2021-04-17 00:00:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('FULL_BAK');

2.定时增量备份

创建定时进行增量备份的作业,内容如下:
每周一至周六晚 1:00进行增量备份,2021年4月18日(周日)00:00开始执行

call SP_CREATE_JOB('ADD_BAK',1,0,'',0,0,'',0,'每周一至周六1:00进行增量备份');
call SP_JOB_CONFIG_START('ADD_BAK');
call SP_ADD_JOB_STEP('ADD_BAK', 'JOB1', 5, '11000/opt/dmdbms/data/DAMENG/bak/all|/opt/dmdbms/data/DAMENG/bak/add', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('ADD_BAK', 'job11', 1, 2, 1, 126, 0, '01:00:00', NULL, '2021-04-18 00:00:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('ADD_BAK');

注意:创建定时增量备份作业的时候,要选择基备份目录,建议选择全量备份在的那个目录。


三、设置作业定时删除备份

1.定时删除备份

创建定时删除备份的作业,内容如下:
每天晚上2:00删除30天之前的备份,2021年4月18日(周日)00:00开始执行

call SP_CREATE_JOB('DELETE_BAK',1,0,'',0,0,'',0,'每天晚上2:00删除30天前的备份');
call SP_JOB_CONFIG_START('DELETE_BAK');
call SP_ADD_JOB_STEP('DELETE_BAK', 'job1', 0, 'SP_DB_BAKSET_REMOVE_BATCH(''DISK'', NOW()-15);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('DELETE_BAK', 'job2', 1, 1, 1, 0, 0, '15:10:11', NULL, '2021-04-18 00:00:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('DELETE_BAK');

其中,删除备份的系统过程如下:

SP_DB_BAKSET_REMOVE_BATCH('DISK', NOW()-15);

2.定时删除归档日志

创建定时删除归档日志的作业,内容如下:
每天晚上3:00删除30天之前的归档日志,2021年4月18日(周日)00:00开始执行

call SP_CREATE_JOB('DELETE_ARCH',1,0,'',0,0,'',0,'每天3:00删除30天之前的归档日志');
call SP_JOB_CONFIG_START('DELETE_ARCH');
call SP_ADD_JOB_STEP('DELETE_ARCH', 'job1', 0, 'SF_ARCHIVELOG_DELETE_BEFORE_TIME(SYSDATE - 30);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('DELETE_ARCH', 'job2', 1, 1, 1, 0, 0, '03:00:00', NULL, '2021-04-18 00:00:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('DELETE_ARCH');

其中,删除归档日志的系统过程如下:

SF_ARCHIVELOG_DELETE_BEFORE_TIME(SYSDATE - 30);

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值