Oracle Redo Log 文件扩容
2026/7/15 14:04:08 网站建设 项目流程

某数据库有3个Log Group,每个Group中的Redo Log文件大小为200MB,需要扩大到1GB。也就是最终需要变成如下:

SQL>selectbytesfromv$log;BYTES----------107374182410737418241073741824

实际上,没有所谓的扩容命令。只需把老的Log Group删除,然后添加新Log Group并指定大小为1GB。

假设status为current的为Log Group 1,我们可以先重建Log Group 2和3:

-- 操作必须在CDB$ROOT中进行connect/assysdbaALTERDATABASEDROPLOGFILEGROUP3;ALTERDATABASEADDLOGFILEGROUP3('+DATAC1')SIZE1G;ALTERDATABASEDROPLOGFILEGROUP2;ALTERDATABASEADDLOGFILEGROUP2('+DATAC1')SIZE1G;

💡 删除LOGFILE GROUP,还需要用rm或类似命令删除之前的redo log文件。

然后做Log Swicth:

ALTERSYSTEM SWITCH LOGFILE;ALTERSYSTEMCHECKPOINT;ALTERDATABASEDROPLOGFILEGROUP1;ALTERDATABASEADDLOGFILEGROUP1('+DATAC1')SIZE1G;

如果不switch logfile,则会报如下错:

SQL>ALTERDATABASEDROPLOGFILEGROUP1;ALTERDATABASEDROPLOGFILEGROUP*ERROR at line1: ORA-01623: log1iscurrentlogforinstance orcl(thread1)-cannotdropORA-00312: online log1thread1:'+RECO/DB0410_NRT12N/ONLINELOG/group_1.551.1136542627'

如果不做checkpoint,则可能报如下错:

SYS@orcl>ALTERDATABASEDROPLOGFILEGROUP1;ALTERDATABASEDROPLOGFILEGROUP1*ERROR at line1: ORA-01624: log1neededforcrash recoveryofinstance orcl(thread1)ORA-00312: online log1thread1:'+DATAC1/ORCL/ONLINELOG/group_1.551.1136542627'

2023年5月22日下午6点,又做了一次,从1G改为2G:

SYS@orcl>selectgroup#, bytes, status from v$log;GROUP# BYTES STATUS---------- ---------- ----------------11073741824CURRENT21073741824INACTIVE31073741824INACTIVEALTERDATABASEDROPLOGFILEGROUP3;ALTERDATABASEADDLOGFILEGROUP3('+DATAC1')SIZE2G;ALTERDATABASEDROPLOGFILEGROUP2;ALTERDATABASEADDLOGFILEGROUP2('+DATAC1')SIZE2G;SYS@orcl>selectgroup#, bytes, status from v$log;GROUP# BYTES STATUS---------- ---------- ----------------11073741824CURRENT22147483648UNUSED32147483648UNUSED SYS@orcl>ALTERSYSTEM SWITCH LOGFILE;System altered.SYS@orcl>selectgroup#, bytes, status from v$log;GROUP# BYTES STATUS---------- ---------- ----------------11073741824ACTIVE22147483648CURRENT32147483648UNUSED SYS@orcl>ALTERDATABASEDROPLOGFILEGROUP1;ALTERDATABASEDROPLOGFILEGROUP1*ERROR at line1: ORA-01624: log1neededforcrash recoveryofinstance orcl(thread1)ORA-00312: online log1thread1:'+DATAC1/ORCL/ONLINELOG/group_1.551.1137263455'SYS@orcl>ALTERSYSTEMCHECKPOINT;System altered.SYS@orcl>ALTERDATABASEDROPLOGFILEGROUP1;Databasealtered.SYS@orcl>ALTERDATABASEADDLOGFILEGROUP1('+DATAC1')SIZE2G;Databasealtered.SYS@orcl>selectgroup#, bytes, status from v$log;GROUP# BYTES STATUS---------- ---------- ----------------12147483648UNUSED22147483648CURRENT32147483648UNUSED

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询