ORA-00265: instance recovery required, cannot set ARCHIVELOG mode
ORA-00265: instance recovery required, cannot set ARCHIVELOG mode 一、故障现象: SYS@PROD>alter database archivelog; alter database archivelog * ERROR at line 1: ORA-00265: instance recovery required, cannot set ARCHIVELOG mode ----要求恢复实例,(目前)不能设置归档模式
今天在起归档时遇到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,例如以下:
二、故障分析: 1.使用shutdown abort 关闭数据库 2.start mount 开启归档模式后,数据库认为是非正常关闭数据库,Oracle这种机制是希望DBA检查数据库出现的问题,然后再设置归档。其实,想想也是合情理的数据库都突然(shutdown abort)宕机了,设置归档(用于恢复嘛!)没有意义了!
再想想:使用abort后,在线日志当时也是记录这种非正常停库的信息,此时的恢复介质Oracle认为是不可用的,对于此刻起开归档是不能满足介质恢复作用的,这里我认为,Oracle让你通过启动数据库检查是否正常。
三、故障解决: 过程:shutdown immediate-->startup-->shutdown immediate(正常关闭)-->startup mount-->alter database archivelog
SYS@PROD>shutdown immediate;
ORA-01109: database not open Database dismounted. ORACLE instance shut down.
SYS@PROD>startup
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1219184 bytes
Variable Size 100664720 bytes
Database Buffers 209715200 bytes
Redo Buffers 2973696 bytes
Database mounted. Database opened.
SYS@PROD>shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS@PROD>startup mount
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1219184 bytes
Variable Size 100664720 bytes
Database Buffers 209715200 bytes
Redo Buffers 2973696 bytes
Database mounted.
SYS@PROD>alter database archivelog;
Database altered.
SYS@PROD>alter database open;