CUUG ORACLE檢查點講解
徹底理解檢查點的功能、作用、原理
檢查點的實際應用
檢查點做什麼:
通知DBWn寫髒塊
資料檔案頭 select name ,CHECKPOINT_CHANGE# from v$datafile_header;
控制檔案頭 select name,CHECKPOINT_CHANGE# from v$datafile;
檢查點號來源與SCN(System Change Number),
SCN是Oracle資料庫中用來標識事務前後順序的唯一序
列號。
SCN是當 Oracle資料更新後,由 DBMS自動維護去累積遞增的一個數字。當 一個事務 commit時,LGWR會將 log buffer寫入 redo log file,同時也會將該事 務的 SCN同步寫入到 redo log file內(wait-until-completed)。因此當你 commit transaction時,在成功的訊息返回之前,LGWR必須先完整的完成上述行為之 後,否則你是看不到提交成功的響應訊息。 |
可以理解的,返回的 SCN,也是目前 redo log file最新的 SCN 紀錄。因為 commit後的交易才會有 SCN,而一旦 commit就會立刻寫入 redo log file中。 |
檢查點的作用
? Checkpoints are used to determine where recovery should start
? Checkpoint position - where recovery starts
? Checkpoint queue - link list of dirty blocks
系統時間標記與 scn之間存在一張表,即 SYS下的 SMON_SCN_TIME。 |
每隔 5分鐘,系統產生一次系統時間標記與 scn的匹配並存入 SYS.SMON_SCN_TIME表(由 SMON程式來進行 Update操作),該表中記錄了 最近 1440個系統時間標記與 scn的匹配記錄,由於該表只維護了最近的 1440條 記錄,即最近 5天內的記錄。 |
檢視 SCN和 timestamp之間的對應關係: select scn,to_char(time_dp,'yyyy-mm-dd hh24:mi:ss') from sys.smon_scn_time order by 2; |
查詢當前的檢查點號
select dbms_flashback.get_system_change_number from dual;
select current_scn from v$datafile;
轉換
select scn_to_timestamp(4082040) from dual;
select timestamp_to_scn(to_date('2011-01-25 12:10:00','yyyy-mm-dd hh24:mi:ss')) from dual; |
checkpoint有兩個目的: 1、確保資料一致性。 |
2、使資料庫能快速地恢復
檢查點型別:
全域性檢查點:
關閉資料庫
增量檢查點:
定期執行、只寫最老的塊S:
階段性的儲存操作的結果,以至於以後例項異常中斷而
不要從頭開始恢復(recovery),縮短例項恢復的時間,
類似於Word程式中設定了自動儲存功能。
部分檢查點
和部分物件 如:TS 做檢查點
部分檢查點的作用
? 用來記錄表空間何時開始備份,那麼以後就從備份的點
(檢查點)開始恢復(recovery),Oracle在做備份時
總是會發生一個檢查點,用來記錄開始備份的位置
部分檢查點的影響
? Oracle會鎖資料檔案頭,但是不會鎖表空間,不影響
DML操作
? 把跟備份表空間相關的髒塊寫入資料檔案
? 如果是UMAN(使用者管理)備份方式,為了保證資料塊
的一致性,會把被修改的資料塊的映象寫入redolog,會
導致日誌資訊量增加
相關引數:
FAST_START_MTTR_TARGET 首選--建議
比如設定為60S,假定該值處於合理的情況之下,則一旦例項崩潰,在60S以內例項應當能夠被恢復。合理即該值不能太大,也不能太小。太大則例項恢復所需的時間較長,太小則導致大量資料的及時寫入,增加了系統的I/O。
FAST_START_MTTR_TARGET設定為0將關閉檢查點自動調整功能。當設定一個大於0的值給FAST_START_MTTR_TARGET,則自動調整檢查點功能將啟用。
select target_mttr,estimated_mttr from v$instance_recovery;
select mttr_target_for_estimate,dirty_limit,estd_cache_writes,estd_cache_write_factor,estd_total_writes,estd_total_write_factor from v$mttr_target_advice;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/500314/viewspace-1069841/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle完全檢查點和增量檢查點詳解Oracle
- 【TUNE_ORACLE】Oracle檢查點(二)檢查點效能Oracle
- 【TUNE_ORACLE】Oracle檢查點(一)檢查點(Checkpoint)概念介紹Oracle
- 【TUNE_ORACLE】Oracle檢查點(五)建立並利用Statspack定位檢查點故障Oracle
- Oracle 檢查點涉及的SCNOracle
- 【TUNE_ORACLE】Oracle檢查點(三)增量檢查點四個關鍵引數介紹Oracle
- 【CHECKPOINT】Oracle檢查點優化與故障處理Oracle優化
- 【TUNE_ORACLE】Oracle檢查點(四)檢查點對redo日誌的影響和redo日誌大小設定建議Oracle
- Oracle DG 日常點檢Oracle
- 【SQL】Oracle SQL共享池檢查SQLOracle
- Oracle SCN健康狀態檢查Oracle
- 【ASK_ORACLE】檢查點錯誤“Cannot allocate new log”和“Checkpoint not complete”Oracle
- 【PDB】Oracle跨PDB檢視查詢Oracle
- 【SCN】Oracle檢查scn值指令碼Oracle指令碼
- 【TUNE_ORACLE】Oracle健康檢查基礎專案(二)專案檢查步驟概述其一Oracle
- 【TUNE_ORACLE】Oracle健康檢查基礎專案(四)專案檢查步驟概述其三Oracle
- 【TUNE_ORACLE】Oracle健康檢查基礎專案(三)專案檢查步驟概述其二Oracle
- 揭示檢查點的祕密
- oracle 查詢鎖 && 解鎖Oracle
- Oracle查詢鎖、解鎖Oracle
- Oracle SQL精妙SQL語句講解OracleSQL
- Oracle RAC一鍵部署002(引數檢查)Oracle
- 10 Oracle跑批慢常用檢查手冊Oracle
- 【BAK_ORACLE】Oracle DB Cloud上的備份檢查命令合集OracleCloud
- postgresql10.3 檢查點調整SQL
- postgresql 檢查點調整 checkpoint 轉SQL
- MySQL什麼是InnoDB檢查點?MySql
- SQLServer的檢查點、redo和undoSQLServer
- TensorFlow——Checkpoint為模型新增檢查點模型
- PG檢查點刷寫髒頁
- 【SQL】Oracle查詢轉換之物化檢視查詢重寫SQLOracle
- oracle連線查詢詳解Oracle
- 【TUNE_ORACLE】Oracle健康檢查基礎專案(一)專案列表Oracle
- Oracle OCP(14):使用子查詢檢索資料Oracle
- 【SQL】Oracle查詢轉換之檢視合併SQLOracle
- 健康檢查,檢查啥,怎麼檢查?
- 安裝Oracle後檢查缺少pdksh包,怎麼辦?Oracle
- Halcon斑點分析官方示例講解
- DispatcherDervlet類中重點方法講解