ORA-600[13011] 錯誤解決一例

來源:互聯網
上載者:User

ORA-600[13011] 錯誤解決一例

SunOS 5.10
Oracle 10.2.0.2.0
開發環境某一資料庫出現ORA-600報錯。

alert.log中的報錯資訊:
Thu Nov 13 15:11:43 2014
Errors in file /oracle/admin/sun/bdump/sun_j000_29589.trc:
ORA-00600: internal error code, arguments: [13011], [298314], [4277430], [0], [4277430], [17], [], []
Thu Nov 13 15:11:45 2014
Errors in file /oracle/admin/sun/bdump/sun_j000_29589.trc:
ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], []
ORA-06512: at "REPADMIN.CEF_PUSH_PURGE", line 145
ORA-06512: at line 1


在 /oracle/admin/sun/bdump/sun_j000_29589.trc trace檔案中看到當前SQL是刪除system.def$_aqcall的一條記錄:
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [13011], [298314], [4277430], [0], [4277430], [17], [], []
Current SQL statement for this session:
delete from system.def$_aqcall    where (enq_tid = :1)
根據MOS ORA-600 [13011] "Problem occurred when trying to delete a row" (文檔 ID 28184.1)各參數對比;

SQL> select object_type,object_name,owner from dba_objects where data_object_id='298314';

OBJECT_TYPE        OBJECT_NAME                              OWNER
------------------- ---------------------------------------- ------------------------------
TABLE              DEF$_AQCALL                              SYSTEM


關於DEF$_AQCALL表,該表是進階複製的預設隊列表,從ORA-06512: at "REPADMIN.CEF_PUSH_PURGE", line 145這邊也可以看出確實是進階複製出現了問題,複製及時完成後,該表會被清空。
出現該ora-600報錯是因為在更新語句中使用索引找到一條記錄,然後到表中去查詢時該記錄不存在,出現此報錯,一般解決方案是重建索引。

首先對錶做分析:
SQL> analyze table system.DEF$_AQCALL validate structure cascade;
analyze table system.DEF$_AQCALL validate structure cascade
*
ERROR at line 1:
ORA-01499: table/index cross reference failure - see trace file

 


SQL> select index_name,owner,status from dba_indexes where table_name='DEF$_AQCALL';


INDEX_NAME                    OWNER                          STATUS
------------------------------ ------------------------------ --------
SYS_IL0000004874C00025$$      SYSTEM                        VALID
SYS_C001407                    SYSTEM                        VALID
DEF$_TRANORDER                SYSTEM                        VALID


SQL> select index_name,column_name,column_position from dba_ind_columns where table_name='DEF$_AQCALL';


INDEX_NAME                    COLUMN_NAME                    COLUMN_POSITION
------------------------------ ------------------------------ ---------------
SYS_C001407                    ENQ_TID                                      1
SYS_C001407                    STEP_NO                                      2
DEF$_TRANORDER                CSCN                                        1
DEF$_TRANORDER                ENQ_TID                                      2


比對資料:全表掃描和走索引時資料對比:
SQL> select /*+ index(t DEF$_TRANORDER) */ CSCN,ENQ_TID from system.DEF$_AQCALL where CSCN is not null or ENQ_TID is not null
  2  minus
  3  select /*+ FULL(t1) */ CSCN,ENQ_TID from system.DEF$_AQCALL
  4  /


      CSCN ENQ_TID
---------- ------------------------------
4755684454 8.37.2233719
4755684456 3.14.2235620
4755684458 8.2.2233699
4755684460 10.30.2223096
果然索引上的記錄比表上的資料多了四條。


線上重建索引:
SQL>alter index system.DEF$_TRANORDER rebuild onlie;


Index altered.


再次對比索引上和表上的資料:
SQL> select /*+ index(t DEF$_TRANORDER) */ CSCN,ENQ_TID from system.DEF$_AQCALL where CSCN is not null or ENQ_TID is not null
  2  minus
  3  select /*+ FULL(t1) */ CSCN,ENQ_TID from system.DEF$_AQCALL
  4  /

no rows selected

沒有多餘資料,通過對alert.log的監控,後續未發現ora-600[13011]的報錯。

Oracle 單一實例 從32位 遷移到 64位 方法 

在CentOS 6.4下安裝Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虛擬機器中安裝步驟

Debian 下 安裝 Oracle 11g XE R2

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.