Tuesday 2 December 2014

ORA-00600

ERROR METHOD:-1

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

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

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

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


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.
Oracle Note:47456.1


ERROR METHOD:-2


ORA-00600: internal error code, arguments: [keltnfy-ldmInit], [46], [1], [], [], [], [], []

After a long time I have an error of ora-00600.
One of my Database is Oracle 10.2.0.1.0
Cause:
In log we were receiving these errors.
Oracle Server was not resolving HOSTNAME.

Mon Jan 7 14:58:48 2008Errors in file /usr/lib/oracle/xe/app/oracle/admin/XE/udump/xe_ora_2462.trc:ORA-00600: internal error code, arguments: [keltnfy-ldmInit], [46], [1], [], [], [], [], []USER: terminating instance due to error 600

Solution:
added an entry for localhost in /etc/hosts.
open /etc/hosts file
vi /etc/hosts
:0:1 localhost.localdomain localhost
alter this to ....
127.0.0.1 localhost.localdomain localhost
or
ip_of_your_DBbox localhost.localdomain localhost


after that now check

-bash-3.1$ sqlplus
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jan 7 15:05:56 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Enter user-name: /as sysdba
Connected to:Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
SQL> select count(*) from tab;
COUNT(*)
---------- 
3535


No comments: