SCN的相關解析
2位元組為Wrap(進位值)+4位元組為Base(底值)
select current_scn,dbms_flashback.get_system_change_number,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),scn_to_timestamp(dbms_flashback.get_system_change_number) from v$database;
(1)控制檔案序列號
該序列號是判斷控制檔案是否過“舊”的要素之一,在控制檔案被更新(檢查點資訊更新、建立刪除表空間等)之後就會增長。
select controlfile_sequence# from v$database; --當前控制元件檔案記錄的序列號
select hxfil as file#,FHCSQ from x$kcvfh; --當前資料檔案頭部中記錄的控制檔案序列號
當然Oracle不會只依賴控制檔案序列號判斷控制檔案是否是“舊”的,還依賴控制檔案檢查點SCN號,序列號只是用來短路該判斷,如果序列號校驗沒通過,就沒必要校驗控制檔案檢查點SCN號了。
該序SCN也是判斷控制檔案是否過“舊”的要素之一,控制檔案檢查點SCN必須大於或等於所有資料檔案頭部的檢查點SCN號,否則,控制檔案同樣被認為是“舊”的,例項恢復無法啟動
select controlfile_change# from v$database;
--完全檢查點把SCN更新至資料檔案頭和控制檔案中
--增量檢查點僅把SCN號更新至控制檔案中
控制檔案中儲存的資料庫檢查點SCN號實際上在所有資料檔案頭部中最小的檢查點SCN。它是資料檔案狀態的一個縮影,根據它的值與每個重做日誌的高、低位SCN比較,Oracle可以確定恢復檔案需要使用的第一個日誌檔案。
select checkpoint_change# from v$database;--這個值來自於v$datafile_header.checkpoint_change#的最小值
select name,checkpoint_change# from v$datafile;
select name,last_change# from v$datafile;
select name,checkpoint_change# from v$datafile_header;
col LRBA for a30
col OndiskRBA for a30
select CPDRT,CPLRBA_SEQ||'.'||CPLRBA_BNO||'.'||CPLRBA_BOF "LRBA",CPODR_SEQ||'.'||CPODR_BNO||'.'||CPODR_BOF "OndiskRBA",CPODS from x$kcccp;
日誌檔案中的重做記錄範圍是由這兩個SCN來表示的。
select first_change#,next_change# from v$log; --v$log_history
(9)資料塊中的SCN
(1)資料正常執行時:控制檔案中的系統檢查點scn、控制檔案中的資料檔案檢查點scn和每個資料檔案頭中的啟動scn都是相同的
(2)控制檔案中的每個資料檔案的終止scn都為無窮大FFFFFFFFFFFFFF
(3)正常關閉資料庫的過程中,系統會執行一個檢查點動,這時所有資料檔案的終止scn都會設定成資料檔案頭中的那個啟動scn的值
(4)在資料庫重新啟動的時,Oracle將執行兩次檢查
a.看資料檔案頭中的ckpt計數器是否與對應控制檔案中的ckpt計數器一致,若相等,進行第二次檢查
b.比較檔案頭中的啟動scn和對應控制檔案中的終止scn進行比較,如果終止scn等於啟動scn,則不需要對那個檔案進行恢復
(5)資料庫開啟之後,儲存在控制檔案中的資料檔案終止scn的值再次被更改為FFFFFFF,這表示資料檔案已經開啟並能夠正常使用了
注:非正常關閉資料庫時不進行檢查點處理,終止scn仍然為無窮大。在下次啟動期間,發現啟動scn和終止scn不同,需要例項恢復。
(1)只要資料庫被修改,SCN就會+1,而不是一定要進行checkpoint,例如DML的發生即使沒有提交也會使SCN+1
(2)如果一個DML導致產生事務,則會產生一個SCN
(3)Oracle 10g內部的SCN會預設不管有沒有動作,每隔3s自動增加一次
(4)只有ckpt程式才會修改檔案頭中的checkpoint計數器和SCN,DBWR只會修改資料塊,即ckpt通知dbwr寫資料檔案,寫完之後ckpt更新控制檔案和資料檔案頭
*****************************************************************************
相關操作
alter system checkpoint;
alter system switch logfile
select checkpoint_change# from v$database
select name,checkpoint_change# from v$datafile
select name,checkpoint_change# from v$datafile_header
select * from v$log;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22990797/viewspace-757118/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle redo record scn與transaction相關block scn關係小記Oracle RedoBloC
- Checkpoint和SCN的解析
- Oracle SCN相關問題學習與測試Oracle
- Oracle SCN機制解析Oracle
- 關於SCN的理解(全面)
- 關於scn的理解 (zt)
- Oracle SCN機制解析(zt)Oracle
- ZT Oracle SCN機制解析Oracle
- 轉:Oracle SCN機制解析Oracle
- Oracle SCN機制解析 (SCN, checkpoint檢查點) - finalOracle
- git相關問題解析,你想要的都有?Git
- 關於oracle SCN 的討論Oracle
- Oracle SCN機制解析刨細Oracle
- 轉載Oracle SCN機制解析Oracle
- 關於SCN的總結測試
- HandlerThread解析以及相關問題分析thread
- Spring中AOP相關原始碼解析Spring原始碼
- Spring中AOP相關的API及原始碼解析SpringAPI原始碼
- Dart VM 的相關簡介與執行模式解析Dart模式
- 關於SCN HEADROOM 和_external_scn_rejection_threshold_hours 的說明OOM
- 關於System Change Number(SCN)的常用操作
- SNAT、DNAT策略相關與防火牆配置解析防火牆
- spring 下載地址及相關概念解析Spring
- 【檢視】SMON_SCN_TIME檢視--SCN與時間的對應關係
- RedoLog Checkpoint 和 SCN關係
- SCN與資料庫恢復的關係資料庫
- linux apache泛域名解析及dns相關LinuxApacheDNS
- MyBatis框架的使用解析!資料庫相關API的基本介紹MyBatis框架資料庫API
- 例子解析C++的引用,傳參,const的相關特點C++
- 永泰香港驗血查性別的原理▇相關問題解析
- 【轉載】SCN 備份與恢復的關係
- oracle的SCNOracle
- Processing中PImage類和loadImage()、createImage()函式的相關解析函式
- Android圖片解析度dpi的相關問題解決Android
- 關於資料檔案頭的檢查點SCN
- SCN號與oracle資料庫恢復的關係Oracle資料庫
- 有關 SCN 和 RESETLOG的一些資料
- 混合開發之phonegap開發相關知識解析