暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle ORA-00600: 内部错误代码,参数: [kcratr_nab_less_than_odr],[1],[1384],[1270],[2885],[]

ASKTOM 2019-10-23
337

问题描述

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

Oracle数据库11.2.0.1.0

存档日志模式

每天进行RMAN备份,备份控制文件和备份存档日志文件1次到磁盘。

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


嗨,问汤姆团队,

停电后,我得到了上述错误。我使用以下步骤恢复了数据库。我没有手动验证任何交易。

但是我仍然不确定,这是恢复的最佳方法吗?

我可以通过使用这些方法释放一些数据吗?

还有其他更好的恢复数据库的方法吗?

RMAN可以恢复数据库吗 (我尝试从RMAN还原数据库,但它不起作用)?



感谢和问候

法赫德





Enter user-name: sys@orcl2 / as sysdba

Enter password:

 

 

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

 

 

 

SQL> select open_mode from v$database;

 

 

OPEN_MODE

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

MOUNTED

 

 

SQL> alter database open;

alter database open

*

ERROR at line 1:

ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1],[1384], [1270], [2885], [], [], [], [], [], [], []

 

SQL> select a.member, a.group#, b.status from v$logfile a ,v$log b where a.group# = b.group# and b.status='CURRENT' ;

 

 

MEMBER

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

 

 

    GROUP# STATUS

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

D:\APP\DELL\ORADATA\ORCL2\REDO01.LOG

         1 CURRENT

 

SQL> recover database using backup controlfile until cancel ;

ORA-00279: change 35045479 generated at 10/15/2019 23:18:20 needed for thread 1

ORA-00289: suggestion :

D:\APP\DELL\FLASH_RECOVERY_AREA\ORCL2\ARCHIVELOG\2019_10_17\O1_MF_1_1384_%U_.ARC

 

 

ORA-00280: change 35045479 for thread 1 is in sequence #1384

 

 

 

 

Specify log: {=suggested | filename | AUTO | CANCEL}

D:\APP\DELL\ORADATA\ORCL2\REDO01.LOG                                 ----Copied current Redolog file which i got from above query

Log applied.

Media recovery complete.

SQL> Alter database open resetlogs ;

 

 

Database altered.
复制

专家解答

MOS note 1296264.1解释了该怎么做,看起来您遵循了这些步骤。

Do cancel based reocvery, and apply 'current online redolog' manually
------------

SQL>Startup mount ;

SQL> select a.member, a.group#, b.status from v$logfile a ,v$log b where a.group#=b.group# and b.status='CURRENT' ;

Note down the name of the redo log

SQL> Shutdown abort ;

Take a OS Level backup of the controlfile (This is to ensure we have a backup of current state of controlfile)

SQL> Startup mount ;
SQL> recover database using backup controlfile until cancel ;

Enter location of redo log shown as current in Query 1 when prompted for recovery

Hit Enter

SQL> Alter database open resetlogs ;
复制


你可以用RMAN做同样的事情,即发出恢复,但我怀疑它不会知道它想应用当前的重做日志。

文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论