首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle Data Guard 主庫新增/刪除線上重做日誌檔:備庫同步操作規範

     編輯:Oracle 資料庫相關知識

調整線上重做日誌大小與數量是常見效能優化手段。在 Data Guard 架構下,主庫異動日誌檔案不會自動同步至備庫,且切換後直接影響新主庫歸檔頻率。本文規範同步操作流程。

一、影響評估

  • 主庫日誌組/成員增減,備庫不同步,需手動對應操作。
  • 切換後,新主庫若日誌組較少,將強制更頻繁觸發歸檔(Log Switch),影響效能。
  • 建議:主備日誌組數量、大小保持一致。

二、同步操作標準流程(5 步驟)

  1. 取消備庫 Redo Apply:
    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
  2. 備庫設定 STANDBY_FILE_MANAGEMENT=MANUAL(防止自動建檔干擾):
    SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=MANUAL SCOPE=BOTH;
  3. 主庫新增/刪除日誌檔:
    -- 新增
    SQL> ALTER DATABASE ADD LOGFILE '/disk1/oracle/oradata/payroll/prmy3.log' SIZE 100M;
    -- 或新增日誌組
    SQL> ALTER DATABASE ADD LOGFILE GROUP 4 '/disk1/oracle/oradata/payroll/redo04a.log',
                                       '/disk2/oracle/oradata/payroll/redo04b.log' SIZE 200M;
    
    -- 刪除
    SQL> ALTER DATABASE DROP LOGFILE '/disk1/oracle/oradata/payroll/prmy3.log';
    -- 或刪除日誌組
    SQL> ALTER DATABASE DROP LOGFILE GROUP 3;
  4. 備庫執行相同 DDL(路徑依備庫實際配置調整)。
  5. 還原參數並重啟 Redo Apply:
    SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO SCOPE=BOTH;
    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

三、關鍵提醒

操作風險對策
主庫新增日誌,備庫未同步切換後新主庫日誌不足,頻繁切換變更管理流程強制雙端同步
刪除日誌組時成員不足至少保留 2 組,每組 2 成員以上檢查 V$LOG、V$LOGFILE 確認
STANDBY_FILE_MANAGEMENT 未改 MANUAL備庫可能自動建立 OMF 檔案導致路徑不一致操作前必改 MANUAL,事後改回 AUTO

四、驗證腳本

-- 主備對比日誌組數量、大小、成員
SELECT GROUP#, THREAD#, SEQUENCE#, BYTES/1024/1024 AS SIZE_MB, MEMBERS, STATUS
FROM V$LOG
ORDER BY GROUP#;

SELECT GROUP#, MEMBER, TYPE
FROM V$LOGFILE
ORDER BY GROUP#;

五、最佳實務

  1. 將日誌調整納入變更管理,雙人核對執行。
  2. 使用多路徑多工(Multiplexing)每組至少 2 個成員,分佈不同磁碟。
  3. 日誌大小建議:切換頻率 15-20 分鐘一次,依業務峰值調整。
  4. 定期檢查 V$STANDBY_LOG 確認 Standby Redo Log 配置完整。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved