达梦备份策略
#归档开启
# 转换数据库状态为配置
alter database mount;
# 打开归档
alter database archivelog;
# 归档配置,配置归档路径,归档文件大小(超过就新建一个文件),归档文件总的大小(超过限制,就会删除老的)
alter database add archivelog 'type=local,dest=/data/dm/arch,file_size=64,space_limit=10240';
# 将数据库状态设置为open
alter database open;
# 查询归档状态
select arch_mode from v$database;
# 查看归档文件
select * from SYS."V$ARCH_FILE";
# 查询归档配置
select * from v$dm_arch_ini;
alter database mount;
# 关闭归档
alter database noarchivelog;
# 删除归档文件
alter database delete archivelog 'type=local,dest=/data/dm/arch';
# 将数据库状态设置为open
alter database open;
# 查询归档状态
select arch_mode from v$database;
#创建作业环境
SP_INIT_JOB_SYS(1);
#全量备份(每周六凌晨1点)
#创建作业通过系统过程 SP_CREATE_JOB 实现
#作业名称,作业是否启用,作业是否开启邮件, 指定操作员,什么情况发送邮件,作业开启网络发送,指定操作员,什么情况发送网络信息,作业描述
call SP_CREATE_JOB('bakfull',1,0,'',0,0,'',0,'定时全量备份');
#开始配置作业 #作业名称
call SP_JOB_CONFIG_START('bakfull');
#设置作业执行节点 #作业名称 #DSC 集群环境中执行该作业的节点号
call SP_JOB_SET_EP_SEQNO('bakfull',0);
#增加、删除作业步骤
#作业名称,表示增加的步骤名,步骤的类型,步骤在运行时所执行的语句,指定步骤执行成功后操作,指定步骤执行失败后操作,当步骤执行失败后重试次数,执行重试之间的间隔时间,示步骤执行时输出文件的路径,输出文件的追写方式
call SP_ADD_JOB_STEP('bakfull', 'bak1', 6, '01020000/data/dm/dmdata/bak', 0, 0, 0, 0, NULL, 0);
#设置作业调度
call SP_ADD_JOB_SCHEDULE('bakfull', 'std1', 1, 2, 1, 64, 0, '1:00:00', NULL, '2024-10-31 9:37:22', NULL, '');
#结束配置
call SP_JOB_CONFIG_COMMIT('bakfull');
—查看作业
select * from SYSJOB.SYSJOBS
增量备份(除每周六,每天凌晨1点)
call SP_CREATE_JOB('JOB_INCREMENT_BAK_TIMELY',1,0,'',0,0,'',0,'定时增量备份');
call SP_JOB_CONFIG_START('JOB_INCREMENT_BAK_TIMELY');
call SP_ADD_JOB_STEP('JOB_INCREMENT_BAK_TIMELY', 'STEP_INCREMENT_BAK', 6, '11000000/data/dm/dmdata/bak', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('JOB_INCREMENT_BAK_TIMELY', 'SCHEDULE_INCREMENT_BAK', 1, 2, 1, 63, 0, '1:00:00', NULL, '2024-10-31 9:37:22', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB_INCREMENT_BAK_TIMELY');
定时删除备份(每天 1:30 删除 15 天前备份)
call SP_CREATE_JOB('delbak',1,0,'',0,0,'',0,'定时删除备份');
call SP_JOB_CONFIG_START('delbak');
call SP_ADD_JOB_STEP('delbak','delbak',0, 'CALL SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/data/dm/dmdata/bak'');call sp_db_bakset_remove_batch(''DISK'',now()-15);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('delbak', 'del01', 1, 1, 1, 0, 0, '1:30:00', NULL, '2024-10-31 9:37:27', NULL, '');
call SP_JOB_CONFIG_COMMIT('delbak');