有关oracle中重建redo log的方法,有需要的朋友建议参考下。
1. 查看当前Logfile状态
复制代码 代码如下:
select group#, bytes, archived, status from v$log;
确认group 1的状态为INACTIVE,如果不是,则执行以下命令强制切换logfile;
复制代码 代码如下:
alter system switch logfile;
2. 再次查看logifle状态
复制代码 代码如下:
select group#, bytes, archived, status from v$log;
3. drop掉redo group1;
从上一步确认group 1的当前状态为inactive,将它drop掉。
复制代码 代码如下:
ALTER DATABASE DROP LOGFILE GROUP 1;
4. 增加大小合适的group:
复制代码 代码如下:
ALTER DATABASE ADD LOGFILE group 1 ('/oradata/umppdb/redo01.log', '/oradata/umppdb/redo11.log') size 50M reuse;
5. 重复1-2步骤,确认group 2的状态为inactive;然后执行以下操作:
复制代码 代码如下:
ALTER DATABASE DROP LOGFILE GROUP 2;
ALTER DATABASE ADD LOGFILE group 2 ('/oradata/umppdb/redo02.log', '/oradata/umppdb/redo12.log') size 50M reuse;
6. 重复1-2步骤,确认group 3的状态为inactive;然后执行以下操作:
复制代码 代码如下:
ALTER DATABASE DROP LOGFILE GROUP 3;
ALTER DATABASE ADD LOGFILE group 3 ('/oradata/umppdb/redo03.log', '/oradata/umppdb/redo13.log') size 50M reuse;
如果发现group 3的状态不管怎么switch都不能转为inactive状态,则添加一个group 4来周转一下:
复制代码 代码如下:
ALTER DATABASE ADD LOGFILE group 4 ('/oradata/umppdb/redo04.log', '/oradata/umppdb/redo14.log') size 50M reuse;
直到重建完group3之后,再将group 4 drop掉;
最后,3个redo group的查询信息如下:
复制代码 代码如下:
select group#, bytes, archived, status from v$log;
GROUP# BYTES ARCHIV STATUS
---------- ---------- ------ --------------------------------
1 52428800 NO CURRENT
2 52428800 YES INACTIVE
3 52428800 YES UNUsed