這篇文章主要介紹Oracle如何檢查點涉及的SCN,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
在禹州等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供做網站、網站設計 網站設計制作按需設計網站,公司網站建設,企業(yè)網站建設,成都品牌網站建設,成都營銷網站建設,成都外貿網站制作,禹州網站建設費用合理。
1. 檢查點涉及的SCN
(1). 數據文件中的文件頭啟動檢查點的scn
存儲在每個數據文件的文件頭中
select name,checkpoint_change#
from v$datafile_header;
在安全關閉數據庫的過程中,系統(tǒng)會執(zhí)行一個檢查點動作,這時所有數據文件的終止scn都會設置成數據文件頭中的那個啟動scn的值。
在數據庫重新啟動的時候,Oracle將文件頭中的那個啟動scn(存在于各個數據文件里)與數據庫文件檢查點scn(存在于控制文件里)進行比較,如果這兩個值相互匹配,oracle接下來還要比較數據文件頭中的啟動scn和控制文件中數據文件的終止scn。如果這兩個值也一致,就意味著所有數據塊的redo記錄都已經提交,所有對數據庫的修改都沒有在關閉數據庫的過程中丟失,因此這次啟動數據庫的過程也不需要任何恢復操作,此時數據庫就可以打開了。
(2).數據文件檢查點SCN,
存儲在控制文件中:
SELECT T.NAME,T.CHECKPOINT_CHANGE#,b.tablespace_name
FROM V$DATAFILE T,dba_data_files b
where t.FILE#=b.file_id;
(3).數據文件的終止scn
存儲在控制文件中
select name,last_change#
from v$datafile;
終止SCN在數據庫關閉或者表空間脫機是才會涉及到,在正常的數據庫操作過程中,所有正處于聯機讀寫模式下的數據文件的終止scn都為null.
在安全關閉數據庫的過程中,系統(tǒng)會執(zhí)行一個檢查點動作,這時所有數據文件的終止scn都會設置成數據文件頭中的那個啟動scn的值。
(4).系統(tǒng)檢查點SCN
存儲在控制文件中
select t.CHECKPOINT_CHANGE#
from v$database t;
(5). 日志文件的scn
select t.FIRST_CHANGE# 開始時的SCN,t.FIRST_TIME,t.NEXT_CHANGE# 結束時的SCN
from V$log_History t
order by t.FIRST_TIME;
2. 發(fā)生完全檢查點時:
數據文件頭,標識上次處理完的啟用scn。
而CKPT進程則將所有數據文件(無論redo log中的數據是否影響到該數據文件)文件頭上記錄的Start SCN更新為Next SCN; (通過視圖v$datafile_header的字段checkpoint_change#可以查詢)
同時將控制文件中的System Checkpoint SCN更新為Next SCN; (通過視圖v$database的字段checkpoint_change#可以查詢)
每個數據文件對應的Datafile Checkpoint)也更新為Next SCN;(通過視圖v$datafile的字段checkpoint_change#可以查詢)
從Low SCN到Next SCN之間的所有redo記錄的數據就被DBWn進程寫入數據文件中.
3. 系統(tǒng)是如何產生一個最新的SCN的:
實際上,這個數字是由當時的timestamp轉換過來的。每當需要產生一個最新的SCN到redo記錄時,系統(tǒng)獲取當時的timestamp,將其轉換為數字作為SCN。
我們可以通過函數SCN_TO_TIMESTAMP將其轉換回timestamp:
select dbms_flashback.get_system_change_number, SCN_TO_TIMESTAMP(dbms_flashback.get_system_change_number)
from dual;
也可以用函數timestamp_to_scn將一個timestamp轉換為SCN:
select timestamp_to_scn(SYSTIMESTAMP) as scn
from dual;
4. SCN除了作為反映事務數據變化并保持同步外,它還起到系統(tǒng)的"心跳"作用——每隔3秒左右系統(tǒng)會刷新一次系統(tǒng)SCN。
以上是“Oracle如何檢查點涉及的SCN”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯行業(yè)資訊頻道!