【TUNE_ORACLE】Oracle檢查點(四)檢查點對redo日誌的影響和redo日誌大小設定建議
說明
檢查點系列相關文章地址:
Oracle檢查點(一)檢查點(Checkpoint)概念介紹: http://blog.itpub.net/69992972/viewspace-2787595/
Oracle檢查點(二)檢查點效能: http://blog.itpub.net/69992972/viewspace-2787789/
Oracle檢查點(三)增量檢查點四個關鍵引數介紹: http://blog.itpub.net/69992972/viewspace-2787943/
Oracle檢查點(四)檢查點對redo日誌的影響和redo日誌大小設定建議: http://blog.itpub.net/69992972/viewspace-2788206/
Oracle檢查點(五)建立並利用Statspack定位檢查點故障: http://blog.itpub.net/69992972/viewspace-2788418/
檢查點和redo日誌的關係
每次切換日誌時都會發生一次檢查點。如果上一個檢查點已在進行中,由日誌切換引起的檢查點將覆蓋當前檢查點。
此時就需要大小合適的 redo 日誌,以避免因頻繁的日誌切換而引起不必要的檢查點。另外, 增量檢查點目標和日誌尾之間的間隔也會受“最小線上日誌檔案大小的 90%”設定所限制。這樣做的目的是可確保在大多數情況下,日誌切換不必等待檢查點。因此,日誌檔案大小應配置得夠大才行(但不能太大,至於設定多大,下文有建議)。 日誌檔案過小會增加檢查點活動並降低效能 。Oracle官方也建議使用者將所有線上日誌檔案設定為同一大小,且每個執行緒至少擁有兩個日誌組。若要監視日誌切換髮生的速度,以及隨後的檢查點產生的速度,可以檢視alert日誌。
redo日誌大小設定建議
先看一個alert日誌中日誌切換的例子後再予以說明:
Fri Aug 6 12:16:57 2021
Thread 1 advanced to log sequence 1661
Current log# 1 seq# 1661 mem# 0: /oracle/oradata/redo01.log
Thread 1 advanced to log sequence 1662
Current log# 2 seq# 1662 mem# 0: /oracle/oradata/redo02.log
Fri Aug 6 12:18:21 2021
Thread 1 advanced to log sequence 1663
Current log# 3 seq# 1663 mem# 0: /oracle/oradata/redo03.log
Thread 1 advanced to log sequence 1664
Current log# 1 seq# 1664 mem# 0: /oracle/oradata/redo01.log
Fri Aug 6 12:21:17 2021
Thread 1 advanced to log sequence 1665
Current log# 2 seq# 1665 mem# 0: /oracle/oradata/redo02.log
以上不難看出,redo日誌每2-3分鐘切換一次,日誌切換過於頻繁了,說明redo日誌的大小太小了。日誌如果 redo 日誌每 3 分鐘切換一次,就能感覺到資料庫的效能降低了。這表明 redo 日誌不夠大,不能有效地處理該事務負載。因此可以得出結論: 過於頻繁的檢查點和日誌檔案切換問題會影響資料庫效能!
那麼如何設定合適的redo日誌大小呢?
根據官方建議和本人工作經驗,重做日誌切換應該大約每 20-30 分鐘左右產生一次最為合適。如果它們切換太頻繁,可以透過 V$LOG 檢查當前重做日誌檔案的大小,並根據平均切換頻率,重新建立更大的重做日誌組,然後用“ALTER SYSTEM SWITCH LOGFILE;” 切換redo日誌幾次,使得當前重做日誌是剛建立較大的重做日誌檔案之一( 要確保之前小的redo日誌是“INACTIVE”狀態),最後使用“ALTER DATABASE DROP LOGFILE XXX ;”命令刪除較小的重做日誌組。
另外,將重做日誌檔案分佈在多個物理磁碟上,也可以提高日誌切換期間的效能。
補充說明:
如果等待日誌檔案切換完成,還需要新增一個或多個重做日誌組來解決 Statspack 報告中的相關等待事件。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69992972/viewspace-2788206/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQLServer的檢查點、redo和undoSQLServer
- 檢視Oracle的redo日誌切換頻率Oracle
- 檢視oracle的redo日誌組切換頻率Oracle
- 【TUNE_ORACLE】Oracle檢查點(二)檢查點效能Oracle
- MySQL 5.6修改REDO日誌的大小和個數MySql
- Innodb檢查點和redo寫盤時機
- Oracle redo日誌內容探索(一)Oracle Redo
- MySQL之事務和redo日誌MySql
- 【TUNE_ORACLE】Oracle檢查點(一)檢查點(Checkpoint)概念介紹Oracle
- 【TUNE_ORACLE】Oracle檢查點(三)增量檢查點四個關鍵引數介紹Oracle
- 【REDO】Oracle 日誌挖掘,分析歸檔日誌線上日誌主要步驟Oracle
- Oracle redo日誌內容探索之二Oracle Redo
- MySQL重做日誌(redo log)MySql
- 【TUNE_ORACLE】Oracle檢查點(五)建立並利用Statspack定位檢查點故障Oracle
- oracle丟失的是所有的redo日誌組Oracle
- eclipse設定檢視GC日誌和如何理解GC日誌EclipseGC
- MySQL redo與undo日誌解析MySql
- Archived Redo Logs歸檔重做日誌介紹及其優點Hive
- Oracle完全檢查點和增量檢查點詳解Oracle
- MySQL 日誌系統 redo log、binlogMySql
- Oracle11g redo log 建立、新增、刪除(重做日誌組,重做日誌檔案)Oracle
- Oracle recover current redo ORA-00600:[4193] (oracle 故障恢復current redo日誌ORA-00600:[4193]報錯)Oracle
- 7 Redo Transport Services 日誌傳輸服務
- 關於MySQL 通用查詢日誌和慢查詢日誌分析MySql
- MySQL慢查詢日誌相關設定MySql
- Oracle 檢查點涉及的SCNOracle
- 【Mysql】三大日誌 redo log、bin log、undo logMySql
- Linux 檢視日誌Linux
- alertmanager: 檢視日誌
- mysql關於redo事務日誌ib_logfile的理解MySql
- loki的日誌查詢Loki
- 手工rm刪除歸檔日誌對備份歸檔日誌的影響
- mysql日誌:redo log、binlog、undo log 區別與作用MySql
- 【TUNE_ORACLE】Oracle健康檢查基礎專案(四)專案檢查步驟概述其三Oracle
- win10查詢崩潰日誌方法 win10怎麼檢視崩潰日誌Win10
- 必須瞭解的mysql三大日誌-binlog、redo log和undo logMySql
- oracle 11g檢視alert日誌方法Oracle
- 檢視系統的日誌