Oracle Scn 定義
SCN: oracle system change number.表示oracle 系統改變號。
SCN是一個由之間轉換過來的數字,可以通過下列語句轉換SCN和具體時間。
SELECTDBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER,
SCN_TO_TIMESTAMP(DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER)FROM DUAL;
常見的SCNSCN遍佈資料庫的每一個角落。下面列舉幾個常見和重要的SCN。
1、系統檢查點SCN(控制檔案資料庫條目)
可以通過查詢檢視獲得系統檢查點SCN值,該值儲存在控制檔案中,SELECT CHECKPOINT_CHANGE# FROM V$DATABASE; 表示的是LAST SCNCHECKPOINTED。
可以通過dump出控制檔案進行檢視:ALTERSESSION SET EVENTS 'IMMEDIATE TRACE NAME CONTROLF LEVEL 12'。
2、檔案檢查點SCN(控制檔案資料檔案條目)可以通過查詢檢視獲得檔案檢查點SCN值,該值儲存在控制檔案中,SELECTNAME,CHECKPOINT_CHANGE# FROM V$DATAFILE;
可以通過dump出控制檔案進行檢視:ALTERSESSION SET EVENTS 'IMMEDIATE TRACE NAME CONTROLF LEVEL 12'。
3、檔案最終檢查點SCN(控制檔案資料檔案條目)可以通過查詢檢視獲得檔案最終檢查點SCN值,該值儲存在控制檔案中,SELECTNAME,LAST_CHANGE# FROM V$DATAFILE;改值在資料庫啟動時設定為無窮大,該值在資料庫正常關閉的情況下設定為關閉時的SCN,非正常關閉依舊為無窮大。
4、資料檔案頭部的檢查點SCN(資料檔案頭)可以通過查詢檢視獲得檔案檢查點SCN值,該值儲存在資料檔案頭部,SELECT NAME,CHECKPOINT_CHANGE# FROM V$DATAFILE_HEADER。也可以通過dump資料檔案頭塊進行檢視。
5、RedoFile檔案開始SCN表示切換到該日誌檔案的時間點,可以通過查詢檢視獲得檔案RedoFile檔案開始SCN,該值儲存在資料檔案頭部,SELECT FIRST_CHANGE# FROM V$LOG; 也可以通過dump redoFile檔案頭塊進行檢視。當前redoFile的開始SCN就是上一個redoFile的的結束SCN。
6、RedoFile檔案結束SCN表示切換到下一個日誌檔案的時間點,可以通過查詢檢視獲得檔案RedoFile檔案開始SCN,該值儲存在資料檔案頭部,SELECT NEXT_CHANGE# FROM V$LOG; 也可以通過dump redoFile檔案頭塊進行檢視。當前redoFile的結束SCN就是下一個redoFile的的開始SCN。
7、RedoLog條目的SCN表示redo條目對應資料庫被修改時間點的CSN。
各檢查點之間關係1、資料庫正常關閉和啟動時,控制檔案的系統SCN、控制檔案中的資料檔案開始SCN和資料檔案頭部的開始SCN是相等的,檔案的最終檢查點SCN是無窮大。
2、正常關閉資料庫,oracle會做下列操作。
A、將所有的buffer cache寫到磁碟上。
B、用關閉的時間點SCN更新系統SCN、檔案檢查點SCN、檔案最終檢查點SCN、資料檔案頭部檢查點SCN。此時4中SCN的值相同。
3、資料庫非正常關閉(abort),資料庫不做寫buffercache操作和更新SCN操作。此時檔案最終檢查點依然為空,資料庫需要進行例項恢復。資料庫在open的過程中,從控制檔案的檢查點條目中的每個檢查點佇列中取得LRBA(檢查點佇列中第一個髒塊的LRBA)和ON DISK RBA(對應REDO FILE的最後一條redolog 條目),然後從LRBA跑日誌到ON DISK RBA。
4、資料庫正常關閉,用一個備份的資料檔案覆蓋其中一個資料檔案,此時資料檔案頭部的檢查點SCN小於控制檔案中的“檔案檢查點SCN”,此時就需要進行介質恢復。
操作對SCN號的影響操作是否重新整理SCN號碼
注:1、曾量檢查點會更新控制檔案checkpoint 條目的LRBA值。不會改變SCN
2、日誌切換,假如切換之後將active型別的日誌檔案切換為inactive,則會更新系統檢查點SCN、檔案檢查點SCN和檔案頭部檢查點SCN。
3、全量檢查點會將buffercache全部寫到內容,所以日誌狀態會發生變化,所以會改變系統檢查點CSN。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11693228/viewspace-1061078/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle:SCNOracle
- Oracle scnOracle
- 【SCN】Oracle SCN 詳細介紹Oracle
- oracle 定義jobOracle
- 探索Oracle SCNOracle
- oracle的SCNOracle
- 【SCN】Oracle檢查scn值指令碼Oracle指令碼
- 【SCN】Oracle推薦scn命令參考Oracle
- Oracle timestamp_to_scn and scn_to_timestampOracle
- oracle 線上重定義Oracle
- Oracle線上重定義Oracle
- ORACLE -詳解SCNOracle
- Oracle SCN詳解Oracle
- ORACLE scn 機制Oracle
- ORACLE SCN 查詢Oracle
- Oracle中的SCNOracle
- oracle 表線上重定義Oracle
- oracle表線上重定義Oracle
- oracle預定義異常Oracle
- 【Oracle】線上重定義表Oracle
- oracle alert的定義指南Oracle
- 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的線上重定義(轉)Oracle
- 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