一步一步學RMAN第四篇 RMAN備份演練進階篇

junsansi發表於2007-07-16

忽悠
人間自有正義在,處處盛開自由花
三思也來玩佈道,忽悠一家是一家

  前篇介紹了通過rman進行各種備份,進階篇則主要是rman的一些功能擴充套件和增加功能,利用前篇你已經完全可以完成資料庫的備份,而通過本篇你可以更好更方便的完成資料庫的備份。

一步一步學RMAN第一篇 進入RMAN
http://junsansi.itpub.net/post/29894/307688

一步一步學RMAN第二篇 RMAN命令知多少
http://junsansi.itpub.net/post/29894/308749

一步一步學RMAN第三篇 RMAN備份演練初級篇
http://junsansi.itpub.net/post/29894/308751


一、建立增量備份
如果資料庫執行於不歸檔模式下,那麼你只能在資料庫乾淨關閉的情況下(以NORMAL、IMMEDIATE、TRANSACTIONAL方式關閉)才能進行一致性的增量備份,如果資料庫執行於歸檔模式下,那即可以在資料庫關閉狀態進行,也可以在資料庫開啟狀態進行備份。再次說明了開啟歸檔模式的優勢,歸檔日誌也就是多佔些磁碟空間,好處不是一些是很多,可是也相當於又給資料庫加了層保險啊。

建立增量備份也是相當簡單,實質就是一個引數INCREMENTAL LEVEL=n,在執行BACKUP命令時加上即可,例如,建立一個增量級別0的全庫備份:
RMAN> BACKUP INCREMENTAL LEVEL=0 DATABASE;
再例如,建立一個增量級別1的users01.dbf資料檔案備份
RMAN> BACKUP INCREMENTAL LEVEL=1 TABLESPACE SYSTEM DATAFILE 'F:ORAHOME1ORADATAJSSWEBUSERS01.DBF';

注:Rman預設建立的增量備份是Differential方式,如果要建立Cumulative方式的增量備份,在執行BACKUP命令時顯式指定即可,例如:
RMAN> BACKUP INCREMENTAL LEVEL=2 CUMULATIVE DATABASE;
關於增量備份概念性解釋,比如Differential與Cumulative兩種方式間的區別請參考本篇外傳,括弧,外傳整理中,如果您看到本篇的時候外傳還沒出,這個。。。。表著急,耐心等候,麵包牛奶都會有的。

二、建立映象複製
首先大家需要明瞭這個概念,rman中的映象複製實質與通過作業系統copy命令備份相同,甚至連命令的格式都相似,只不過直接應用作業系統的copy命令複製資料檔案時,只是檔案拷貝,而rman的copy則能夠在複製的同時,驗證資料的有效性。
個人認為rman中的映象複製應用有限,而且也體現不出rman的優勢,所以俺也只是大致瞭解了概念,沒有進行過實際操作,感興趣的朋友可以自己做做試驗,這裡就不多做介紹了。

三、建立冗餘備份
RMAN提供了一種更謹慎的備份策略:Duplexed方式備份,其實質即是在生成備份集的同時,向指定位置生成指定份數(最大不超過4份)的備份集複製,以避免在災難性事故時資料庫損壞和備份丟失的情況下導致完全崩潰,提高備份可用性。當然,這是人類美好的願意,對於那些沒有異機異地備份條件的,假如機房發生火災、地震之類大災難,就算dba把備份檔案複製了100份也照樣玩完,上述是個假設,萬勿對號入座,火災、地震也不是哪都會發生地,大家好好活著,別害怕。
RMAN中提供了三種方式實現Duplexed方式備份:
1、在RMAN中執行BACKUP命令時顯式指定COPIES引數。例如:
RMAN> BACKUP COPIES 3 DATABASE;
上述命令將會在全庫備份的同時,自動生成當前備份集的2份拷貝到預設備份目錄。

