Thursday, June 3, 2010

Standby database: ORA-00600: internal error code, arguments: [3020]

Today I received error in Standby database after adding new datafile into UNDO tablespace at primary site.


This is Oracle SE 9.2.0.5 on Sun box which is used by Vendor Application:

Media Recovery Log /oracle/arch/dbint_0000002811.log.ora
Thu Jun  3 08:58:39 2010
Errors in file /oracle/home92/admin/dump/dbint_ora_27204.trc:
ORA-00600: internal error code, arguments: [3020], [20971527], [1], [2811], [1806397], [224], [], []
ORA-10567: Redo is inconsistent with data block (file# 5, block# 7)
ORA-10564: tablespace UNDOTBS2
ORA-01110: data file 5: '/oracle/data2/undotbs2_03.dbf'
ORA-10560: block type 'KTFB Bitmapped File Space Bitmap'
Errors with log .
Recovery interrupted.


It is the 2nd time I meet with ORA-00600 with argument of 3020 and I know that Oracle calls it STUCK RECOVERY and there are many bugs associated with it.

Solution:

1. Shutdown standby database
2. Rename standby control files to something different
3. Create NEW standby control file at primary and copy it to standby location
4. Switch problematic tablespace into backup mode, copy it (not whole tablespace, just problem datafile) to standby location and switch back to normal:
In our case:


SQL>ALTER TABLESPACE UNDOTBS begin backup;
.... copy ...
SQL>ALTER TABLESPACE UNDOTBS end backup;
5. Start recovery at standby and check alert log:

SQL> recover automatic standby database; 


Alert says:

Thu Jun  3 12:20:07 2010
Media Recovery Log /oracle/arch/dbint_0000002817.log.ora

Nice, it works :)

2 comments:

Anonymous said...

Can you please write the exact lines in sqlplus? It seems that you are the only one having a solution about this problem and I'm having it right now.
Thank You.

Teymur Hajiyev said...

Hi,

I have already wrote steps in sqlplus.

After switchin backup mode, datafiles from OS level using OS copy command.

Then end backup mode in sqlplus.

Good luck!