0

私が直面したいくつかの問題のため、Oracle 11gで以下のクエリを試しています。しかし、そのスローエラー。誰でも助けてもらえますか

クエリ:データベース オープンの変更

* 1 行目のエラー: ORA-00600: 内部エラー コード、引数: [kcratr_nab_less_than_odr]、[1]、[505]、[33717]、[33719]、[]、[]、[]、[]、[] 、[]、[]

前もって感謝します

4

2 に答える 2

5

Alter database open が ORA-00600 kcratr_nab_less_than_odr で失敗する

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

SQL>Startup mount ;

SQL>Show parameter control_files

Query 1
------------

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 ;


Option b: Recreate the controlfile using the Controlfile recreation script
-----------

NOTE:  If you are using RMAN backup without a catalog, you will need to catalog the backups after the controlfile is recreated.  For tape backups, capture your backup information before recreating the controlfile as this will be needed.  

With database in mount stage

$ rman target /
rman> spool log to '/tmp/rman.log';
rman> list backup ;
rman> exit

# Keep this log handy

Go to sqlplus

SQL> Show parameter control_files 

Keep this location handy.

SQL> oradebug setmypid 
SQL> Alter session set tracefile_identifier='controlfilerecreate' ;
SQL> Alter database backup controlfile to trace noresetlogs;
SQL> oradebug tracefile_name ; --> This command will give the path and name of the trace file

Go to this location ,Open this trace file and select the controlfile recreation script with NOResetlogs option 

SQL> Shutdown immediate;

Rename the existing controlfile to <originalname>_old ---> This is Important as we need to have a backup of existing controlfile since we plan to recreate it

SQL> Startup nomount

Now run the Controlfile recreation script with NO Resetlogs option.

SQL> Alter database open ;

For database version 10g and above 

Once database is opened you can recatalog the rman backup information present in the list /tmp/rman.log using

Rman> Catalog start with '<location of backupiece>' ;

If backups are on tape, and you are not using a catalog, backups can be cataloged using information in:
How to Catalog Tape Backup Pieces (Doc ID 550082.1)

Once the database has been opened using the Option a or Option b,  it is recommended to take a hot backup of the database.  The same steps are applicable to RAC if all instance are down with same error.

If  both Options (a|b) fails,  or you do not have the full set of files, then you have to restore and recover the Database from a recent Backup. 
于 2016-02-22T07:17:49.000 に答える
2

ORA-00600 メッセージは、Oracle カーネル コードで未処理の副作用、つまりバグをすべてキャッチします。これらは、Oracle データベースのバージョンに固有である傾向があり、多くの場合、OS とサーバーにも固有です。

このようなことに対する標準的なアプローチは、Oracle サポートにサービス リクエストを提出することです。これは、11gR2 のベース リリースの既知のバグのようです。(サポート ノート ID 1296264.1)

ただし、2015 年にまだパッチを適用していない 11.2.0.1 のインスタンスを実行している場合、サポート契約を結んでいる可能性は非常に低いと思います。その場合、あまりにも多くのオプションはありません。

このブログ記事では、試してみることができるいくつかのことを提案しています。(Web で読む内容についての通常の警告)。どちらも DBA や sysadmin の能力が必要です。

于 2015-03-29T07:23:36.680 に答える