ORA-16038错误解决

发现测试用的一个DB在startup时报如下错误:

SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-16038: log 1 sequence# 56 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 1 thread 1: '/u02/oradata/orcl/redo01.log'

参照网上一篇文章得以解决:http://www.cnblogs.com/jimeper/archive/2008/04/14/1153234.html

从v$log中找到当前日志状态,可知当前日志组是3,而group 1还未归档;

SQL> select group#,sequence#,archived,status from v$log;

    GROUP#  SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
         1         56 NO  INACTIVE
         3         58 NO  CURRENT
         2         57 NO  INACTIVE

用alter database clear logfile命令尝试重构logfile group 1,失败;

SQL> alter database clear logfile group 1;
alter database clear logfile group 1
*
ERROR at line 1:
ORA-00350: log 1 of instance orcl (thread 1) needs to be archived
ORA-00312: online log 1 thread 1: '/u02/oradata/orcl/redo01.log'

失败的原因是group 1还没有归档,需要加上”unarchived”参数;

SQL> alter database clear unarchived logfile group 1;

Database altered.

成功,下面DB就可以正常open了;

SQL> alter database open;

Database altered.

SQL>  

posted @ 2013-04-06 23:11  wilson.han  阅读(338)  评论(0编辑  收藏  举报