溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

oracle scn重溫

發(fā)布時間:2020-06-14 20:39:41 來源:網絡 閱讀:245 作者:lych528 欄目:關系型數據庫

SCN(system change number) 系統(tǒng)更改號

RBA (redo block address)onlin redo log的重做塊地址

select dbms_flashback.get_system_change_number from dual; 系統(tǒng)當前的SCN

SCN的更新觸發(fā)是由commit來進行的,每隔3秒種系統(tǒng)也都會刷新一次SCN

CKPT進程是在checkpoint發(fā)生的時候將數據庫當前的SCN更新入數據庫文件頭和控制文件當中,DBWn進程將buffer cache中的臟數據塊(dirty block)寫到數據文件中,而是ckpt在更新控制文件和數據文件頭的有關信息后,通知DBWn進程,產生一個檢查點,在產生檢查點的時候,DBWn進程會將buffer cache中的臟數據(當前online redo log對應的臟數據),寫入我們的數據文件當中,基本就是這么一個循環(huán)過程,ckpt進程還會在控制文件當中記錄RBA,這個地址用來標志實例恢復的時候需要從日志中的那個位置開始,也就是一個checkpoint對應一個rba,當instance recovery(實例恢復)的時候oracle就會知道從那個檢查點開始在redo的那個rba開始介質恢復!

  創(chuàng)建檢查點(checkpoint)的條件:

                1.alter system checkpoint

   2.alter system switch logfile

   3.DBWn進程寫出臟塊

查看控制文件中的scn:執(zhí)行checkpoint后,(存于控制文件中)Oracle會更新當前控制文件中的System checkpoint SCN

select checkpoint_change# from v$database;

查看控制文件中記錄的數據文件信息中的scn:(存于控制文件中)控制文件中記錄了Oracle各個數據庫文件的位置和信息,其中當然也包括了Datafile checkpoint SCN,因此在執(zhí)行checkpoint的時候,Oracle還會去更新控制文件中所記錄的各個數據文件的datafile checkpoint SCN

select checkpoint_change# from v$datafile;

查看數據文件頭中的start scn:(存于數據文件頭中)執(zhí)行checkpoint時,Oracle會更新存放在各個實際的數據文件頭的Start SCN(注意絕對不會是控制文件中),這個SCN存在的目的是用于檢查數據庫啟動過程中是否需要做media recovery(介質恢復)

select checkpoint_change# from v$datafile_header;

查看控制文件中數據文件的end scn:(存于控制文件中)每一個所記錄的數據文件頭都有一個對應的End SCN,這個End SCN一定是存在于控制文件當中。這個SCN存在的絕對意義主要是用來去驗證數據庫啟動過程中是否需要做instance recovery(實例恢復)。

select name,last_change# from v$datafile

SCN與恢復的關系,可參考:

https://blog.csdn.net/dba_waterbin/article/details/7758641

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI