How To Find The Object That Causing ORA-600 [kqlnrc_1] (文档 ID 1190673.1)
原因:RENAME同义词造成内部数据字典不一致
解决步聚:
Do following steps:
1. In trace file:
/oraclelog/tjbill/udump/tjbill_ora_20220.trc
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /oracle/app/oracle/product/10.2
System name: HP-UX
Node name: billdb
Release: B.11.23
Version: U
Machine: ia64
Instance name: tjbill
Redo thread mounted by this instance: 1
Oracle process number: 639
Unix process pid: 20220, image: oracle@billdb
*** ACTION NAME:(Main session) 2013-11-13 14:01:30.761
*** MODULE NAME:(PL/SQL Developer) 2013-11-13 14:01:30.761
*** SERVICE NAME:(tjbill) 2013-11-13 14:01:30.761
*** SESSION ID:(2692.32417) 2013-11-13 14:01:30.761
*** 2013-11-13 14:01:30.761
ksedmp: internal or fatal error
ORA-00600: 内部错误代码, 参数: [kqlnrc_1], [0xC000000C0E75BA98], [], [], [], [], [], [] ==========》第二个参数C000000C0E75BA98去SO对象里找到hand 对应的对象。
Current SQL statement for this session:
2.Search for the second ORA-600 argument in the trace, in this case is it C000000C0E75BA98:
注:搜索时一定要转换成小写的c000000c0e75ba98,否者搜索不到。
SO: c000000a4f2e3e90, type: 3, owner: c000000c3b6bb4d8, flag: INIT/-/-/0x00
(call) sess: cur c000000c3a9ddc68, rec c000000c3f9b9918, usr c000000c3a9ddc68; depth: 0
----------------------------------------
SO: c000000ba41720b0, type: 54, owner: c000000a4f2e3e90, flag: INIT/-/-/0x00
LIBRARY OBJECT PIN: pin=c000000ba41720b0 handle=c000000c0e75ba98 mode=S lock=c0000009949edcc0
user=c000000c3a9ddc68 session=c000000c3a9ddc68 count=1 mask=0001 savepoint=0x4b6 flags=[00]
LIBRARY OBJECT HANDLE: handle=c000000c0e75ba98 mtx=c000000c0e75bbc8(0) lct=2 pct=2 cdp=0 ============èhandle= c000000c0e75ba98
name=COMM.ACCT_ITEM_OWE@DBLINK_ACCT_COMM============================》name= COMM.ACCT_ITEM_OWE@DBLINK_ACCT_COMM 这是一个同义词,需要重新编译同议词
hash=88678f66cc515de513f0b253788cd2c8 timestamp=02-08-2012 10:35:15
namespace=TABL flags=REM/KGHP/TIM/SML/[02020000]
kkkk-dddd-llll=0000-0001-0001 lock=S pin=S latch#=9 hpc=0002 hlc=0002
lwt=c000000c0e75bb40[c000000c0e75bb40,c000000c0e75bb40] ltm=c000000c0e75bb50[c000000c0e75bb50,c000000c0e75bb50]
pwt=c000000c0e75bb08[c000000c0e75bb08,c000000c0e75bb08] ptm=c000000c0e75bb18[c000000c0e75bb18,c000000c0e75bb18]
ref=c000000c0e75bb70[c000000c0e75bb70,c000000c0e75bb70] lnd=c000000c0e75bb88[c000000c0e75bb88,c000000c0e75bb88]
LIBRARY OBJECT: object=c000000b161dcf80
type=SYNM flags=EXS/LOC[0005] pflags=[0000] status=INVL load=0 =====》status=INVL这里显示COMM.ACCT_ITEM_OWE@DBLINK_ACCT_COMM在library cache 是无效的。
DATA BLOCKS:
data# heap pointer status pins change whr alloc(K) size(K)
----- -------- -------- --------- ---- ------ --- -------- --------
0 c000000a2a97e848 c000000b161dd098 I/P/A/-/- 0 NONE 00 0.37 1.09
3. Query all objects with name TEST:
登录dblink 关联库查询对象COMM.ACCT_ITEM_OWE
SQL> SELECT object_name,object_type,owner,status
FROM dba_objects
WHERE object_name=' ACCT_ITEM_OWE ';
OWNER OBJECT_NAME OBJECT_TYPE
------------------------------ -------------------------------------------------- -------------------
COMM ACCT_ITEM_OWE SYNONYM ====》是同义词
SQL> select * from COMM.ACCT_ITEM_OWE where rownum<2;
ACCT_ITEM_ID ITEM_SOURCE_ID BILL_ID ACCT_ITEM_TYPE_ID BILLING_CYCLE_ID ACCT_ID SERV_ID AMOUNT CREATED_DATE FEE_CYCLE_ID PAYMENT_METHOD STA STATE_DATE INV ORI_ACCT_ITEM_ID OFFER_ID
------------ -------------- ---------- ----------------- ---------------- ---------- ---------- ---------- ------------ ------------ -------------- --- ------------ --- ---------------- ----------
1.2301E+10 14 9.1726E+11 21018847 11105 2.4000E+11 2.2200E+11 -200 01-JUN-11 11105 11 5JB 01-JUN-11 500000304
-----查询发现此同义词可以查询,应用判断应该是dblink的问题
-----在本库执行
SQL> select * from COMM.ACCT_ITEM_OWE@DBLINK_ACCT_COMM where rownum<2;
select * from COMM.ACCT_ITEM_OWE@DBLINK_ACCT_COMM where rownum<2
*
ERROR at line 1:
ORA-02019: connection description for remote database not found
-----重建dblink解决问题,假如不是dblink的问题就需要重建同义语了。