定时备份
达梦数据库8(以下简称:DM8)安装后,因业务需要,经常需要定时自动备份。以下教程为自动备份注意事项:
以下示例场景为:每周一到周五、周日增量备份,周六晚上全量备份。
定时备份前请先配置本地归档和开启 dmap 服务
一. 开户归档模式
使用SYSDBA登录数据库manager工具,输入以下SQL语句,并执行:
alter database mount;-- 限制归档空间上限为30GBalter database add archivelog 'type=local,dest=/dm8/arch,file_size=64,space_limit=30720';alter database archivelog;alter database open;
查询是否生效:
select name,status$,arch_mode from v$database;
返回表示开启成功:
创建作业环境
SP_INIT_JOB_SYS(1);
脚本备份
Linux 定时备份脚本
1)每周六晚上 23:30 定时全库备份
call SP_CREATE_JOB('back_full',1,0,'',0,0,'',0,'back_full');call SP_JOB_CONFIG_START('back_full');call SP_ADD_JOB_STEP('back_full', 'back_full', 6, '01000000/opt/dmdbms/data/BAK', 1, 2, 0, 0, NULL, 0);call SP_ADD_JOB_SCHEDULE('back_full', 'back_full', 1, 2, 1, 64, 0, '23:30:00', NULL, '-03-27 16:35:56', NULL, '');call SP_JOB_CONFIG_COMMIT('back_full');
2)每周一、周二、周三、周四、周五、周日晚上 23:30 定时增量备份
call SP_CREATE_JOB('backup_inc',1,0,'',0,0,'',0,'backup_inc');call SP_JOB_CONFIG_START('backup_inc');call SP_ADD_JOB_STEP('backup_inc', 'backup_inc', 6, '11000000/opt/dmdbms/data/BAK|/opt/dmdbms/data/BAK', 1, 2, 0, 0, NULL, 0);--call SP_ADD_JOB_STEP('backup_inc', 'backup_inc', 6, '11000000/opt/dmdbms/data/BAK|/opt/dmdbms/data/BAK', 1, 2, 0, 0, NULL, 0);call SP_ADD_JOB_SCHEDULE('backup_inc', 'backup_inc', 1, 2, 1, 63, 0, '23:33:00', NULL, '-03-27 22:03:58', NULL, '');call SP_JOB_CONFIG_COMMIT('backup_inc');
每天 00:00 删除 8 天以前的数据
call SP_CREATE_JOB('JOB_DEL_BAK_TIMELY',1,0,'',0,0,'',0,'JOB_DEL_BAK_TIMELY');call SP_JOB_CONFIG_START('JOB_DEL_BAK_TIMELY');call SP_ADD_JOB_STEP('JOB_DEL_BAK_TIMELY', 'JOB_DEL_BAK_TIMELY', 0, 'call SF_BAKSET_BACKUP_DIR_ADD(''DISK'', ''/data/dmdbms/data/BAK'');CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'', NOW()-8);', 1, 2, 0, 0, NULL, 0);call SP_ADD_JOB_SCHEDULE('JOB_DEL_BAK_TIMELY', 'JOB_DEL_BAK_TIMELY', 1, 1, 1, 0, 0, '00:00:00', NULL, '-03-27 22:06:13', NULL, '');call SP_JOB_CONFIG_COMMIT('JOB_DEL_BAK_TIMELY');
Windows 定时备份脚本
1)每周六晚上 23:30 定时全库备份
call SP_CREATE_JOB('back_full',1,0,'',0,0,'',0,'back_full');call SP_JOB_CONFIG_START('back_full');call SP_ADD_JOB_STEP('back_full', 'back_full', 6, '01000000D:\dmdbms8\data\DAMENG81\bak\FULL', 1, 2, 0, 0, NULL, 0);call SP_ADD_JOB_SCHEDULE('back_full', 'back_full', 1, 2, 1, 64, 0, '23:30:00', NULL, '-03-27 16:35:56', NULL, '');call SP_JOB_CONFIG_COMMIT('back_full');
2)每周一、周二、周三、周四、周五、周日晚上 23:30 定时增量备份
call SP_CREATE_JOB('backup_inc',1,0,'',0,0,'',0,'backup_inc');call SP_JOB_CONFIG_START('backup_inc');call SP_ADD_JOB_STEP('backup_inc', 'backup_inc', 6, '11000000D:\dmdbms8\data\DAMENG81\bak\FULL|D:\dmdbms8\data\DAMENG81\bak\FULL', 1, 2, 0, 0, NULL, 0);call SP_ADD_JOB_SCHEDULE('backup_inc', 'backup_inc', 1, 2, 1, 63, 0, '23:30:00', NULL, '-03-27 22:03:58', NULL, '');call SP_JOB_CONFIG_COMMIT('backup_inc');
每天 00:00 删除 7 天以前的数据
call SP_CREATE_JOB('JOB_DEL_BAK_TIMELY',1,0,'',0,0,'',0,'JOB_DEL_BAK_TIMELY');call SP_JOB_CONFIG_START('JOB_DEL_BAK_TIMELY');call SP_ADD_JOB_STEP('JOB_DEL_BAK_TIMELY', 'JOB_DEL_BAK_TIMELY', 0, 'call SF_BAKSET_BACKUP_DIR_ADD(''DISK'', ''D:\dmdbms8\data\DAMENG81\bak\FULL'');CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'', NOW()-7);', 1, 2, 0, 0, NULL, 0);call SP_ADD_JOB_SCHEDULE('JOB_DEL_BAK_TIMELY', 'JOB_DEL_BAK_TIMELY', 1, 1, 1, 0, 0, '00:00:00', NULL, '-03-27 22:06:13', NULL, '');call SP_JOB_CONFIG_COMMIT('JOB_DEL_BAK_TIMELY');
图形化界面创建定时备份
右击管理工具-[代理]-[作业]-[新建作业]
出现如下图所示界面,在作业名称和作业描述中填写备份名称和描述:
在作业步骤中选择具体的备份方式,如下图所示:
在作业调度中选择备份的时间策略,如下图所示:
在作业步骤中选择具体的备份方式,如下图所示:
在作业调度中选择备份的时间策略,如下图所示:
在作业步骤中选择具体的备份方式,如下图所示:
在作业调度中选择备份的时间策略,如下图所示:
定时备份日志查看
右击管理工具-[代理]-[作业]-[job名称],点击[查看历史作业信息]