調整線上重做日誌大小與數量是常見效能優化手段。在 Data Guard 架構下,主庫異動日誌檔案不會自動同步至備庫,且切換後直接影響新主庫歸檔頻率。本文規範同步操作流程。
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=MANUAL SCOPE=BOTH;
-- 新增
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;
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#;
V$STANDBY_LOG 確認 Standby Redo Log 配置完整。