<< Back to previous view

[QA-41] Startup database fails with ORA-600 [4000], ORA-600 [4137]. Created: 16/Jun/08  Updated: 17/Jun/08

Status: Closed
Project: Questions & Answers
Fix Version/s: None

Type: Oracle - Internals Priority: Major
Reporter: ubTools Support Assignee: ubTools Support
Resolution: Answered Votes: 0

Product Version: Oracle 8.1.7.3.0
Operating System: HP-UX

 Description   
After an hardware problem, database crashed.

Since an ARCHIVELOG is missed, and restoring the previous backup is not acceptable, the customer wanted to open database in inconsistent state.



 Comments   
Comment by ubTools Support [ 16/Jun/08 11:38 PM ]
Steps to open the database:
  • setting _ALLOW_RESETLOGS_CORRUPTION=TRUE in init<SID>.ora.
  • startup mount;
  • recover database until cancel;
    <--cancel
  • alter database open resetlogs;

But, it failed with the following error:

ORA-00600: internal error code, arguments: [4000], [9], [], [], [], [], [], []

Oracle Note:47456.1:

DESCRIPTION:

  This has the potential to be a very serious error.

  It means that Oracle has tried to find an undo segment number in the 
  dictionary cache and failed.

ARGUMENTS:
  Arg [a] Undo segment number

FUNCTIONALITY:      
  KERNEL TRANSACTION UNDO

IMPACT:             
  INSTANCE FAILURE - Instance will not restart
  STATEMENT FAILURE
Comment by ubTools Support [ 17/Jun/08 12:13 AM ]
An exerpt from the trace file:
ORA-00600: internal error code, arguments: [4000], [9], [], [], [], [], [], []
Current SQL statement for this session:
select ctime, mtime, stime from obj$ where obj# = :1
...
Block header dump:  0x0080003e
 Object id on Block? Y
 seg/obj: 0x12  csc: 0x570.b8368d16  itc: 1  flg: -  typ: 1 - DATA
     fsl: 0  fnx: 0x0 ver: 0x01
...
 Itl           Xid                  Uba         Flag  Lck        Scn/Fsc
0x01   xid:  0x0009.019.000dc23f    uba: 0x58c13ddb.0523.46  --U-    1  fsc 0x0000.b8368d17

Looks like a problem regarding obj$ and its undo...If undo requirement is bypassed, there will be no requirement for undo. In order to do that, bumping SNC further needed.

csc shows the the SCN of last block cleanout. We guessed it may be used a target bumping SCN as below:

  • 0x570.b8368d16 => 0x570b8368d16 => Decimal: 5981685058838 => divide by 1024/1024/1024 = 5571

Bump SCN as below and restart:

  • Setting _MINIMUM_GIGA_SCN = 5571 in init<SID>.ora
  • startup mount;
  • recover database until cancel;
    <--cancel
  • alter database open resetlogs;

ORA-600 [4000] disappeared. But now, the following error appeared:

ORA-00600: internal error code, arguments: [4137], [], [], [], [], [], [], []

Oracle Note:47456.1:

DESCRIPTION:        

  While backing out an undo record (i.e. at the time of rollback) we found a
  transaction id mis-match indicating either a corruption in the rollback 
  segment or corruption in an object which the rollback segment is trying to
  apply undo records on.

  This would indicate a corrupted rollback segment. 

FUNCTIONALITY:      
 Kernel Transaction Undo Recovery
 
IMPACT:             
  POSSIBLE PHYSICAL CORRUPTION in Rollback segments
Comment by ubTools Support [ 17/Jun/08 12:21 AM ]
Restart the database:
  • Setting _CORRUPTED_ROLLBACK_SEGMENTS in init<SID>.ora
  • startup mount;
  • recover database until cancel;
    <--cancel
  • alter database open resetlogs;

The database is opened.

Since it's opened in inconsistent state, a full export and then import into a new database is required to get rid of the inconsistency in Oracle dictionary. But, the customer data will not be consistent after the import. It should be reviewed by the customer.

Comment by ubTools Support [ 17/Jun/08 09:28 AM ]
The database was opened inconsistently. It'll be recreated with full export/import.
Generated at Mon Sep 15 23:24:08 UTC 2025 using JIRA Standard Edition, Version: 3.12.3-#302.