rman 備份策略
今天將之前在公司實作的備份策略拿來與大家分享
---------------------------------------------------------------------------------------------
因為公司資料庫的備份策略很鬆散,僅週六對資料庫作一次全備份,
災害發生時最多會損失一個禮拜的資料量,真的只能祈禱了。
趁這機會實作增量備份並制定備份策略。
備份計劃: 保存期限為 14 天
備份資料: 每日備份 DataFile、control file、archive log、spfile
備份策略如下:
星期 Level data
日 0 all
一 2 日 -> 一
二 2 一 -> 二
三 1 三 -> 日
四 2 四 -> 三
五 2 五 -> 四
六 1 六 -> 三
以下是週一、二、四、五作Level 2 script。
run {
allocate channel ch1 type disk maxpiecesize 4000M;
sql 'alter system switch logfile';
backup incremental level 2 database format 'G:\backup\DB_%T_%U' tag 'DBLV1_Other';
backup current controlfile format 'G:\backup\Ctl_%T_%U' tag 'CTL_Wed_Other';
sql 'alter system switch logfile';
release channel ch1;
}
以下是週三、六作Level 1 script。
run {
allocate channel ch1 type disk maxpiecesize 4000M;
sql 'alter system switch logfile';
backup incremental level 1 database format 'G:\backup\DB_%T_%U' tag 'DBLV1_Wed_Sat';
backup current controlfile format 'G:\backup\Ctl_%T_%U' tag 'CTL_Wed_Sat';
sql 'alter system switch logfile';
release channel ch1;
}
以下是週日作Level 0 script。
run {
allocate channel ch1 type disk maxpiecesize 4000M;
sql 'alter system switch logfile';
backup incremental level 0 database format 'G:\backup\DB_%T_%U' tag 'DBLV0_Sun';
backup current controlfile format 'G:\backup\Ctl_%T_%U' tag 'CTL_Sun';
sql 'alter system switch logfile';
backup archivelog all delete input format 'G:\backup\ARC_%T_%U' tag 'ARC_Sun';
backup spfile format 'G:\backup\spfile_%T_%U' tag 'spfile_Sun';
release channel ch1;
}
--------
因為在windows 2000 server平台上,最好限制檔案大小 4G,以免檔案過大,作什麼都不方便 (例如搬檔案的時候)。
另外原本在週日的時候會依備份策略將十四天以前的備份資料刪除,就在週日的script最後加上以下內容。
allocate channel for maintenance device type disk;
delete obsolete device type disk;
但是卻遇到了rman bug,將好不容易的備份檔案全刪了,連同剛備份的檔案也刪除,至metalink查類似狀況,
發現還不少人回報此異常情形,但似乎沒有解答。
所以還是手動將過期的備份檔案刪除比較安全點,有興趣的人可以試試,但記得要檢查log及備份檔案,
否則哪天備份檔案全刪掉了也不知道。