首页 > 代码库 > ORA-00265: instance recovery required, cannot set ARCHIVELOG mode

ORA-00265: instance recovery required, cannot set ARCHIVELOG mode

问题现象:

我在执行开启归档命令后报错误ORA-00265

    SQL> alter database archivelog;
    alter database archivelog
    *
    ERROR at line 1:
    ORA-00265: instance recovery required, cannot set ARCHIVELOG mode


问题分析:
     从如上错误我们可以看到是因为datafile,controlfile,redolog中的SCN号不一致导致无法开启归档,那么导致该问题的原因是因为我重启数据库到mount的时候采用的是startup force mount;因为这个命令实际上是做了两步操作,分别如下:
1、shutdown abort    ---强制关闭数据库
2、startup mount


      既然我们隐含的做了shutdown abort操作之后,也就意味着datafile,controlfile,redolog这里面的SCN号肯定不一致,需要在open数据库的过程中做recover,由于他们的SCN号不一致,所以会导致无法在mount状态下开启archivelog,如下:

    SQL> startup mount force;
    ORACLE instance started.

    Total System Global Area 2505338880 bytes
    Fixed Size 2255832 bytes
    Variable Size 620758056 bytes
    Database Buffers 1862270976 bytes
    Redo Buffers 20054016 bytes
    Database mounted.

    SQL> alter database archivelog;
    alter database archivelog
    *
    ERROR at line 1:
    ORA-00265: instance recovery required, cannot set ARCHIVELOG mode


问题解决办法:
针对该问题,最简单的解决办法是,将数据库open,这个时候会进行recover操作,完成之后再进行shutdown immediate后启动到statup mount就可以开启归档了,详细见如下:

    SQL> alter database open;

    Database altered.

    ####recover日志信息如下
    alter database open
    Beginning crash recovery of 1 threads
     parallel recovery started with 3 processes
    Started redo scan
    Completed redo scan
     read 1522 KB redo, 175 data blocks need recovery
    Started redo application at
     Thread 1: logseq 7, block 10941
    Recovery of Online Redo Log: Thread 1 Group 1 Seq 7 Reading mem 0
      Mem# 0: /DBData/woo2/redo01.log
    Completed redo application of 0.44MB
    Completed crash recovery at
     Thread 1: logseq 7, block 13985, scn 991198
     175 data blocks read, 175 data blocks written, 1522 redo k-bytes read
    Wed Sep 03 22:39:35 2014
    Thread 1 advanced to log sequence 8 (thread open)
    Thread 1 opened at log sequence 8
      Current log# 2 seq# 8 mem# 0: /DBData/woo2/redo02.log
    Successful open of redo thread 1
    MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
    Wed Sep 03 22:39:35 2014
    SMON: enabling cache recovery
    [13499] Successfully onlined Undo Tablespace 2.
    Undo initialization finished serial:0 start:3565124 end:3565194 diff:70 (0 seconds)
    Verifying file header compatibility for 11g tablespace encryption..
    Verifying 11g file header compatibility for tablespace encryption completed
    SMON: enabling tx recovery
    Database Characterset is AL32UTF8
    No Resource Manager plan active
    replication_dependency_tracking turned off (no async multimaster replication found)
    Starting background process QMNC
    Wed Sep 03 22:39:36 2014
    QMNC started with pid=23, OS id=16119
    Completed: alter database open
    Wed Sep 03 22:39:37 2014
    db_recovery_file_dest_size of 4182 MB is 0.00% used. This is a
    user-specified limit on the amount of space that will be used by this
    database for recovery-related files, and does not reflect the amount of
    space available in the underlying filesystem or ASM diskgroup.
    Wed Sep 03 22:39:37 2014
    Starting background process CJQ0
    Wed Sep 03 22:39:37 2014
    CJQ0 started with pid=24, OS id=16134
    Starting background process SMCO
    Wed Sep 03 22:39:43 2014
    SMCO started with pid=30, OS id=16149


#####immediate关闭数据库,重新开启归档,即可。

    SQL> shutdown immediate
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> startup mount;
    ORACLE instance started.

    Total System Global Area 2505338880 bytes
    Fixed Size 2255832 bytes
    Variable Size 620758056 bytes
    Database Buffers 1862270976 bytes
    Redo Buffers 20054016 bytes
    Database mounted.
    SQL> alter database archivelog;

    Database altered.

    SQL> alter database open;

    Database altered.

    SQL>

    ###打开归档alert日志信息如下
    ALTER DATABASE MOUNT
    Successful mount of redo thread 1, with mount id 3606990310
    Database mounted in Exclusive Mode
    Lost write protection disabled
    Completed: ALTER DATABASE MOUNT
    Wed Sep 03 22:45:06 2014
    alter database archivelog
    Completed: alter database archivelog
    alter database open
    Wed Sep 03 22:45:12 2014
    LGWR: STARTING ARCH PROCESSES
    Wed Sep 03 22:45:12 2014
    ARC0 started with pid=20, OS id=16867
    ARC0: Archival started
    LGWR: STARTING ARCH PROCESSES COMPLETE
    ARC0: STARTING ARCH PROCESSES
    Wed Sep 03 22:45:13 2014
    ARC1 started with pid=21, OS id=16871
    Wed Sep 03 22:45:13 2014
    ARC2 started with pid=22, OS id=16873
    Wed Sep 03 22:45:13 2014
    ARC3 started with pid=23, OS id=16875
    ARC1: Archival started
    ARC2: Archival started
    ARC1: Becoming the 


ORA-00265: instance recovery required, cannot set ARCHIVELOG mode