ORA-600[kqlnrc_1]錯誤分析及處理

Jet_Zhang發表於2015-06-10
通常來說ORA-600的錯誤為bug的可能性很大,但是並不是說碰到ORA-600的錯誤就一定是bug引起的。比如說這次分析的ORA-600錯誤,就不能歸結於bug。不過碰到ORA-600的錯誤總是會讓人心緊一下的~o~

具體錯誤是這樣的,在alert log裡記錄了一個ORA-600 [kqlnrc_1]的錯誤:
  1. ORA-00600: 內部錯誤程式碼, 引數: [kqlnrc_1], [0x70000082DDC1770], [], [], [], [], [], [], [], [], [], []
  2. Incident details in: /u01/oracle/base/oracle/diag/rdbms/lisdbp/lisdbp1/incident/incdir_132441/lisdbp1_ora_31719550_i132441.trc
通常發生ORA-600錯誤都會有一個相應的trace跟蹤檔案,所以發現ORA-600的錯誤後,也不用緊張,而是要先仔細分析下這個trace檔案。在這個案例中,我們發現除了[kkqlnrc_1]這個錯誤引數後面,還有第二個錯誤引數[0x70000082DDC1770],猜測可能是記憶體地址之類的值,開啟trace檔案,用這個引數值搜尋:
  1. LibraryObjectPin: Address=7000003afc63608 Handle=70000082ddc1770 Mode=S Lock=7000003ae512a00 ClusterLock=7000008115f01c8 User=70000080cb228e8 Session=70000080cb228e8 Count=1 Mask=0001 Flags=[00] SavepointNum=0x743a
  2. LibraryHandle: Address=70000082ddc1770 Hash=ce75949c LockMode=S PinMode=S LoadLockMode=0 Status=INVL
  3. ObjectName: Name=TMSLINKER.GR_P_POLICY@TMSXT
  4. FullHashValue=afc1af8752f8d344436836b6ce75949c Namespace=TABLE/PROCEDURE(01) Type=SYNONYM(05) Identifier=0 OwnerIdn=2147483644
  5. Statistics: InvalidationCount=2 ExecutionCount=0 LoadCount=1 ActiveLocks=1 TotalLockCount=1 TotalPinCount=1
  6. Counters: BrokenCount=1 RevocablePointer=1 KeepDependency=0 BucketInUse=1 HandleInUse=1 HandleReferenceCount=0
  7. Concurrency: DependencyMutex=70000082ddc1820(0, 4, 0, 0) Mutex=70000082ddc18a0(0, 21, 0, 0)
從搜尋到的資訊來看,應該是library cache中的一塊區域,而原因也比較明顯了,是因為SYNONYM為INVALID引起的,透過檢視這個SYNONYM的資訊,確實是這樣:
  1. > select * from dba_synonyms where synonym_name='GR_P_POLICY';

  2. OWNER SYNONYM_NAME TABLE_OWNER TABLE_NAME DB_LINK
  3. ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------
  4. PUBLIC GR_P_POLICY TMSLINKER GR_P_POLICY TMSXT

  5. > select owner,object_name,status from dba_objects where object_name='GR_P_POLICY';

  6. OWNER OBJECT_NAME STATUS
  7. ------------------------------ ------------------------------ -------
  8. PUBLIC GR_P_POLICY INVALID
這個SYNONYM是指向遠端的一個物件的,測試了下使用的DBLINK,DBLINK不通,詢問網路組得知網路有故障,正在修復。等到網路故障解決後,該ORA-600錯誤自然就解決了。




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

相關文章