ORA-00600 [13013] [5001] [474] [4198011] [102]-Oracle 問題處理過程

rongshiyuan發表於2012-12-27
ORA-00600 [13013] [5001] [474] [4198011] [102] [4198011] [17]-記錄一次Oracle ORA-00600 [13013]處理過程
redhat linux 4.7 平臺下 32bit Oracle 10.1.0.3 升級至10.2.0.5版本,並安裝了14275629 patchset,升級完後發現Oracle中一些元件狀態為invalid,升級後要到一些Oracle ORA問題,記錄下處理過程
1. ORA-00322、ORA-00312問題
兩臺機器做HA,由於HA管理軟體問題,致使兩臺機器的Oracle啟動,資料庫alert日誌報錯ORA-00322、ORA-00312問題,最先報出問題的機器上的Oracle alert日誌如下:
......
Tue Dec 25 20:32:23 CST 2012
ALTER DATABASE OPEN
Tue Dec 25 20:32:25 CST 2012
Errors in file /bases/oracle/admin/ctwapgw/bdump/ctwapgw_lgwr_20423.trc:
ORA-00322: Message 322 not found; No message file for product=RDBMS, facility=ORA; arguments: [5] [1]
ORA-00312: Message 312 not found; No message file for product=RDBMS, facility=ORA; arguments: [5] [1] [/bases/oracle/oradata/ctwapgw/redo05.log]

Tue Dec 25 20:32:25 CST 2012
Errors in file /bases/oracle/admin/ctwapgw/bdump/ctwapgw_lgwr_20423.trc:
ORA-00322: Message 322 not found; No message file for product=RDBMS, facility=ORA; arguments: [5] [1]
ORA-00312: Message 312 not found; No message file for product=RDBMS, facility=ORA; arguments: [5] [1] [/bases/oracle/oradata/ctwapgw/redo05.log]
ORA-322 signalled during: ALTER DATABASE OPEN...
Tue Dec 25 20:38:05 CST 2012
alter database open
Tue Dec 25 20:38:06 CST 2012
Errors in file /bases/oracle/admin/ctwapgw/bdump/ctwapgw_lgwr_20423.trc:
ORA-00322: Message 322 not found; No message file for product=RDBMS, facility=ORA; arguments: [5] [1]
ORA-00312: Message 312 not found; No message file for product=RDBMS, facility=ORA; arguments: [5] [1] [/bases/oracle/oradata/ctwapgw/redo05.log]
Tue Dec 25 20:38:06 CST 2012
Errors in file /bases/oracle/admin/ctwapgw/bdump/ctwapgw_lgwr_20423.trc:
ORA-00322: Message 322 not found; No message file for product=RDBMS, facility=ORA; arguments: [5] [1]
ORA-00312: Message 312 not found; No message file for product=RDBMS, facility=ORA; arguments: [5] [1] [/bases/oracle/oradata/ctwapgw/redo05.log]
Tue Dec 25 20:38:06 CST 2012
ORA-322 signalled during: alter database open..
......
另外一臺機器的oracle alert日誌也報ORA-00322、ORA-00312問題
查詢oracle error code:
$ oerr ora 00312
00312, 00000, "online log %s thread %s: '%s'"
// *Cause: This message reports the filename for details of another message.
// *Action: Other messages will accompany this message. See the
// associated messages for the appropriate action to take.
$ oerr ora 00322
00322, 00000, "log %s of thread %s is not current copy"
// *Cause: Check of log file header at database open found that an online
// log appears to be an incorrectly restored backup.
// *Action: Restore correct file or reset logs.
清除報錯日誌/bases/oracle/oradata/ctwapgw/redo05.log的內容
SQL> ALTER DATABASE CLEAR LOGFILE '/bases/oracle/oradata/ctwapgw/redo05.log';
alert log檔案中部分日誌如下:
......
Tue Dec 25 22:45:50 CST 2012
alter database clear logfile '/bases/oracle/oradata/ctwapgw/redo05.log'
Tue Dec 25 22:45:50 CST 2012
Clearing online log 5 of thread 1 sequence number 27475
Completed: alter database clear logfile '/bases/oracle/oradata/ctwapgw/redo05.log'
Tue Dec 25 22:46:37 CST 2012
alter database open
Tue Dec 25 22:46:39 CST 2012
Thread 1 advanced to log sequence 27477 (thread open)
Thread 1 opened at log sequence 27477
Current log# 5 seq# 27477 mem# 0: /bases/oracle/oradata/ctwapgw/redo05.log
Successful open of redo thread 1
......
開啟資料庫,執行alter database open:
SQL> alter database open;
開啟資料庫後,alert 日誌出現下面異常資訊:
......
Tue Dec 25 22:46:48 CST 2012
Errors in file /bases/oracle/admin/ctwapgw/bdump/ctwapgw_mmon_19553.trc:
ORA-00600: Message 600 not found; No message file for product=RDBMS, facility=ORA; arguments: [4194] [32] [28]
Flush retried for xcb 0x80b9e630, pmd 0x80eeedfc
Doing block recovery for file 17 block 807331
No block recovery was needed
Tue Dec 25 22:47:34 CST 2012
Thread 1 cannot allocate new log, sequence 27478
Private strand flush not complete
Current log# 5 seq# 27477 mem# 0: /bases/oracle/oradata/ctwapgw/redo05.log
......
處理ORA-00600[4194]問題:
SQL> Create pfile='/tmp/corrupt.ora' from spfile ;

SQL> Shutdown immediate;
修改corrupt.ora,設定引數 Undo_managment=Manual

SQL> Startup mount pfile='/tmp/corrupt.ora';
SQL> Show parameter undo
NAME TYPE VALUE
------------------------------------ -------------------------------- ------------------------------
undo_management string MANUAL
undo_retention integer 900
undo_tablespace string UNDOTBS2

SQL> Alter database open;
SQL> Create rollback segment r01;
SQL> Create undo tablespace undotbs1 datafile '/bases/oracle/oradata/ctwapgw/undotbs1.dbf' size 10g;
引用metalink文章ID 281429.1
Please note :- You can delay the drop of the Old undo tablespace this is just to allow the block cleanout to happen for dead transaction.
So the below step can be issued after database has been up and running with new undo tablespace for couple of hours.
Also note if your database has been forced open(datafiles are not in sync and archivelogs missing ) using any unsupported method then please donot drop the Old undo.

此處刪除原來的undo表空間undotbs2

SQL> drop tablespace undotbs2 including contents and datafiles;

SQL> Shutdown immediate;

SQL> Startup nomount ; ---&gt Using spfile

SQL> Alter system set undo_tablespace=undotbs1 scope=spfile;

SQL> Shutdown immediate;

SQL> Startup;

檢查alert log 日誌檔案是否還存在ORA-600 [4194]的錯誤

期間,資料庫中job執行,報如下錯誤:

......

Errors in file /bases/oracle/admin/ctwapgw/bdump/ctwapgw_j000_16904.trc:
ORA-12012: error on auto execute of job 7
ORA-01552: cannot use system rollback segment for non-system tablespace 'WAP_USER_DATA_TABLESPACE'
ORA-06512: at "WAP_USER.PROC_LOG", line 23
ORA-06512: at "WAP_USER.WAPGW_IF1_02_RES", line 44
ORA-00942: table or view does not exist
ORA-06512: at line 1

......

後面alert log報如下錯誤:
......
Wed Dec 26 02:07:14 CST 2012
Errors in file /bases/oracle/admin/ctwapgw/bdump/ctwapgw_smon_22065.trc:
ORA-00600: Message 600 not found; No message file for product=RDBMS, facility=ORA; arguments: [13013] [5001] [474] [4198011] [108] [4198011] [17]
Wed Dec 26 02:07:14 CST 2012
Non-fatal internal error happenned while SMON was doing flushing of monitored table stats.
SMON encountered 1 out of maximum 100 non-fatal internal errors.
Wed Dec 26 02:07:15 CST 2012
Errors in file /bases/oracle/admin/ctwapgw/bdump/ctwapgw_smon_22065.trc:
ORA-00600: Message 600 not found; No message file for product=RDBMS, facility=ORA; arguments: [13013] [5001] [474] [4198011] [108] [4198011] [17]
Non-fatal internal error happenned while SMON was doing flushing of monitored table stats.
SMON encountered 2 out of maximum 100 non-fatal internal errors.
Wed Dec 26 02:07:17 CST 2012
Errors in file /bases/oracle/admin/ctwapgw/bdump/ctwapgw_smon_22065.trc:
ORA-00600: Message 600 not found; No message file for product=RDBMS, facility=ORA; arguments: [13013] [5001] [474] [4198011] [108] [4198011] [17]
Non-fatal internal error happenned while SMON was doing flushing of monitored table stats.
SMON encountered 3 out of maximum 100 non-fatal internal errors.
Wed Dec 26 02:07:18 CST 2012
Errors in file /bases/oracle/admin/ctwapgw/bdump/ctwapgw_smon_22065.trc:
ORA-00600: Message 600 not found; No message file for product=RDBMS, facility=ORA; arguments: [13013] [5001] [474] [4198011] [108] [4198011] [17]
Non-fatal internal error happenned while SMON was doing flushing of monitored table stats.
SMON encountered 4 out of maximum 100 non-fatal internal errors.
Wed Dec 26 02:07:20 CST 2012
Errors in file /bases/oracle/admin/ctwapgw/bdump/ctwapgw_smon_22065.trc:
ORA-00600: Message 600 not found; No message file for product=RDBMS, facility=ORA; arguments: [13013] [5001] [474] [4198011] [108] [4198011] [17]
Non-fatal internal error happenned while SMON was doing flushing of monitored table stats.
SMON encountered 5 out of maximum 100 non-fatal internal errors.
Wed Dec 26 02:07:30 CST 2012
Errors in file /bases/oracle/admin/ctwapgw/bdump/ctwapgw_smon_22065.trc:
ORA-00600: Message 600 not found; No message file for product=RDBMS, facility=ORA; arguments: [13013] [5001] [474] [4198011] [108] [4198011] [17]
Wed Dec 26 02:07:31 CST 2012
Non-fatal internal error happenned while SMON was doing flushing of monitored table stats.
SMON encountered 6 out of maximum 100 non-fatal internal errors.
Wed Dec 26 02:07:41 CST 2012
Errors in file /bases/oracle/admin/ctwapgw/bdump/ctwapgw_smon_22065.trc:
ORA-00600: Message 600 not found; No message file for product=RDBMS, facility=ORA; arguments: [13013] [5001] [474] [4198011] [108] [4198011] [17]
Wed Dec 26 02:07:41 CST 2012
Non-fatal internal error happenned while SMON was doing flushing of monitored table stats.
SMON encountered 7 out of maximum 100 non-fatal internal errors.
Wed Dec 26 02:07:51 CST 2012
Errors in file /bases/oracle/admin/ctwapgw/bdump/ctwapgw_smon_22065.trc:
ORA-00600: Message 600 not found; No message file for product=RDBMS, facility=ORA; arguments: [13013] [5001] [474] [4198011] [108] [4198011] [17]
Wed Dec 26 02:07:52 CST 2012
Non-fatal internal error happenned while SMON was doing flushing of monitored table stats.
SMON encountered 8 out of maximum 100 non-fatal internal errors.
Wed Dec 26 02:08:02 CST 2012
Errors in file /bases/oracle/admin/ctwapgw/bdump/ctwapgw_smon_22065.trc:
ORA-00600: Message 600 not found; No message file for product=RDBMS, facility=ORA; arguments: [13013] [5001] [474] [4198011] [108] [4198011] [17]
Wed Dec 26 02:08:02 CST 2012
Errors in file /bases/oracle/admin/ctwapgw/bdump/ctwapgw_pmon_22053.trc:
ORA-00474: Message 474 not found; No message file for product=RDBMS, facility=ORA
Wed Dec 26 02:08:02 CST 2012
PMON: terminating instance due to error 474
Instance terminated by PMON, pid = 22053
......
資料庫報ORA-600 [13013] [5001]問題,資料庫因為ORA-00474錯誤,PMON程式終止了Oracle例項
分析ORA-600 [13013] [5001][474] [4198011] [108] [4198011] [17]:
參考metalink文章ID 816784.1
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=

Once the Object is identified run the following :

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

SQL> Analyze table . 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 command check if table/index has corruption or not

SQL>Analyze table .
validate structure cascade 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[13013] would give the Relative DBA

For example

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


Arg [c] --&gt rdba--&gt155254965

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= blocksize=
根據ORA-600 [13013] [5001] [474] [4198011] [102]中引數,獲得:
獲取物件為sys使用者下表MON_MODS$
SQL> Select object_name,object_type,owner from dba_objects where data_object_id=474;
通過$ORACLE_HOME/rdbms/admin/sql.bsq 瞭解下該底層表mon_mods$
--add mon_mods$ for auto_gather_stats
Oracle的自動統計資料收集功能會據此判斷哪些表的資料發生了變化,需要進行新的資訊收集
分析該表MON_MODS$結構資訊
SQL> Analyze table sys.MON_MODS$ validate structure online;
Table analyzed.
SQL> Analyze table sys.MON_MODS$ validate structure cascade online;
Table analyzed.
分析正常,沒有報錯
也分析了該表下的索引I_MON_MODS$_OBJ:
SQL> Analyze table sys.I_MON_MODS$_OBJ validate structure online;
Index analyzed.
分析正常,沒有報錯
獲取該表所在的檔案號、塊號:
SQL> select dbms_utility.data_block_address_file(4198011)Rfile# ,dbms_utility.data_block_address_block(4198011) "Block#" from dual;
RFILE# Block#
---------- ----------
1 3707
資料檔案為1、對應的塊為3707
獲取對應的檔名稱
SQL> Select name from v$datafile where rfile#=1;
NAME
--------------------------------------------
/bases/oracle/oradata/ctwapgw/system01.dbf
通過dbv工具檢查資料檔案是否有損壞:
$ dbv file=system01.dbf blocksize=8192
DBV-00600: Fatal Error – [21] [2] [0] [0]
......
dbv需使用檔案的絕對路徑:
$ dbv file=/StatOracle/ctwapgw/system01.dbf blocksize=8192
DBVERIFY: Release 10.2.0.5.0 - Production on Wed Dec 26 13:51:07 2012
Copyright (c) 1982, 2007, Oracle. All rights reserved.
DBVERIFY - Verification starting : FILE = /StatOracle/ctwapgw/system01.dbf
DBVERIFY - Verification complete
Total Pages Examined : 72960
Total Pages Processed (Data) : 45055
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 9629
Total Pages Failing (Index): 0
Total Pages Processed (Other): 2010
Total Pages Processed (Seg) : 4
Total Pages Failing (Seg) : 0
Total Pages Empty : 16266
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Highest block SCN : 1242610158 (99.1242610158)
資料檔案沒有出現損壞
在執行收集資料字典資訊時,觸發了上述ORA-00600[13013]問題
開啟10046事件跟蹤SQL
SQL> alter session set events '10046 trace name context forever,level 12';
Session altered.
SQL> EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;
......
alert log 日誌報ORA-00600[13013]問題
......
SQL> alter session set events '10046 trace name context off';
關閉10046事件跟蹤
查下10046跟蹤產生的trace檔案,位於$ORACLE_BASE/admin/$ORACLE_SID/udump
發現trace檔案ORA-600 [13013][5001]中內容如下:
......
*** 2012-12-26 16:06:34.418
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [13013], [5001], [474], [4198011], [102], [4198011], [17], []
Current SQL statement for this session:
update sys.mon_mods$ set inserts = inserts + :ins, updates = updates + :upd, deletes = deletes + :del, flags = (decode(bitand(flags, :flag), :flag, flags, flags + :flag)), drop_segments = drop_segments + :dropseg, timestamp = :time where obj# = :objn

----- PL/SQL Call Stack -----
object line object
handle number name
0x82679d04 1135 package body SYS.DBMS_STATS
0x82679d04 15458 package body SYS.DBMS_STATS
0x82679d04 17871 package body SYS.DBMS_STATS
0x82679d04 17913 package body SYS.DBMS_STATS
0x8282e814 1 anonymous block
----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)
-------------------- -------- -------------------- ----------------------------
ksedst()+27 call ksedst1() 0 ? 1 ?
ksedmp()+557 call ksedst() 0 ? 73514014 ? 1 ? 0 ? 1FE8 ?
37433020 ?
ksfdmp()+41 call ksedmp() 3 ? 73514014 ? 3731 ? 0 ? 0 ?
0 ?
kgeriv()+188 call 00000000 D095DE0 ? 3 ?
kgesiv()+118 call kgeriv() D095DE0 ? B7311090 ? 32D5 ?
6 ? BFFF7E54 ?
ksesic6()+44 call kgesiv() D095DE0 ? B7311090 ? 32D5 ?
6 ? BFFF7E54 ? 32D5 ? 6 ?
BFFF7E54 ?
......
嘗試重建了表MON_MODS$的索引I_MON_MODS$_OBJ,獲取建立索引的指令碼:
SQL> Spool /tmp/createindex.sql
SQL> set long 100000000
SQL> Select dbms_metadata.get_ddl('INDEX','I_MON_MODS$_OBJ','SYS') from dual;
DBMS_METADATA.GET_DDL('INDEX','I_MON_MODS$_OBJ','SYS')
--------------------------------------------------------------------------------
CREATE UNIQUE INDEX "SYS"."I_MON_MODS$_OBJ" ON "SYS"."MON_MODS$" ("OBJ#")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "SYSTEM"

