首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle Online Redo Log File 深度解析:架構、效能影響與線上調整實務

     編輯:Oracle 資料庫基礎

Redo Log 基礎架構

  • 以同尺寸多重成員組 (Group) 循環寫入,記錄所有交易變更。
  • V$LOGFILE 查看成員路徑/數量;V$LOG 查看群組狀態 (CURRENT/ACTIVE/INACTIVE/UNUSED)。
  • 僅有一組為 CURRENT;滿後自動切換 (Log Switch),若啟用歸檔模式同步寫入歸檔檔。
  • 最大群組數/成員數定於 CREATE DATABASE 時 (MAXLOGFILES/MAXLOGMEMBERS),可透過 ALTER DATABASE BACKUP CONTROLFILE TO TRACE 產生的 Trace 檔查看。

大小與位置對效能的影響

  • DBCA 預設 500KB 過小,典型 OLTP 建議 16MB~100MB+,目標:Log Switch 間隔 15~30 分鐘。
  • 多群組、多成員、分散不同實體磁碟/控制器,提升寫入平行度與故障恢復彈性。
  • 頻繁 Log Switch (Alert Log 大量 Thread 1 cannot allocate new log) → 調大 Redo Log;間隔過久 → 恢復時間過長 (MTTR 失控)。

線上調整 Redo Log 大小 (零停機)

範例:原 3 組 500KB → 新增 3 組 16MB → 切換 → 刪除舊組。

-- 1. 新增大尺寸群組 (雙成員鏡像)
ALTER DATABASE ADD LOGFILE GROUP 4
  ('/opt/oradata/app/redo04.log', '/ora_bak/oradata2/redolog/redo04.log') SIZE 16M REUSE;
ALTER DATABASE ADD LOGFILE GROUP 5
  ('/opt/oradata/app/redo05.log', '/ora_bak/oradata2/redolog/redo05.log') SIZE 16M REUSE;
ALTER DATABASE ADD LOGFILE GROUP 6
  ('/opt/oradata/app/redo06.log', '/ora_bak/oradata2/redolog/redo06.log') SIZE 16M REUSE;

-- 2. 強制切換數次,使舊群組變 INACTIVE/UNUSED
ALTER SYSTEM SWITCH LOGFILE;  -- 執行 1-3 次

-- 3. 刪除舊群組
ALTER DATABASE DROP LOGFILE GROUP 1;
ALTER DATABASE DROP LOGFILE GROUP 2;
ALTER DATABASE DROP LOGFILE GROUP 3;

全程資料庫保持 OPEN,業務零中斷。

關鍵相關參數

參數說明建議設定
LOG_BUFFERSGA 中 Redo Log Buffer,DML 先寫這裡,滿或 Checkpoint 由 LGWR 刷盤≤ 512KB 或 128KB × CPU 數;查詢 redo buffer allocation retries / redo entries < 1%
LOG_CHECKPOINT_INTERVAL8i 後指兩 Checkpoint 間 OS 區塊數 (通常 512B)= Redo Log 檔案大小 (Bytes) / 512
LOG_CHECKPOINT_TIMEOUT兩 Checkpoint 間秒數建議停用 (0) 或預設 900;交易量非均勻分布,用 INTERVAL 控制較精準

檢測 LOG_BUFFER 是否足夠

SELECT rbar.name, rbar.value, re.name, re.value,
       (rbar.value*100)/re.value || '%' AS "ratio"
FROM v$sysstat rbar, v$sysstat re
WHERE rbar.name = 'redo buffer allocation retries'
  AND re.name = 'redo entries';

比率 < 1% 為佳;否則調大 LOG_BUFFER。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved