RAC中的redo和undo管理

RAC環境中。每個實例對應相應的redolog集(至少2個)和相應的undo表空間。



實例恢復:

單實例數據庫的實例恢復:

redo:所有已經提交和未提交的操作做前滾

undo:所有未提交的操作做回滾


RAC環境的實例恢復:

當節點A實例崩潰後,則節點B自動根據redolog前滾在undo回滾(立即進行),無需等待節點A的實例正常恢復。(實例恢復由剩餘節點進行,如果實例都崩潰了,則有第一個啓動的實例節點進行恢復

eg:在alarmlog中可以看到

Post SMON to Start 1st pass IR

-------------------------------

Instance recovery:look for dead threads

———————————————

Beginning instance recovery of 1 threads

———————————————

Start first pass scan

———————————————

Completed first pass scan

3941 redo blocks read,165 data blocks need recovery

-----------------------------

開始實例恢復。。。



介質恢復:

介質恢復指數據庫文件或數據文件(集)損壞,需要手動操作。


分類:

  1. RAC某一個實例的數據文件的介質恢復

  2. 整個數據庫的介質恢復:關閉所有其他實例,將數據庫安裝到選擇進行恢復的節點上。

  3. 不影響數據庫的文件:需要該文件脫機。


重做線程:

Alter database add logfile thread 2 group 5 '/ocfs/oradata/.../redo02_05.log' size 300M

實例線程號:在spfile參數爲<sid>.THREAD = n


不同存儲設備的歸檔方式

1.使用RAW設備作爲文件系統進行歸檔

RAW:每個文件必須對應一個raw磁盤片,因爲歸檔日誌較多,所以不適合存放在RAW上。所以,一般歸檔日誌存放於各節點的驅動器上。且因爲RAC環境,介質恢復需要所有實例的所有歸檔日誌,一般雙實例(僅雙實例rac)採用  節點A的驅動器上有本地歸檔目錄,節點B通過nfs目標目錄把B的歸檔日誌指向A,同理作用於B。所以當任何一個節點崩潰或歸檔日誌損壞時,可以保證另一個節點有所有節點的所有歸檔日誌來進行介質恢復。


2.使用OCFS(集羣文件系統)下的歸檔

所有節點把各自的歸檔日誌存放在OCFS上的同一歸檔目錄下。

但是!因爲在共享的歸檔目錄下,則當一個新的歸檔日誌創建時,其他實例會有一定的延時。所以常見方法是不同實例在OCFS上有單獨的歸檔目錄,需要介質恢復時候,把所有的歸檔日誌放進同一歸檔目錄中。


3.ASM環境中的歸檔

ASM可創建歸檔日誌閃回區(默認保存7天所有實例的歸檔日誌),其他同OCFS


注,即使某一點的實例已經關閉,但沒有禁用重做線程,redolog還是會做日誌切換,生成歸檔日誌(避免實例SCN與日誌間隙過大)


禁用線程號 alter database disable/enable public thread 3;



RAC中的undo:每個實例的單獨undo_tablespace 位於共享磁盤上。

參數:<instance_name>.UNDO_TABLESPACE

eg:Alter system set undo_tablespace = <undo_tablespace> scope = both sid = 'test3';



 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章