History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: QA-41
Type: Oracle - Internals Oracle - Internals
Status: Closed Closed
Resolution: Answered
Priority: Major Major
Assignee: ubTools Support
Reporter: ubTools Support
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Questions & Answers

Startup database fails with ORA-600 [4000], ORA-600 [4137].

Created: 16/Jun/08 11:31 PM   Updated: 17/Jun/08 09:28 AM
Fix Version/s: None

Product Version: Oracle 8.1.7.3.0
Operating System: HP-UX


 Description  « Hide
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.



 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
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

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

ubTools Support - 17/Jun/08 12:21 AM - edited
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.


ubTools Support - 17/Jun/08 09:28 AM
The database was opened inconsistently. It'll be recreated with full export/import.