標題雖寫「歸檔日誌大小修改」,實操對象為線上 Redo Log Group(Online Redo Log),歸檔日誌為 Redo 封存後產生,大小由 Redo Group 決定。
現有 3 Group(Group 1/2/3),各 1 Member,大小 1MB。需調整為 10MB。
ALTER DATABASE ADD LOGFILE GROUP 4 ('/u01/app/oracle/oradata/orcl/redo04.log') SIZE 10M;
ALTER DATABASE ADD LOGFILE GROUP 5 ('/u01/app/oracle/oradata/orcl/redo05.log') SIZE 10M;
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
ALTER DATABASE DROP LOGFILE GROUP 1;
ALTER DATABASE DROP LOGFILE GROUP 2;
ALTER DATABASE DROP LOGFILE GROUP 3;
rm /u01/app/oracle/oradata/orcl/redo01.log
rm /u01/app/oracle/oradata/orcl/redo02.log
rm /u01/app/oracle/oradata/orcl/redo03.log
ALTER DATABASE ADD LOGFILE GROUP 1 ('/u01/app/oracle/oradata/orcl/redo01.log') SIZE 10M;
ALTER DATABASE ADD LOGFILE GROUP 2 ('/u01/app/oracle/oradata/orcl/redo02.log') SIZE 10M;
ALTER DATABASE ADD LOGFILE GROUP 3 ('/u01/app/oracle/oradata/orcl/redo03.log') SIZE 10M;
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
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
ALTER DATABASE BACKUP CONTROLFILE TO TRACE RESETLOGS;
SELECT group#, status, bytes FROM v$log; 確認狀態流轉:CURRENT → ACTIVE → INACTIVE → UNUSED。DROP LOGFILE GROUP 需該 Group 已歸檔(ARCHIVED=YES)。ORA-01567(正在使用)或 ORA-00350(未歸檔),需再 SWITCH LOGFILE 或手動 ALTER SYSTEM ARCHIVE LOG CURRENT。V$LOG、V$LOGFILE、V$LOG_HISTORY 正常。Redo Log Group 大小調整屬線上作業,遵循「新建→切換→刪舊→重建→切回→清理→備份控制檔」八步驟,風險可控。生產環境建議維護窗口執行,並準備回滾腳本。