How to resolve ORA-00600 [13013], [5001] [ID 816784.1]

作者: Maclean Liu , post on September 6th, 2009 , English Version
【本站文章除注明转载外,均为本站原创编译】
转载请注明:文章转载自: Oracle Clinic – Maclean Liu的个人技术博客 [http://www.oracledatabase12g.com/]
本文标题: How to resolve ORA-00600 [13013], [5001] [ID 816784.1]
本文永久地址: http://www.oracledatabase12g.com/archives/how-to-resolve-ora-00600-13013-5001-id-816784-1.html

Applies to:

Oracle Server – Enterprise Edition – Version: 10.2.0.4

Information in this document applies to any platform.

Goal

The Goal of this article is to resolve Ora-00600[13013] and check if there are any known bugs associated with this error to prevent future occurence of this issue

Solution

Section 1> What information needs to be Collected

ORA-600 [13013] [a] [b] [c] [d] [e] [f]

This format relates to Oracle Server 8.0.3 to 10.1

Arg [a] Passcount

Arg [b] Data Object number

Arg [c] Tablespace Relative DBA of block containing the row to be updated

Arg [d] Row Slot number

Arg [e] Relative DBA of block being updated (should be same as [c])

Arg [f] Code

The Second argument would give the information about the data object id.

This would give information about the object involved.

SQL>Select object_name,object_type,owner from dba_objects where data_object_id=<value reported in argment b>

Once the Object is identified run the following :

The below command check if the table has corruption or not .

SQL> Analzye table <owner>.<table name> validate structure online ;

If this goes fine table doesnot have corruption. For next command.

If the above command fails with ORA-1498 go to Section 3

The below comman check if table/index has corruption or not

SQL>Analzye table <owner>.<table name> validate structure case online ;

If the above command errors out with ora-1499 it indicates a corruption in index.

Go to section 2 for resolution

Run dbverify on the datafile reported in the error

Arg [c] in the ora-0600[13011] would give the Relative DBA

For example

ORA-00600: internal error code, arguments: [13013], [5001], [57353], [155254965], [261],

[151062605], [17], []

Arg [c] –> rdba–>155254965

Use this value and find the file and block number for this dba

select dbms_utility.data_block_address_file(155254965) Rfile# ,dbms_utility.data_block_address_block(155254965) “Block#” from dual;

RFILE# Block#

———- ———-

37      65717

You an run dbveirfy on datafile with rfile#=37

SQL>Select name from v$datafile where rfile#=37

dbv file=<location of datafile> blocksize=<db_block_size>

Section 2 >How to resolve if a Index is corrupted

You would need to drop and recreate the index

Ensure before dropping the Index

SQL>Spool /tmp/createindex.sql

SQL>Set long 100000000

SQL>Select dbms_metadata.get_ddl(‘INDEX’,'<Index name>’,<’user name>’) from dual

SQL>Spool off

Refer the Following note to Identify the index

Note 563070.1

Title: ORA-1499. Table/Index row count mismatch

Please note if there is just one index in the table then you can use dbms_metadata.get_ddl to get the script of the index and drop and recreate it.

Section 3> How to resolve if table is corrupted

Option a>  Backup is available

Ora-1498 would be reported on the table.

The trace file from Ora-1498 would contain following information

Example

Block Checking: DBA = 1066265208, Block Type = KTB-managed data block —>

file 254,block 911992

data header at 0xc00000010118e07c

kdbchk: avsp(816) > tosp(812)

Block header dump: 0x3f8dea78

Object id on Block? Y

seg/obj: 0x155b452 csc: 0×05.7b2b4ee6 itc: 3 flg: E typ: 1 – DATA

brn: 0 bdba: 0x3f8dde0c ver: 0×01

inc: 0 exflg: 0

Note the DBA value reported in the trace file  DBA = 1066265208

Convert this to find the file number and block number having issue

Sql>Select dbms_utility.data_block_address_file(’1066265208′) from dual ;

DBMS_UTILITY.DATA_BLOCK_ADDRESS_FILE(’1066265208′)

————————————————–

254

Sql>Select dbms_utility.data_block_address_block(’1066265208′) from dual ;

DBMS_UTILITY.DATA_BLOCK_ADDRESS_BLOCK(’1066265208′)

—————————————————

911992

Run dbverify on the datafile containing the table

dbv file=<location of datafile> blocksize=<db_block_size>

Corruption would be reported on the block.

If you have an Rman backup do a Rman block recovery (Take the file number and block number affected from the trace file)

Rman> Blockrecover datafile <no> block <block number>

Or

If you have a user managed backup you can do an restore and recovery from good copy of the problematic datafile

Option b> Backup is not available

If no backups are available then use event 10231 at session level to create a salvage table

SQL>alter session set events ’10231 trace name context forever, level 10′

SQL> Create table <owner>.salvage_table as select * from <Corrupted table> ;

Rename the Original table to old.

Rename salvage table to Original table name

or

You can use dbms_repair script to mark the block soft corrupt.

Note 556733.1

DBMS_REPAIR SCRIPT

How to resolve when Smon terminates the instance due to Ora-00600[13013]

If Smon is terminating the instance then.

Set event 10513 and startup the database

event=”10513 trace name context forever, level 2″

SQL>Startup mount ;

SQL>Show parameter event

SQL>Alter datatabase open ;

Identify the object involved using information from Section 1.

How to resolve the issue if the object involved belongs to system tablespace

System objects are very important.

Please open a Service request with Oracle support if system tables are involved.

Are there any known bugs

There is a  internal bug number 5085288

fixed in 11.1

Details

ORA-600 [13013] [5001] error can occur on a MERGE command if the DELETE pass encounters a consistent read (CR) error due to the update pass having updated the same

row and column previously.

Check for availability of one off patch using patch 5085288

Bug 4549673

Abstract: ORA-30926 / OERI:13030 during update

Fixed-Releases: 9208 A204 B106

Details:

ORA-30926 (in Oracle 9i) or ORA-600 [13030] (in Oracle10g) can occur

during an update DML. This can occur if an internal ORA-1551 error

occurs and is trapped (1551 errors are not visible to client

code and are trapped and handled internally)

Fixed In Ver: 11.0

Check for availability of one off patch using patch 5085288

© 2009, www.oracledatabase12g.com. 版权所有.文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.

相关文章 | Related posts:

  1. Oracle内部错误:ORA-00600[25012]一例
  2. Summary of Bugs Containing ORA – 00600 [KCBNEW_3]
  3. How to trigger ORA-00600,ORA-7445 by manual
  4. ORA-00600 [kddummy_blkchk]错误一例
  5. ORA-00600 [kcblasm_1] May Occur After Applying The Patch 7523755
  6. ORA-00600 [3756]内部错误一例
  7. ORA-600 [6006] ORA-600 [6856] During Startup Instance, Followed by Termination by SMON
  8. Possible Cause of ORA-00354 and ORA-00353 -OR- ARC0: Error 19510 closing archivelog file
  9. How to Format Corrupted Block Not Part of Any Segment
  10. Troubleshooting Streams Apply Error ORA-1403, ORA-26787 or ORA-26786

Leave a Reply

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>