1. 程式人生 > >ORA-00600: internal error code, arguments: [kole_t2u], [34]

ORA-00600: internal error code, arguments: [kole_t2u], [34]

資料庫版本10.2.0.5,Alert 日誌存在ORA-600報錯

ORA-00600: internal error code, arguments: [kole_t2u], [34], []

--Trace日誌如下

System name:    Linux
Oracle process number: 295
Unix process pid: 29361, image: [email protected] (TNS V1-V3)

*** ACTION NAME:() 2018-11-17 19:45:57.272
*** MODULE NAME:(OGG-RE_LIS_A-OPEN_DATA_SOURCE) 2018
-11-17 19:45:57.272 *** SERVICE NAME:(SYS$USERS) 2018-11-17 19:45:57.272 *** SESSION ID:(1709.7459) 2018-11-17 19:45:57.272 *** 2018-11-17 19:45:57.272 ksedmp: internal or fatal error ORA-00600: internal error code, arguments: [kole_t2u], [34], [], [], [], [], [], [] Current SQL statement for this session: DECLARE PRAGMA AUTONOMOUS_TRANSACTION; TR_EVENT_ID VARCHAR2(
32); TR_TERMINAL VARCHAR2(50); TR_IPADDR VARCHAR2(30); TR_CUR_USER VARCHAR2(30); TR_CUR_USERID NUMBER; TR_SE_USER VARCHAR2(30); TR_SE_USERID NUMBER; TR_PROXY_USER VARCHAR2(30); TR_PROXY_USERID NUMBER; TR_CUR_SC VARCHAR2(30); TR_HOST VARCHAR2(100); TR_OS_USER VARCHAR2(
60); TR_SESSIONID VARCHAR2(32); TR_SQL_ID VARCHAR2(13); TR_SQL VARCHAR2(60); TR_VERSION_NO NUMBER; TR_N NUMBER; TR_STMT CLOB := NULL; TR_SQL_TEXT ORA_NAME_LIST_T; BEGIN TR_EVENT_ID := SYS_GUID(); --獲取使用者資訊 SELECT NVL(SYS_CONTEXT('USERENV','TERMINAL'),''),--客戶端作業系統終端的名稱 NVL(SYS_CONTEXT('USERENV','IP_ADDRESS'),''),--客戶端作業系統終端的名稱 NVL(SYS_CONTEXT('USERENV','CURRENT_USER'),''),--當前SESSION擁有許可權的使用者的名稱(比如說當前SESSION是SYS,但是正在執行SYSTEM.MYPROC,那麼CURRENT_USER就是SYSTEM) NVL(SYS_CONTEXT('USERENV','CURRENT_USERID'),''),--當前SESSION擁有的許可權的使用者的ID NVL(SYS_CONTEXT('USERENV','SESSION_USER'),''),--SESSION所屬的使用者名稱 NVL(SYS_CONTEXT('USERENV','SESSION_USERID'),''),--當前SESSION所屬的使用者ID NVL(SYS_CONTEXT('USERENV','PROXY_USER'),''),--開啟當前SESSION的使用者的名稱 NVL(SYS_CONTEXT('USERENV','PROXY_USERID'),''),--開啟當前SESSION的使用者的ID NVL(SYS_CONTEXT('USERENV','CURRENT_SCHEMA'),''),--當前SESSION預設的SCHEMA名稱 NVL(SYS_CONTEXT('USERENV','HOST'),''),--客戶端的主機名稱 NVL(SYS_CONTEXT('USERENV','OS_USER'),''),--客戶端的作業系統使用者名稱 NVL(SYS_CONTEXT('USERENV','SESSIONID'),'')--SESSION的ID INTO TR_TERMINAL,TR_IPADDR,TR_CUR_USER,TR_CUR_USERID,TR_SE_USER,TR_SE_USERID,TR_PROXY_USER,TR_PROXY_USERID, TR_CUR_SC,TR_HOST,TR_OS_USER,TR_SESSIONID FROM DUAL; --獲取DDL SQL語句,如果語句過長無法全部獲得,可以根據SQL_ID查詢 BEGIN SELECT SQL_TEXT,SQL_ID INTO TR_SQL,TR_SQL_ID FROM V$OPEN_CURSOR WHERE UPPER(SQL_TEXT) LIKE 'ALTER%' OR UPPER(SQL_TEXT) LIKE 'CREATE%' OR UPPER(SQL_TEXT) LIKE 'DROP%'; TR_N := ORA_SQL_TXT(TR_SQL_TEXT); FOR I IN 1 .. TR_N LOOP TR_STMT := TR_STMT || TR_SQL_TEXT(I); END LOOP; EXCEPTION WHEN OTHERS THEN TR_SQL_ID := NULL; TR_STMT := NULL; END; --向TB_SYSTEM_DDL_LOGS日誌表中插入DDL操作記錄 IF ORA_DICT_OBJ_TYPE<>'SEQUENCE'AND ORA_SYSEVENT<>'GRANT' AND ORA_DICT_OBJ_OWNER='LISPRDD' AND ORA_DICT_OBJ_NAME NOT LIKE 'SYS_C%' THEN SELECT SEQ_DDL_VERSION.NEXTVAL INTO TR_VERSION_NO FROM DUAL; INSERT INTO TB_SYSTEM_DDL_LOGS (EVENT_ID,EVENT_NAME,TERMINAL,DB_NAME,OBJECT_NAME,OBJECT_OWNER,OBJECT_TYPE, IS_ALTER_COLUMN,IS_DROP_COLUMN,SQL_ID,SQL_TEXT,SESSION_ID, CURRENT_USER,CURRENT_USERID,SESSION_USER,SESSION_USERID, PROXY_USER,PROXY_USERID,CURRENT_SCHEMA,HOST,OS_USER,IP_ADDRESS,VERSION_NO) VALUES (TR_EVENT_ID,ORA_SYSEVENT,TR_TERMINAL,ORA_DATABASE_NAME,ORA_DICT_OBJ_NAME,ORA_DICT_OBJ_OWNER,ORA_DICT_OBJ_TYPE, NULL,NULL,TR_SQL_ID,TR_STMT,TR_SESSIONID, TR_CUR_USER,TR_CUR_USERID,TR_SE_USER,TR_SE_USERID, TR_PROXY_USER,TR_PROXY_USERID,TR_CUR_SC,TR_HOST,TR_OS_USER,TR_IPADDR,TR_VERSION_NO ); COMMIT; END IF; END; ----- PL/SQL Call Stack ----- object line object handle number name 0x207a6ee990 52 anonymous block ----- Call Stack Trace ----- calling call entry argument values in hex location type point (? means dubious value) -------------------- -------- -------------------- ---------------------------- ssd_unwind_bp: unhandled instruction at 0x3d12266 instr=f ksedst()+31 call ksedst1() ksedmp()+610 call ksedst() ksfdmp()+63 call ksedmp() kgerinv()+161 call ksfdmp() kgesinv()+33 call kgerinv() kgesin()+143 call kgesinv() kole_t2u()+632 call kgesin() koklwrite()+1720 call kole_t2u() koklc_write()+183 call koklwrite() kole_ba2l()+319 call koklc_write() pfrcvfc_format_conv call kole_ba2l() ersion()+3583 pevm_CNVMSC()+36 call pfrcvfc_format_conv ersion() pfrinstr_CNVMSC()+5 call pevm_CNVMSC() 0 pfrrun_no_tool()+65 call pfrinstr_CNVMSC() pfrrun()+898 call pfrrun_no_tool() plsql_run()+839 call pfrrun() peicnt()+296 call plsql_run() kkxexe()+504 call peicnt() opiexe()+4707 call kkxexe() opiall0()+1853 call opiexe() opikpr()+642 call opiall0() opiodr()+1184 call opikpr() rpidrus()+196 call opiodr() skgmstack()+158 call rpidrus() ssd_unwind_bp: unhandled instruction at 0x1309d1f i rpidru()+116 call skgmstack() rpiswu2()+409 call rpidru() kprball()+1270 call rpiswu2() kktextrg()+866 call kprball() kkttrex()+2796 call kktextrg() kktexeevt0()+684 call kkttrex() kktfrddltrg()+306 call kktexeevt0() opiexe()+12227 call kktfrddltrg() opiosq0()+3398 call opiexe() kpooprx()+318 call opiosq0() kpoal8()+783 call kpooprx() opiodr()+1184 call kpoal8() ttcpip()+1226 call opiodr() opitsk()+1310 call ttcpip() opiino()+1024 call opitsk() opiodr()+1184 call opiino() opidrv()+548 call opiodr() sou2o()+114 call opidrv() opimai_real()+163 call sou2o() main()+116 call opimai_real() __libc_start_main() call main() +244 _start()+41 call __libc_start_main() --------------------- Binary Stack Dump ---------------------

 

