ORACLE -詳解SCN

咕嚕咕嚕先生發表於2018-07-05

Oracle scn全稱system change number,翻譯過來的意思就是系統變更號碼。它記錄的是Oracle在某一個時刻的狀態。而且,只有發生了變化才會匹配相對應的SCN。只有當插入,刪除或者更新了一行資料,資料庫的狀態才會發生變化。

Oracle透過SCN對發生在系統內部的事件進行排序,scn像連續不斷增加的序列號一樣,在SGA中遞增。它對資料庫例項奔潰後的資料恢復至關重要。

SCN的原理:

     當事務插入或者修改資料時,Oracle首先將一個新的SCN寫入回滾段,如果事務提交,lgwr將會立即將事務的提交記錄寫入重做日誌檔案,該提交記錄獲得唯一的SCN號。

SCN如何幫助資料庫進行例項奔潰後的恢復:

      每當資料庫執行一個檢查點操作,Oracle都將一條start scn號寫入到資料檔案頭,控制檔案為每個資料檔案維護一個SCN值,稱為stop scn.通常會設定為無限大。每當例項正常停止的時候,Oracle都會將資料檔案頭中的start scn號複製到控制檔案中的資料檔案的stop scn。當在正常關機後重新啟動資料庫時,因為資料檔案中的scn和控制檔案的scn相互匹配,所以不需要恢復。如果例項非正常停止,那麼會導致控制檔案與資料檔案頭中的SCN不一致,則Oracle認為例項需要恢復。


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

相關文章