联系:手机/微信(+86 17813235971) QQ(107644445)
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
数据库报错
数据库启动报ORA-00283和ORA-19821错
SQL> recover database; ORA-00283: recovery session canceled due to errors ORA-19821: an intentionally corrupt log file was found SQL> recover datafile 1; ORA-00283: recovery session canceled due to errors ORA-19821: an intentionally corrupt log file was found
Thu May 03 12:06:51 2018 Recovery of Online Redo Log: Thread 1 Group 1 Seq 1 Reading mem 0 Mem# 0: D:\APP\SOHTDB\ORADATA\xifenfei\REDO01.LOG Media Recovery failed with error 19821 Errors in file d:\app\sohtdb\diag\rdbms\xifenfei\xifenfei\trace\xifenfei_pr00_660.trc: ORA-00283: recovery session canceled due to errors ORA-19821: an intentionally corrupt log file was found Slave exiting with ORA-283 exception Errors in file d:\app\sohtdb\diag\rdbms\xifenfei\xifenfei\trace\xifenfei_pr00_660.trc: ORA-00283: recovery session canceled due to errors ORA-19821: an intentionally corrupt log file was found ORA-283 signalled during: ALTER DATABASE RECOVER database ...
ORA-19821报错原因
这个错误相对比较少见,查询mos,由于设置了_disable_logging = TRUE导致该问题
检查alert日志,_disable_logging参数确实被认为设置为true了.
解决方法
根据官方的描述,这样的情况无法常规恢复,但是我们知道设置这个参数是为了不产生日志,因此出现这种情况,只能通过隐含参数,禁止数据库进行实例恢复,强制打开数据库.在这样的过程中非常容易遭遇类似ORA-600 2662的错误.
设置这个参数是为了不产生日志,当数据库非干净关闭(主机断电,数据库crash,shutdown abort等),就非常可能导致数据库无法正常启动.***千不可万不能在生产环境中设置_disable_logging = TRUE***
参考文档:Ora-19821 during the recovery (Doc ID 1217143.1)
Init.ora Parameter “_DISABLE_LOGGING” [Hidden] Reference Note (Doc ID 29552.1)