標籤: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
-----------------------------
開始執行個體恢複。。。
介質恢複:
介質恢複指資料庫檔案或資料檔案(集)損壞,需要手動操作。
分類:
-
RAC某一個執行個體的資料檔案的介質恢複
-
整個資料庫的介質恢複:關閉所有其他執行個體,將資料庫安裝到選擇進行恢複的節點上。
-
不影響資料庫的檔案:需要該檔案離線。
重做線程:
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‘;
本文出自 “8091532” 部落格,請務必保留此出處http://8101532.blog.51cto.com/8091532/1588904
RAC中的redo和undo管理