Oracle 檢查點涉及的SCN
1. 檢查點涉及的SCN
(1). 資料檔案中的檔案頭啟動檢查點的scn
儲存在每個資料檔案的檔案頭中
select name,checkpoint_change#
from v$datafile_header;
在安全關閉資料庫的過程中,系統會執行一個檢查點動作,這時所有資料檔案的終止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.
在安全關閉資料庫的過程中,系統會執行一個檢查點動作,這時所有資料檔案的終止scn都會設定成資料檔案頭中的那個啟動scn的值。
(4).系統檢查點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. 發生完全檢查點時:
資料檔案頭,標識上次處理完的啟用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. 系統是如何產生一個最新的SCN的:
實際上,這個數字是由當時的timestamp轉換過來的。每當需要產生一個最新的SCN到redo記錄時,系統獲取當時的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除了作為反映事務資料變化並保持同步外,它還起到系統的"心跳"作用——每隔3秒左右系統會重新整理一次系統SCN。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25380026/viewspace-2220089/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle SCN機制解析 (SCN, checkpoint檢查點) - finalOracle
- 【SCN】Oracle檢查scn值指令碼Oracle指令碼
- 深入淺出-檢查點scn
- 檢查點機制與scn
- 檢查點和oracle資料庫的恢復(一)SCNOracle資料庫
- Oracle SCN健康狀態檢查Oracle
- Oracle資料庫啟動過程驗證檢查點SCNOracle資料庫
- 【體系結構】SCN與checkpoint(檢查點)
- 查詢Oracle的SCNOracle
- 關於資料檔案頭的檢查點SCN
- 【TUNE_ORACLE】Oracle檢查點(二)檢查點效能Oracle
- ORACLE SCN 查詢Oracle
- Oracle 檢查點佇列與增量檢查點Oracle佇列
- 關於資料檔案頭的檢查點SCN知識
- oracle checkpoint檢查點Oracle
- Oracle完全檢查點和增量檢查點詳解Oracle
- 【TUNE_ORACLE】Oracle檢查點(一)檢查點(Checkpoint)概念介紹Oracle
- 檢查點SCN在事務發生後以及發生檢查點和歸檔操作後的變化
- 【TUNE_ORACLE】Oracle檢查點(五)建立並利用Statspack定位檢查點故障Oracle
- 關於oracle的ckpt(檢查點程式)Oracle
- oracle檢查點的相關知識Oracle
- CUUG ORACLE檢查點講解Oracle
- [zt]Oracle檢查點ckpt (checkpoint)Oracle
- ORACLE增量檢查點,LRBA,BWROracle
- oracle checkpoint檢查點系列一Oracle
- oracle ckpt檢查點型別(增量及常規完全檢查點)checkpointOracle型別
- 【TUNE_ORACLE】Oracle檢查點(三)增量檢查點四個關鍵引數介紹Oracle
- Oracle 同步、非同步完全檢查點Oracle非同步
- oracle的SCNOracle
- 重建控制檔案, 資料檔案檢查點SCN到底來自哪裡?
- 全域性檢查點和增量檢查點
- 全域性檢查點和增量檢查點(zt)
- Oracle中的SCNOracle
- 【TUNE_ORACLE】Oracle檢查點(四)檢查點對redo日誌的影響和redo日誌大小設定建議Oracle
- Oracle:SCNOracle
- Oracle scnOracle
- 管理oracle日誌之調整檢查點Oracle
- oracle flashback特性(1.2)--閃回查詢之As of scnOracle