ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

对ORACLE数据库虚拟机进行了克隆操作,克隆是没有关闭数据库,克隆结束启用数据库时报错无法启动。

原因:

数据库异常停止,停止的时候还没有来得及将缓存区中的LOG归档,就被强制SHUTDOWN了。

数据库再次启动的时候,会去检查SCN 系统变动码.如果发现不一致,那么就意味着有不一致的LOG需要处理.

报错情况:

SQL> startup
ORACLE 例程已经启动。
Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open( 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项)

SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR 位于第 1 行:
ORA-01194: file 1 needs more recovery to be consistent(文件 1 需要一致性恢复)
ORA-01110: 数据文件 1:'/home/oracle/u01/app/oradata/umsdb/system01.dbf'

SQL> recover database using backup controlfile;
ORA-00279: change 886589271 generated at 09/04/2018 09:06:39 needed for thread1(更改 886589271 (在 09/04/2018 09:06:39 生成) 对于线程 1 是必需的)
ORA-00289:  suggestion : /home/oracle/arch/1_98395_909619752.dbf

(建议: /home/oracle/arch/1_98395_909619752.dbf)
ORA-00280: change 886589271 for thread 1 is in sequence #98395(更改 886589271 对于线程 1 是按序列 #98395 进行的)

指定日志: {=suggested | filename | AUTO | CANCEL}
/home/oracle/u01/app/oradata/umsdb/redo01.log
ORA-00310: archived log contains sequence 98986; sequence 98395 required(存档日志包含序列 98986;要求序列 98395)
ORA-00334: 归档日志:  '/home/oracle/u01/app/oradata/umsdb/redo01.log'

SQL> recover database using backup controlfile;
ORA-00279: change 886589271 generated at 09/04/2018 09:06:39 needed for thread1(更改 886589271 (在 09/04/2018 09:06:39 生成) 对于线程 1 是必需的)
ORA-00289: suggestion : /home/oracle/arch/1_98395_909619752.dbf

(建议: /home/oracle/arch/1_98395_909619752.dbf)

ORA-00280: change 886589271 for thread 1 is in sequence #98395(更改 886589271 对于线程 1 是按序列 #98395 进行的)

指定日志: {=suggested | filename | AUTO | CANCEL}
/home/oracle/u01/app/oradata/umsdb/redo03.log
ORA-00310: archived log contains sequence 98985; sequence 98395 required(存档日志包含序列 98985;要求序列 98395)
ORA-00334: 归档日志:  '/home/oracle/u01/app/oradata/umsdb/redo03.log'

如果存档日志刚好包含要求的序列号,那么恭喜,数据库会提示成功。

指定日志: {=suggested | filename | AUTO | CANCEL}
/home/oracle/u01/app/oradata/umsdb/redo02.log
已应用的日志。
完成介质恢复。
SQL> alter database open resetlogs;
数据库已更改。

如果存档日志不包含要求的序列号,怎么办呢?

RMAN备份恢复最直接,不然真的要搞很久很久。

 

 

参看文章:

https://blog.csdn.net/liaocongyuan1314/article/details/50827086

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr. Sun_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值