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
- 【SCN】Oracle SCN 詳細介紹Oracle
- 【SCN】Oracle推薦scn命令參考Oracle
- 【SCN】Oracle檢查scn值指令碼Oracle指令碼
- Oracle SCN詳解Oracle
- ORACLE -詳解SCNOracle
- oracle的scn及sequenceOracle
- Oracle 檢查點涉及的SCNOracle
- Oracle的SCN顯示問題Oracle
- ordebug 手動修改Oracle sga scnOracle
- oracle基於SCN增量恢復Oracle
- Oracle SCN健康狀態檢查Oracle
- Oracle的DBMS_SCN修正以及SCN的auto-rollover新特性Oracle
- Oracle SCN機制詳細解讀Oracle
- oracle 推進scn(poke、gdb、event、bbed)方法Oracle
- Oracle EBR 基於版本重定義Oracle
- Oracle資料庫中的多種SCN彙總Oracle資料庫
- Oracle儲存過程中定義多個遊標Oracle儲存過程
- 在oracle 9i下線上重定義表Oracle
- 【kingsql分享】使用BBED修改Oracle資料檔案頭推進SCNSQLOracle
- 【恩墨學院】深入剖析 - Oracle SCN機制詳細解讀Oracle
- oracle轉義字元Oracle字元
- oracle myintis 轉義Oracle
- 透過修改控制檔案scn推進資料庫scn資料庫
- 【ASK_ORACLE】Library Cache概念篇(二)之Library Cache Pin的定義Oracle
- Springbean定義SpringBean
- 巨集定義
- 需求定義
- Oracle 自定義函式Oracle函式
- Oracle 特殊字元轉義Oracle字元
- 深入瞭解SCN(轉)
- ORA-01113異常處理_一鍵重新整理Oracle資料檔案scnOracle
- 定義製造業操作(定義 MES/MOM 系統)
- 【VIEW】Oracle如何查詢固定檢視的定義或底層sql語句ViewOracleSQL
- XML Schema定義XML
- Linus 定義 LinuxLinux
- 育種定義
- 類的定義
- 類定義介面