SQL>Spool off
索引上述索引並重建,觀察alert日誌,ORA-00600: internal error code, arguments: [13013], [5001]問題沒有再發生
由於資料庫從10.2.0.4版本升級至10.2.0.5後,發現資料庫一些元件是非法的
於是,執行了$ORACLE_HOME/rdbms/admin/catupgrd.sql、執行了$ORACLE_HOME/rdbms/admin/utlrp.sql編譯了無效物件
查詢資料庫元件:
SQL> col comp_name for a30
SQL> select comp_name, status, version from dba_registry;
COMP_NAME STATUS VERSION
------------------------------ ---------------------- ------------------------------
Oracle Ultra Search NO SCRIPT. 10.1.0.3.0
Oracle Enterprise Manager VALID 10.2.0.5.0
Oracle XML Database VALID 10.2.0.5.0
OLAP Catalog VALID 10.2.0.5.0
Oracle Text VALID 10.2.0.5.0
Spatial VALID 10.2.0.5.0
Oracle interMedia VALID 10.2.0.5.0
Oracle Expression Filter VALID 10.2.0.5.0
Oracle Workspace Manager VALID 10.2.0.5.0
Oracle Data Mining VALID 10.2.0.5.0
Oracle Database Catalog Views VALID 10.2.0.5.0
COMP_NAME STATUS VERSION
------------------------------ ---------------------- ------------------------------
Oracle Database Packages and T VALID 10.2.0.5.0
ypes
JServer JAVA Virtual Machine VALID 10.2.0.5.0
Oracle XDK VALID 10.2.0.5.0
Oracle Database Java Packages VALID 10.2.0.5.0
OLAP Analytic Workspace VALID 10.2.0.5.0
Oracle OLAP API VALID 10.2.0.5.0
17 rows selected.
附metalink

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=

Once the Object is identified run the following :

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

SQL> Analyze table .
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 command check if table/index has corruption or not

SQL>Analyze table .
validate structure cascade 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[13013] would give the Relative DBA

For example

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



Arg [c] --&gt rdba--&gt155254965

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= blocksize=








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','',') 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 ---&gt
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: 0x05.7b2b4ee6 itc: 3 flg: E typ: 1 - DATA
brn: 0 bdba: 0x3f8dde0c ver: 0x01
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= blocksize=

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 block

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 .salvage_table as select * from ;

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.






Identifying the row having issue when the table is having corruption.


1>Once the error occurs, using the ORA-600 arguments, gather the following information :

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


arg b : [57353] - it is the OBJECT_ID
arg c : [155254965] - it is the block address in Decimal
arg d : [261] - is it the slot number

2. Translate the the block address in Decimal to a file# and block #

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

RFILE# Block#
---------- ----------
37 65717

The Relative file is 37
The block number is 65717

Find the data_object_id for this object

Argument b is Object_id--&gt 57353

SQL>Select data_object_id ,object_name,owner from dba_objects where object_id=57353 ;

3. Create the rowid using dbms_rowid.rowid_create(1,DATA_OBJECT_ID,FILE#,BLOCK#,SLOT#)

In this case :

select dbms_rowid.rowid_create(1,57353,37,65717,261) from dual;
DBMS_ROWID.ROWID_C
------------------
AAAOAJAAlAAAQC1AEF

4. You can select from table and identify the record causing the issue

SQL> Select * from .
where rowid='AAAOAJAAlAAAQC1AEF';



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17252115/viewspace-751745/,如需轉載,請註明出處,否則將追究法律責任。

ORA-00600 [13013] [5001] [474] [4198011] [102]-Oracle 問題處理過程
請登入後發表評論 登入
全部評論

相關文章