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

Oracle Redo日志組在線擴容與重建標準操作

     編輯:Oracle 資料庫基礎

場景:將3組1MB日志擴容至20MB

採用「新建過渡組 → 切換 → 刪舊 → 重建目標組 → 清理過渡組」零停機模式(需歸檔模式)。

標準操作步驟

-- 1. 創建過渡日志組 4、5(大小為目標值20MB)
ALTER DATABASE ADD LOGFILE GROUP 4 ('/u01/app/oracle/oradata/ORCL/redo04.log') SIZE 20M;
ALTER DATABASE ADD LOGFILE GROUP 5 ('/u01/app/oracle/oradata/ORCL/redo05.log') SIZE 20M;

-- 2. 強制日志切換,使當前寫入指向新組
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
-- 確認V$LOG中CURRENT#已指向GROUP 4或5

-- 3. 刪除舊日志組 1、2、3
ALTER DATABASE DROP LOGFILE GROUP 1;
ALTER DATABASE DROP LOGFILE GROUP 2;
ALTER DATABASE DROP LOGFILE GROUP 3;

-- 4. OS層面刪除舊物理文件
rm /u01/app/oracle/oradata/ORCL/redo01.log
rm /u01/app/oracle/oradata/ORCL/redo02.log
rm /u01/app/oracle/oradata/ORCL/redo03.log

-- 5. 重建目標組 1、2、3(復用原組號,大小20MB)
ALTER DATABASE ADD LOGFILE GROUP 1 ('/u01/app/oracle/oradata/ORCL/redo01.log') SIZE 20M;
ALTER DATABASE ADD LOGFILE GROUP 2 ('/u01/app/oracle/oradata/ORCL/redo02.log') SIZE 20M;
ALTER DATABASE ADD LOGFILE GROUP 3 ('/u01/app/oracle/oradata/ORCL/redo03.log') SIZE 20M;

-- 6. 切換回目標組
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
-- 確認CURRENT#回到GROUP 1/2/3循環

-- 7. 清理過渡組 4、5
ALTER DATABASE DROP LOGFILE GROUP 4;
ALTER DATABASE DROP LOGFILE GROUP 5;
rm /u01/app/oracle/oradata/ORCL/redo04.log
rm /u01/app/oracle/oradata/ORCL/redo05.log

-- 8. 備份控制文件(結構變更後必做)
ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '/tmp/ctl_trace.sql' REUSE RESETLOGS;
-- 或二進制備份
ALTER DATABASE BACKUP CONTROLFILE TO '/backup/control_ORCL.ctl' REUSE;

驗證查詢


SELECT group#, sequence#, bytes/1024/1024 size_mb, members, status
FROM v$log
ORDER BY group#;

SELECT group#, member FROM v$logfile ORDER BY group#;

關鍵注意事項

項目要求
最小日志組數至少2組,生產建議3-5組
每組成員數建議2-3路鏡像(不同磁盤/存儲)
日志大小原則切換頻率15-30分鐘一次,避免過頻觸發Checkpoint風暴
歸檔模式必須為ARCHIVELOG,否則DROP LOGFILE可能失敗
Standby同步Data Guard環境需同步在Standby執行相同操作或重建Standby
進階技巧:
• 12c+可使用ALTER DATABASE LOGFILE ... RESIZE直接縮放文件大小(需文件系統支援),但擴容Redo Log組仍建議上述重建法以確保組號連續性。
• 同步修改LOG_ARCHIVE_FORMAT包含%r(resetlogs_id)避免歷史歸檔混淆。
• 操作全程監控alert.log確認無ORA-00312、ORA-01623等異常。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved