达梦数据库之备份策略设定
生产环境中,在安装完成数据库之后需要打开归档,并设置定时备份机制。这次设置的定时备份机制是每周日零点三十分全备,每周一至六零点三十分增备,每周日零点十五分删除180天以前的备份文件。打开归档的sql脚本如下。 ./disql SYSDBA/SYSDBA@127.0.0.1:5238 \`dmarch.sqldmarch.sql 脚本的内容如下。alter database mount;alter
生产环境中,在安装完成数据库之后需要打开归档,并设置定时备份机制。
这次设置的定时备份机制是每周日零点三十分全备,每周一至六零点三十分增备,每周日零点十五分删除180天以前的备份文件。
打开归档的sql脚本如下。 ./disql SYSDBA/SYSDBA@127.0.0.1:5238 \`dmarch.sql
dmarch.sql 脚本的内容如下。
alter database mount;
alter database add ARCHIVELOG 'type=local, dest=/dm8/data/DM01/arch, file_size=64,space_limit=102400';
alter database ARCHIVELOG;
sp_set_para_value(1, 'ARCH_INI', 1);
alter database open;
上图中第一步就是将数据库切换到mount模式,同Oracle一样,只有在mount模式下,才可以变更归档模式。
上面脚本中备份文件的大小要根据实际情况去设置,空间的限制要根据实际的情况去设置,这里设置的是100G。
设置定时备份作业。执行如下命令。
每周日零点三十分全备,每周一至六零点三十分增备,每周日零点十五分删除180天以前的备份文件 备份到/dm8/data/DM01/bak 目录下面
./disql SYSDBA/SYSDBA@127.0.0.1:5238 \`backup.sql 下面是backup.sql 脚本的内容。
--创建代理环境
SP_INIT_JOB_SYS(1);
call SP_DROP_JOB('FULBAK');
call SP_DROP_JOB('INCREBAK');
call SP_DROP_JOB('DELBAK');
--fullbak
call SP_CREATE_JOB('FULBAK',1,0,'',0,0,'',0,'每周日零点三十分全备');
call SP_JOB_CONFIG_START('FULBAK');
call SP_ADD_JOB_STEP('FULBAK', 'FULBAK_STEP', 6, '01000000/dm8/data/DM01/bak', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('FULBAK', 'FULBAK_SCHEDULE', 1, 2, 1, 1, 0, '00:30:00', NULL, '2021-01-31 07:10:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('FULBAK');
--increbak
call SP_CREATE_JOB('INCREBAK',1,0,'',0,0,'',0,'每周一至六零点三十分增备');
call SP_JOB_CONFIG_START('INCREBAK');
call SP_ADD_JOB_STEP('INCREBAK', 'INCREBAK_STEP', 6, '11000000/dm8/data/DM01/bak|/dm8/data/DM01/bak', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('INCREBAK', 'INCREBAK_SCHEDULE', 1, 2, 1, 126, 0, '00:30:00', NULL, '2021-01-31 07:12:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('INCREBAK');
--delbak
call SP_CREATE_JOB('DELBAK',1,0,'',0,0,'',0,'每周日零点十五分删除180天以前的备份文件');
call SP_JOB_CONFIG_START('DELBAK');
call SP_ADD_JOB_STEP('DELBAK', 'DELBAK_STEP', 0, 'call SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/dm8/data/DM01/bak'');
call SP_DB_BAKSET_REMOVE_BATCH(''DISK'',SYSDATE-180);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('DELBAK', 'DELBAK_SCHEDULE', 1, 2, 1, 1, 0, '00:15:00', NULL, '2021-01-31 07:15:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('DELBAK');
下面我把上面的时间修改一下,以及备份的删除策略改成立即执行。执行下面的脚本内容。./disql SYSDBA/SYSDBA@127.0.0.1:5238 \`backup_now.sql
我当前服务器的时间是07:40:11 。 backup_now.sql 脚本的内容如下。
--fullbak
call SP_JOB_CONFIG_START('FULBAK');
call SP_ALTER_JOB_SCHEDULE('FULBAK', 'FULBAK_SCHEDULE', 1, 2, 1, 1, 0, '07:43:00', NULL, '2021-01-31 07:43:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('FULBAK');
--increbak
call SP_JOB_CONFIG_START('INCREBAK');
call SP_ALTER_JOB_SCHEDULE('INCREBAK', 'INCREBAK_SCHEDULE', 1, 2, 1, 127, 0, '07:44:00', NULL, '2021-01-31 07:44:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('INCREBAK');
--delbak
call SP_JOB_CONFIG_START('DELBAK');
call SP_ALTER_JOB_STEP('DELBAK', 'DELBAK_STEP', 0, 'call SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/dm8/data/DM01/bak'');
call SP_DB_BAKSET_REMOVE_BATCH(''DISK'',SYSDATE);', 1, 2, 0, 0, NULL, 0);
call SP_ALTER_JOB_SCHEDULE('DELBAK', 'DELBAK_SCHEDULE', 1, 2, 1, 1, 0, '07:45:00', NULL, '2021-01-31 07:45:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('DELBAK');
最后,重新按正确的要求设置备份策略。执行开头的脚本即可,完成定时备份策略的创建。
更多推荐




所有评论(0)