--匹配MOS 提示是一個Bug,由於字元轉換導致的問題

 
ORA-600 [kole_t2u], [34] - description, bugs, and reasons (文件 ID 734474.1)

Cause type-1: Invalid multibyte data being inserted into a CLOB
 

SQL>select * from nls_database_parameters where VALUE like '%AL32%' OR VALUE LIKE '%AL16%'

PARAMETER VALUE
------------------------------ ------------------------------
NLS_CHARACTERSET AL32UTF8
NLS_NCHAR_CHARACTERSET AL16UTF16

SQL> CREATE TABLE T(A CLOB);

Table created.

SQL> INSERT INTO T VALUES(UTL_RAW.CAST_TO_VARCHAR2('EC'));
INSERT INTO T VALUES(UTL_RAW.CAST_TO_VARCHAR2('EC'))
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [kole_t2u], [34], [], [], [], [],  [], []

 

--其它相關Bug  --未明確匹配任何有效資訊

Bug 10334711  EXTENDED auditing in multibyte gets ORA-600 [kole_t2u] for long bind data
 Do not use the EXTENDED feature of AUDIT_TRAIL

 當前資料庫版本10.2.0.5,資料庫審計引數AUDIT_TRAIL=NONE 關閉審計功能狀態

 

 --問題影響,我們可以發現,該service_name為OGG自帶的相關服務,因此協調OGG管理員,查詢相關OGG服務是否正常,是否由於該ORA-600錯誤導致ogg功能性異常,結果檢測,未發現問題,因此可忽略。

 

在面對這種ORA-600的情況下,大部分均無法有效解決,因此評估該報錯產生的影響性是重要的,當確認報錯未直接影響功能,可以暫且忽略。