2、在RUN{}命令塊中利用SET BACKUP COPIES命令為該命令塊中所有的BACKUP命令設定Duplexed方式,例如:
RMAN> RUN{
2>SET BACKUP COPIES 2;
3>BACKUP DEVICE TYPE DISK FORMAT 'D:BACKUP1\%U','D:BACKUP2\%U'
4>TABLESPACE USERS,SALES;
5>}
上述命令將生成兩份備份集,分別儲存到d:ackup1和d:ackup2目錄。

3、通過CONFIGURE ..... BACKUP COPIES命令設定預定義的備份Duplexed方式。
CONFIGURE ... BACKUP COPIES命令可以為指定的裝置型別設定預設的備份拷貝數量。這個配置僅適用於資料檔案與歸檔重做日誌檔案和備份,並且,只有在使用自動分配的通道時才能夠使用CONFIGURE ... BACKUP COPIES命令設定的配置。例如:
RMAN> CONFIGURE DEFAULT DEVICE TYPE TO DISK;
RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE disk TO 2;
RMAN> CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE disk TO 2;
上述命令將disk設定上資料檔案與歸檔檔案的拷備數量設定為2,當再執行BACKUP DATABASE備份時,即會自動生成2份資料檔案的備份集。

四、設定RMAN備份的儲存策略
策略,嘖嘖,想不到我們也能說出這麼專業的詞兒啊,人家說專家就是能把任何事務都描述的很專業,我一定要再多學幾個類似的詞,要讓自己離專家的距離更近一些,或者,我直接搬到eygle他們家床頭邊上住去~~~~

如果你的資料庫非常大,並且備份執行也比較頻繁(廢話,不大不頻繁也得這麼幹,優秀的dba一定要擁有對應其身份的良好的工作習慣),有必要對你這些備份檔案的儲存制訂合理的策略。該挪的挪,該搬的搬,該刪除的刪,合理釋放,最大化利用有限的磁碟空間嘛。
在通過RMAN建立的備份片段中,由於備份檔案也是由rman建立和維護,所以手工刪除並不明智,並且RMAN也提供了備份保留策略,合理制訂,由RMAN自動刪除過舊的備份檔案更加安全也更加方便。
RMAN中提供了兩種備份保留策略:基於時間,和基於冗餘數量

為RMAN設定了備份保留策略之後,RMAN會自動判斷哪些備份集或映象複製檔案不必再保留。這些備份檔案將會被標記為“廢棄(Obsolete)”,可以通過REPORT OBSOLETE命令檢視當前處於廢棄狀態的備份檔案,或者通過DELETE OBSOLETE命令刪除這些廢棄的備份。例如:
RMAN> report obsolete;

正在使用目標資料庫控制檔案替代恢復目錄
RMAN 保留策略將應用於該命令
將 RMAN 保留策略設定為 3 天的恢復視窗
已廢棄的備份和副本報表
型別 關鍵字 完成時間 檔名/控制程式碼
-------------------- ------ ------------------ --------------------
備份集 21 04-7月 -07
備份段 21 04-7月 -07 D:BACKUPC-3391142503-20070704-01

RMAN> delete obsolete;

RMAN 保留策略將應用於該命令
將 RMAN 保留策略設定為 3 天的恢復視窗
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=14 devtype=DISK
刪除以下已廢棄的備份和副本:
型別 關鍵字 完成時間 檔名/控制程式碼
-------------------- ------ ------------------ --------------------
備份集 21 04-7月 -07
備份段 21 04-7月 -07 D:BACKUPC-3391142503-20070704-01

是否確定要刪除以上物件 (輸入 YES 或 NO)? y
已刪除備份段
備份段 handle=D:BACKUPC-3391142503-20070704-01 recid=21 stamp=627061645
1 物件已刪除
在執行刪除命令時有兩點需要了解:
如果被判斷為廢棄的備份是一個單獨資料檔案的映象複製,那麼在執行DELETE命令時將直接刪除這個映象複製檔案。
如果被判斷為廢棄的備份是一個備份集中的一部分,則必須等到整個備份集中所有其它檔案都被廢棄之後,才能刪除這個備份集。

