探索Oracle SCN
SCN是Oracle資料庫的內部時鐘,它在Oracle的多個地方出現,含義各不相同。
1.系統檢查點(system checkpoint)SCN
每當一個檢查點完成時,Oracle就把該檢查點對應的SCN記錄到控制檔案中,可以用以下語句檢視當前資料庫的檢查點SCN:
select CHECKPOINT_CHANGE# from v$database;
CHECKPOINT_CHANGE#
------------------
6627441168
2.資料檔案頭SCN(資料檔案的啟動SCN)
該SCN記錄在每個資料檔案頭中,正常情況下,該SCN應該和記錄在控制檔案中的檢查點SCN一致,可以用以下語句檢視資料檔案頭的SCN:
select FILE#,CHECKPOINT_CHANGE# from v$datafile_header;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 6627448310
2 6627448310
3 6627448310
4 6627448310
5 6627448310
3.資料檔案的檢查點SCN和終止SCN
這兩個SCN不是記錄在資料檔案中,而是記錄在控制檔案中,可以通過以下語句檢視:
select CHECKPOINT_CHANGE#,LAST_CHANGE# from v$datafile;
CHECKPOINT_CHANGE# LAST_CHANGE#
------------------ ------------
6627448310
6627448310
6627448310
6627448310
6627448310
4.三個資料檔案SCN的關係
和資料檔案相關的SCN有:啟動SCN(即資料檔案頭SCN),檢查點SCN,終止SCN,其中第一個SCN儲存在每個資料檔案頭,而後兩個SCN都儲存在控制檔案中。
在資料庫的正常執行中,啟動SCN,檢查點SCN應該一樣,而終止SCN被設為無窮大(NULL),如果資料庫正常關閉,則在關閉前會將每個資料檔案的終止SCN設為和啟動SCN一樣;如果資料庫異常關閉,終止SCN仍儲存無窮大。
每次資料庫啟動時,比較每個資料檔案的啟動SCN和終止SCN,如果一致,該資料檔案不需要恢復,如果不一致則必須恢復。
5.日誌檔案SCN
日誌檔案有低SCN和高SCN之分,低SCN代表該日誌檔案第一個Redo記錄的SCN,而高SCN代表該日誌檔案最後一個Redo記錄的SCN,可以通過以下語句查詢:
select FIRST_CHANGE#,NEXT_CHANGE# from v$log_history;
1.系統檢查點(system checkpoint)SCN
每當一個檢查點完成時,Oracle就把該檢查點對應的SCN記錄到控制檔案中,可以用以下語句檢視當前資料庫的檢查點SCN:
select CHECKPOINT_CHANGE# from v$database;
CHECKPOINT_CHANGE#
------------------
6627441168
2.資料檔案頭SCN(資料檔案的啟動SCN)
該SCN記錄在每個資料檔案頭中,正常情況下,該SCN應該和記錄在控制檔案中的檢查點SCN一致,可以用以下語句檢視資料檔案頭的SCN:
select FILE#,CHECKPOINT_CHANGE# from v$datafile_header;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 6627448310
2 6627448310
3 6627448310
4 6627448310
5 6627448310
3.資料檔案的檢查點SCN和終止SCN
這兩個SCN不是記錄在資料檔案中,而是記錄在控制檔案中,可以通過以下語句檢視:
select CHECKPOINT_CHANGE#,LAST_CHANGE# from v$datafile;
CHECKPOINT_CHANGE# LAST_CHANGE#
------------------ ------------
6627448310
6627448310
6627448310
6627448310
6627448310
4.三個資料檔案SCN的關係
和資料檔案相關的SCN有:啟動SCN(即資料檔案頭SCN),檢查點SCN,終止SCN,其中第一個SCN儲存在每個資料檔案頭,而後兩個SCN都儲存在控制檔案中。
在資料庫的正常執行中,啟動SCN,檢查點SCN應該一樣,而終止SCN被設為無窮大(NULL),如果資料庫正常關閉,則在關閉前會將每個資料檔案的終止SCN設為和啟動SCN一樣;如果資料庫異常關閉,終止SCN仍儲存無窮大。
每次資料庫啟動時,比較每個資料檔案的啟動SCN和終止SCN,如果一致,該資料檔案不需要恢復,如果不一致則必須恢復。
5.日誌檔案SCN
日誌檔案有低SCN和高SCN之分,低SCN代表該日誌檔案第一個Redo記錄的SCN,而高SCN代表該日誌檔案最後一個Redo記錄的SCN,可以通過以下語句查詢:
select FIRST_CHANGE#,NEXT_CHANGE# from v$log_history;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26277071/viewspace-711066/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle:SCNOracle
- Oracle scnOracle
- 【SCN】Oracle SCN 詳細介紹Oracle
- oracle的SCNOracle
- 【SCN】Oracle檢查scn值指令碼Oracle指令碼
- 【SCN】Oracle推薦scn命令參考Oracle
- Oracle timestamp_to_scn and scn_to_timestampOracle
- ORACLE -詳解SCNOracle
- Oracle SCN詳解Oracle
- Oracle Scn 定義Oracle
- ORACLE scn 機制Oracle
- ORACLE SCN 查詢Oracle
- Oracle中的SCNOracle
- oracle的scn及sequenceOracle
- 查詢Oracle的SCNOracle
- oracle資料庫SCNOracle資料庫
- 對ORACLE SCN的理解Oracle
- Oracle SCN機制解析Oracle
- SCN與oracle啟動Oracle
- Oracle HowTo:How to get Oracle SCN?Oracle
- Oracle SCN機制解析 (SCN, checkpoint檢查點) - finalOracle
- oracle-scn資源控制Oracle
- Oracle SCN機制解析(zt)Oracle
- ZT Oracle SCN機制解析Oracle
- Oracle中的SCN詳解Oracle
- 【Oracle概念】-SCN是什麼Oracle
- ORACLE中的4種SCNOracle
- oracle資料庫SCN概念Oracle資料庫
- 轉:Oracle SCN機制解析Oracle
- Oracle的DBMS_SCN修正以及SCN的auto-rollover新特性Oracle
- 【SCN】Oracle資料庫SCN號的四種獲取途徑Oracle資料庫
- oracle redo record scn與transaction相關block scn關係小記Oracle RedoBloC
- Oracle的SCN顯示問題Oracle
- Oracle SCN健康狀態檢查Oracle
- Oracle 檢查點涉及的SCNOracle
- oracle基於SCN增量恢復Oracle
- 使用Oradebug修改Oracle SCNOracle
- Oracle SCN機制解析刨細Oracle