本文共 9997 字,大约阅读时间需要 33 分钟。
数据库版本10.2.0.5,Alert 日志存在ORA-600报错
ORA-00600: internal error code, arguments: [kole_t2u], [34], []
--Trace日志如下
System name: LinuxOracle process number: 295Unix process pid: 29361, image: oracle@pquerydb02 (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.272ksedmp: internal or fatal errorORA-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 name0x207a6ee990 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=fksedst()+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 irpidru()+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 AL32UTF8NLS_NCHAR_CHARACTERSET AL16UTF16SQL> 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的情况下,大部分均无法有效解决,因此评估该报错产生的影响性是重要的,当确认报错未直接影响功能,可以暂且忽略。
转载地址:http://fnlyz.baihongyu.com/