1、基於時間的備份保留策略。
說的簡單些,就是你希望資料庫最早能恢復到幾天前。比如將恢復時間段設定為7,那麼RMAN所保留的備份即是可以保證你將資料庫恢復到一週內任何時刻下那些檔案。
設定基於時間的備份保留策略可以通過CONFIGURE命令,例如:
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF n DAYS;
注:n=大於0的正整數
執行該命令後,RMAN將始終保留那些將資料庫恢復到n天前的狀態時需要用到的備份,比如,恢復時間段被設定為7天,那麼各個資料檔案的備份必須滿足如下條件:
SYSDATE-(SELECT CHECKPOINT_TIME FROM V$DATAFILE)>=7
任何不滿足上述條件的備份都將被RMAN廢棄並可通過DELETE OBSOLETE命令刪除。Ok,基本知識講完了,下面考驗你的時刻到了,提問:如果滿足條件的備份你也想刪,咋整?啥?DEL?D你個大頭鬼,再回去看看第二章。

2、基於冗餘數量的備份保留策略
基於冗餘數量實質即某個資料檔案以各種形式(包括備份集和映象複製)存在的備份的數量。如果某個資料檔案的冗餘備份數量超出了指定數量,RMAN將廢棄最舊的備份。
同樣,基於數量的備份保留策略也是通過CONFIGURE命令設定,例如:
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF n DAYS;
同上:n=大於0的正整數

你也可以通過下列命令設定成不採用任何備份保留策略:
RMAN> CONFIGURE RETENTION POLICY TO NONE;


五、備份優化
RMAN中的備份優化(Backup Optimization)是指在備份過程中,如果滿足特定條件,RMAN將自動跳過某些檔案而不將它們包含在備份集中以節省時間和空間。說的直白些就是能不備的它就不備了,不像原來甭管檔案有沒有備份過統統再備一遍。由上可知,優化就是偷懶嘛,en,我也要優化的幹活:)
話說回來,這個懶也不是什麼時候都能偷的,ooo,說錯了,是優化。通常必須滿足如下幾個條件的情況下,才能夠啟用備份優化的功能:
CONFIGURE BACKUP OPTIMIZATION引數置為on;
執行的BACKUP DATABASE或BACKUP ARCHIVELOG命令中帶有ALL或LIKE引數。
分配的通道僅使用了一種裝置型別,也就是沒有同時分配使用sbt與disk的多個通道。(我知道我知道,通道還沒講,你也等著看外傳吧。不過在這兒可以簡單描述一下我的理解,In my opinion,sbt與disk就像一條是公路,一條是海路,而通道則相當於你選擇了走公路之後,還得選擇是走北三環,還是走北五環,還是兩條一塊走)

開啟備份優化設定通過如下命令:
RMAN> CONFIGURE BACKUP OPTIMIZATION ON;

那麼在進行備份優化時,RMAN是如何判斷要備份的檔案是否需要被優化呢,這個演算法就相當複雜了,而且可能影響優化演算法的因素也非常多,假如某庫在上午9點被執行過一次全庫備份,等下午3點再次執行全庫備份時,備份的檔案沒有變動而且也已經被備份過時,才會跳過這部分檔案。所以理論上備份優化僅對於只讀表空間或offline表空間起作用。當然對於已經備份過的archivelog檔案,它也會跳過(注:上述言論出自yangtingkun大牛,哎,我說老yang你能不能再多說兩句,再給我們來一段20W字左右的簡短髮言唄,哎,你別走啊,你跑什麼呀。。。。。。。)。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-22257/,如需轉載,請註明出處,否則將追究法律責任。

相關文章