oracle 學習總結篇三:SCN的理解
scn(system change number) 系統改變號,這個號碼一直是增加不會減少的數字,
可以透過以下sql 查出當前scn 是多少
SQL> select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
210923
1.一。SCN與CHECKPOINT
CKPT程式在checkpoint發生時,將當時的SCN號寫入資料檔案頭和控制檔案,同時通知DBWR程式將資料塊寫到
資料檔案。
CKPT程式也會在控制檔案中記錄RBA(redo block address),以標誌Recovery需要從日誌中哪個地方開始。
與checkpoint相關的SCN號有四個,其中三個存在控制檔案中,一個存放在資料檔案頭中。
這四個分別是:
1.System Checkpoint SCN
當checkpoint完成後,ORACLE將System Checkpoint SCN號存放在控制檔案中。
我們可以透過下面SQL語句查詢:
SQL> select checkpoint_change# from v$database;
CHECKPOINT_CHANGE#
------------------
209006
2.Datafile Checkpoint SCN
當checkpoint完成後,ORACLE將Datafile Checkpoint SCN號存放在控制檔案中。
我們可以透過下面SQL語句查詢所有資料檔案的Datafile Checkpoinnt SCN號。
select name,checkpoint_change# from v$datafile;
SQL> select name,checkpoint_change# from v$datafile;
NAME
-----------------------------------------------------------------
CHECKPOINT_CHANGE#
------------------
D:\ORACLE\ORADATA\PUBTEST\SYSTEM01.DBF
209006
D:\ORACLE\ORADATA\PUBTEST\UNDOTBS01.DBF
209006
D:\ORACLE\ORADATA\PUBTEST\INDX01.DBF
209006
NAME
-----------------------------------------------------------------
CHECKPOINT_CHANGE#
------------------
D:\ORACLE\ORADATA\PUBTEST\TOOLS01.DBF
209006
D:\ORACLE\ORADATA\PUBTEST\USERS01.DBF
209006
3.Start SCN號
ORACLE將Start SCN號存放在資料檔案頭中。
這個SCN用於檢查資料庫啟動過程是否需要做media recovery.
我們可以透過以下SQL語句查詢:
SQL> select name,checkpoint_change# from v$datafile_header;
NAME
----------------------------------------------------------------
CHECKPOINT_CHANGE#
------------------
D:\ORACLE\ORADATA\PUBTEST\SYSTEM01.DBF
209006
D:\ORACLE\ORADATA\PUBTEST\UNDOTBS01.DBF
209006
D:\ORACLE\ORADATA\PUBTEST\INDX01.DBF
209006
NAME
----------------------------------------------------------------
CHECKPOINT_CHANGE#
------------------
D:\ORACLE\ORADATA\PUBTEST\TOOLS01.DBF
209006
D:\ORACLE\ORADATA\PUBTEST\USERS01.DBF
209006
4.End SCN號
ORACLE將End SCN號存放在控制檔案中。
這個SCN號用於檢查資料庫啟動過程是否需要做instance recovery.
我們可以透過以下SQL語句查詢:
select name,last_change# from v$datafile;
SQL> select name,last_change# from v$datafile;
NAME
-------------------------------------------------------------
LAST_CHANGE#
------------
D:\ORACLE\ORADATA\PUBTEST\SYSTEM01.DBF
D:\ORACLE\ORADATA\PUBTEST\UNDOTBS01.DBF
D:\ORACLE\ORADATA\PUBTEST\INDX01.DBF
NAME
-------------------------------------------------------------
LAST_CHANGE#
------------
D:\ORACLE\ORADATA\PUBTEST\TOOLS01.DBF
D:\ORACLE\ORADATA\PUBTEST\USERS01.DBF
SQL>
在資料庫正常執行的情況下,對可讀寫的,online的資料檔案,該SCN號為NULL.
可以看到System Checkpoint SCN,Datafile Checkpoint SCN,Start SCN號
這三者值是一致的,這是因為checkpoint發生時同時要寫這三個值保持一致
後續還有因為時間關係,下次再補充
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7199859/viewspace-207596/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 學習總結篇三:SCN號與資料庫關閉的關係Oracle資料庫
- oracle 學習總結篇三:SCN號與資料庫啟動的關係Oracle資料庫
- oracle 學習總結篇一: 資料庫的建立Oracle資料庫
- 對ORACLE SCN的理解Oracle
- Oracle學習總結Oracle
- OC學習總結(三)
- NestJS學習總結篇JS
- 【三層學習之總結】
- 第三週學習總結
- Snmp學習總結系列——開篇
- Oracle GoldenGate學習總結OracleGo
- oracle flashback特性學習總結Oracle
- oracle認證的學習總結(一)Oracle
- Salesforce LWC學習(二十六) 簡單知識總結篇三Salesforce
- 學習理解篇1
- oracle 學習總結(效能優化)Oracle優化
- oracle 學習總結篇二: 伺服器引數檔案spfile的使用Oracle伺服器
- 【Javascript】DOM程式設計學習總結篇JavaScript程式設計
- 廖雪峰JS學習總結-入門篇JS
- 廖雪峰JS學習總結-函式篇JS函式
- 關於SCN的總結測試
- oracle 學習總結篇四:不完全恢復測試用例Oracle
- Oracle 中 Over() 函式學習總結Oracle函式
- Oracle SCN相關問題學習與測試Oracle
- MongoDB的學習總結MongoDB
- docker的學習總結Docker
- pandas的學習總結
- 學習總結
- JavaScript學習總結(三)BOM和DOM詳解JavaScript
- [大學回憶錄]大三學習生活總結
- 35、SCN號的理解
- 學習什麼是SCN
- C#中的深度學習(三):理解神經網路結構C#深度學習神經網路
- oracle的SCNOracle
- sqlldr的學習與總結SQL
- mysqlimport學習總結MySqlImport
- Maven學習總結Maven
- MyBatis 學習總結MyBatis