Oracle 同步、非同步完全檢查點
Oracle 同步、非同步完全檢查點
oracle檢查點分類Oracle檢查點分為:全量檢查點和增量檢查點,全量檢查點分為同步全量檢查點和非同步全量檢查點。
全量檢查點從當前(也就是最新的)重做記錄開始,LGWR將所有的重做記錄寫入到redo log 檔案中,DBWn程式將當前重做記錄之前產生的髒資料塊寫入到資料檔案中,最後CKPT將檢查點SCN寫入到資料檔案頭和控制檔案中。
同步全量檢查點優先順序高,檢查點沒有完成,命令不會返回。包括:除shutdown abort之外的其他關閉命令,以及alter system checkpoint命名。針對表空間檔案的全量檢查點命令alter tablespace offline、online、begin backup、end backup、readonly、readwrite,這些命令會修改對應表空間檔案的檔案頭檢查點SCN以及控制檔案中檔案SCN。
非同步全量檢查點優先順序低,檢查點沒有完成(可能是沒有將redo buffer 全部寫入到redo log file、可能正在歸檔、也可能是髒資料還沒有寫入到data file 中)的情況下就會返回命令,比如alter systemswitch logfile(將在後續試驗中證明該命令是非同步全量檢查點)以及日誌的自動卻換。
增量檢查點取一條重做記錄,該重做記錄由oracle內部決定,LGWR將該重做記錄之前的資料寫入到線上日誌檔案中,DBWN將該重做日誌之前的髒資料寫入到data file中,最後CKPT程式將檢查點SCN記錄到控制檔案中。需要仔細得體會下增量檢查點與非同步全量檢查點的區別。
實驗實驗一
目的:
證明alter system checkpoint為同步全量檢查點,alter system switch logfile為非同步全量檢查點。
過程:1、 開啟檢查點alert資訊。
alter system set log_checkpoints_to_alert= true;
2、 監控alert檔案
tail -f alert_orcl.log
3、 檢視控制檔案檢查點SCN、檢視控制檔案檔案頭SCN、檢視檔案頭SCN。
select t.NAME,t.CHECKPOINT_CHANGE#,t.CHECKPOINT_TIME,t.CHECKPOINT_COUNT from v$datafile_headert;--檔案頭檢查點scn
select t.CHECKPOINT_CHANGE#,T.CURRENT_SCN fromv$database t;--控制檔案檢查點scn
select t.NAME,t.CHECKPOINT_CHANGE#,T.LAST_CHANGE#,t.CHECKPOINT_TIME fromv$datafile t;---控制檔案檔案頭檢查點SCN
檢視控制檔案檢查點SCN、檢視控制檔案檔案頭SCN、檢視檔案頭SCN都是16341058。
4、 執行alter system checkpoint。
5、 檢視alert日誌資訊。
Beginning global checkpoint up to RBA [0xe7.ffd4.10],SCN: 16348837
Completed checkpoint up to RBA[0xe7.ffd4.10], SCN: 16348837
開始了一個全域性檢查點,檢查點SCN為16348837,並立即返回完成檢查點,這就是同步全量檢查點。
6、再次檢視控制檔案檢查點SCN、檢視控制檔案檔案頭SCN、檢視檔案頭SCN。
結果全為16348837。與alert日誌中的資訊一致。
7、執行alter system switch logfile,手動切換日誌
8、檢視alert日誌資訊
Beginning log switch checkpoint up to RBA [0xe8.2.10],SCN: 16348963
Thread 1 advanced to log sequence 232 (LGWR switch)
Current log# 1 seq# 232 mem# 0:/u01/app/oracle/oradata/orcl/redo01.log
Tue May 07 22:21:32 2013
Archived Log entry 15 added for thread 1sequence 231 ID 0x4f6b0381 dest 1:
開始一個log switch 檢查點,並切換了日誌,歸檔了線上日誌檔案,檢查點沒有完成。
9、再次檢視控制檔案檢查點SCN、檢視控制檔案檔案頭SCN、檢視檔案頭SCN。
結果全為16348837。沒有發生變化。
10、過了一段時間後,alert日誌自動重新整理了,
Tue May 07 22:25:54 2013
Completed checkpoint up to RBA[0xe8.2.10], SCN: 16348963
提示完成了檢查點。這就是非同步完全檢查點,並不立即返回檢查點結果。
11、再次檢視控制檔案檢查點SCN、檢視控制檔案檔案頭SCN、檢視檔案頭SCN。
檢查點SCN全為16348963。這就是非同步全量檢查點,並不會立即完成檢查點,完成檢查點後會更新控制檔案和資料檔案頭的檢查點SCN。
12、 檢視日誌檔案select * from v$log;
狀態為current的日誌檔案的開始SCN也是16348963。
總結綜上所述,alter systemcheckpoint為同步全量檢查點,alter system switch logfile為非同步全量檢查點,兩者都能呼叫CKPT程式將檢查點SCN設定到控制檔案和資料檔案中。兩則區別在於,一個是立刻返回並設定檢查點SCN,一個是延遲返回並設定檢查點SCN
實驗二增量檢查點。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11693228/viewspace-1061074/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle完全檢查點和增量檢查點詳解Oracle
- oracle ckpt檢查點型別(增量及常規完全檢查點)checkpointOracle型別
- 同步非同步,阻塞非阻塞非同步
- 非同步、同步、阻塞、非阻塞非同步
- 同步、非同步、阻塞、非阻塞非同步
- 同步非同步 與 阻塞非阻塞非同步
- 理解阻塞、非阻塞、同步、非同步非同步
- 同步、非同步,阻塞、非阻塞理解非同步
- 同步、非同步、阻塞與非阻塞非同步
- 同步、非同步、阻塞和非阻塞非同步
- 對於同步、非同步、阻塞、非阻塞的幾點淺薄理解非同步
- [轉]阻塞/非阻塞與同步/非同步非同步
- 同步與非同步 阻塞與非阻塞非同步
- 同步、非同步、阻塞、非阻塞的區別非同步
- 【TUNE_ORACLE】Oracle檢查點(二)檢查點效能Oracle
- 徹底搞懂同步非同步與阻塞非阻塞非同步
- IO - 同步 非同步 阻塞 非阻塞的區別非同步
- 同步、非同步、阻塞、非阻塞的簡單理解非同步
- 同步與非同步、阻塞與非阻塞的理解非同步
- java同步非阻塞IOJava
- 非同步和非阻塞非同步
- Oracle 檢查點佇列與增量檢查點Oracle佇列
- 同步阻塞、同步非阻塞、多路複用的介紹
- oracle checkpoint檢查點Oracle
- golden gate同步的表結構修改檢查Go
- 【TUNE_ORACLE】Oracle檢查點(一)檢查點(Checkpoint)概念介紹Oracle
- 大白話搞懂什麼是同步/非同步/阻塞/非阻塞非同步
- socket阻塞與非阻塞,同步與非同步、I/O模型非同步模型
- 網路IO之阻塞、非阻塞、同步、非同步總結非同步
- 怎樣理解阻塞非阻塞與同步非同步的區別?非同步
- 一篇文章讀懂阻塞,非阻塞,同步,非同步非同步
- ♻️同步和非同步;並行和併發;阻塞和非阻塞非同步並行
- 【TUNE_ORACLE】Oracle檢查點(五)建立並利用Statspack定位檢查點故障Oracle
- 知識點一同步和非同步非同步
- JPA 實體髒檢查與儲存同步(Dirty & Flush)
- Sqlserver 映象切換操作並檢查映象同步情況SQLServer
- 程式執行緒、同步非同步、阻塞非阻塞、併發並行執行緒非同步並行
- 聊聊執行緒與程式 & 阻塞與非阻塞 & 同步與非同步執行緒非同步