ORA-00392: log 4 of thread 2 is being cleared, operation not allowed

 alter database open resetlogs或者 alter database open resetlogs upgrade报错:ORA-00392

在rman restore 还原数据文件和recover 恢复数据文件之后,此时数据库处于mounted状态,需要open并resetlogs 。

此时resetlogs相当于数据库根据控制文件的redo信息,创建新的redo文件。但是有时open resetlogs报错。

昨天在使用RMAN备份恢复测试数据库的时候,
不小心在rename logfile的时候把名字搞错了路径,
导致在resetlogs打开数据库的时候遇到以下错误 ORA-00392

解决步骤:

1:报错查看

2:查看当前日志组状态

3:clear 日志组

4:验证是否报错

5:日志组合日志文件之间的关系 

6:日志管理(常用)

解决步骤:

 
  1.  

    报错查看

     

    SQL> alter database open resetlogs upgrade;

    alter database open resetlogs upgrade

    *

    ERROR at line 1:

    ORA-00392: log 3 of thread 1 is being cleared, operation not allowed

    ORA-00312: online log 3 thread 1: '/u01/oradata/orcl/redo03.log'

     
  2.  

    查看当前日志组状态

     

    SQL> select group#,bytes/1024/1024||'M',status from v$log;

     

        GROUP# BYTES/1024/1024||'M'                 STATUS

    ---------- ----------------------------------------- ----------------

              1 50M                                               CLEARING

              3 50M                                               CLEARING_CURRENT

              2 50M                                               CLEARING

     
  3.  

    clear 日志组

     

    SQL> alter database clear logfile group 1;  

     

    Database altered.

     

    SQL> alter database clear logfile group 2;

     

    Database altered.

     

    SQL> alter database clear logfile group 3;

     

    Database altered.

     

    SQL> select group#,bytes/1024/1024||'M',status from v$log;

     

        GROUP# BYTES/1024/1024||'M'                 STATUS

    ---------- ----------------------------------------- ----------------

              1 50M                                               UNUSED

              3 50M                                               CURRENT

              2 50M                                               UNUSED

     

     
  4.  

    验证是否报错

    alter database open resetlogs upgrade;

    注意:

    执行这条sql的日志文件的物理变化,那就是执行之前目录中还没有日志文件,执行之后,日志文件自动创建

     
     
  5.  

    日志组合日志文件之间的关系 

     

    SQL> select GROUP#,STATUS,TYPE,MEMBER from v$logfile;

     

    GROUP# STATUS  TYPE     MEMBER

    ------ ---------- ---------- ------------------------------

         1  ONLINE     /u01/oradata/orcl/redo01.log

         2  ONLINE     /u01/oradata/orcl/redo02.log

         3  ONLINE     /u01/oradata/orcl/redo03.log

    此时每个group组中都有一个member成员

    1:每个日志组至少有一个成员,成员之间的关系是镜像关系

    2:每个数据库中至少有两个组来回switch切换

     

     
  6.  

    日志管理(常用)

    1:切换日志:alter system switch logfile 

    2:添加一个日志组

     

    SQL> alter database add logfile group 4 '/u01/oradata/orcl/redo04.log' size 20m;

    SQL> select GROUP#,STATUS,TYPE,MEMBER from v$logfile;

     

    GROUP# STATUS  TYPE     MEMBER

    ------ ---------- ---------- ------------------------------

         1  ONLINE     /u01/oradata/orcl/redo01.log

         2  ONLINE     /u01/oradata/orcl/redo02.log

         3  ONLINE     /u01/oradata/orcl/redo03.log

         4  ONLINE     /u01/oradata/orcl/redo04.log

      注意:如果没有制定组号,数据库会在创建时自动添加当前最大组号加1

    3:添加一个成员

     

    SQL>  alter database add logfile member '/u01/oradata/orcl/redo04a.log' to group 4;

    SQL> select GROUP#,STATUS,TYPE,MEMBER from v$logfile;

     

    GROUP# STATUS  TYPE     MEMBER

    ------ ---------- ---------- ------------------------------

         1  ONLINE     /u01/oradata/orcl/redo01.log

         2  ONLINE     /u01/oradata/orcl/redo02.log

         3  ONLINE     /u01/oradata/orcl/redo03.log

         4  ONLINE     /u01/oradata/orcl/redo04.log

         4 INVALID  ONLINE     /u01/oradata/orcl/redo04a.log

    注意:

    1)添加成员不指定大小,镜像关系会自动设置相同大小

    2)添加之后处于invalid非正常状态,需要不停的切换日志才能变成正常状态

     

    4:删除一个成员

    SQL> alter database drop logfile member  '/u01/oradata/orcl/redo04.log';

    注意:

     

    1)CURRENT状态不能删除,先切换再删除  alter system switch logfile;

    2)ACTIVE有时候能删,有时候不能删,如果删除报错,只能等

     

    5:删除一个日志组

     

    SQL> alter database drop logfile group 3;

     

    注意:

     

    1)CURRENT状态不能删除,先切换再删除  alter system switch logfile;

    2)ACTIVE有时候能删,有时候不能删,如果删除报错,只能等

    6:清楚报废日志

    SQL> alter database clear logfile group 4;

    注意:

    如果redo04.log文件报废,而且处于非CURRENT状

posted @ 2018-09-19 17:19  HR·  阅读(431)  评论(0编辑  收藏  举报