操作系统:AIX 6.1 数据库环境:RAC 10.2.0.5
2011/10 /08 16:33左右,节点1出现的ORA-00600错误,产生dump文件为5M多的 zgscdb1_ora_26739166.trc ,2011/10/09 15:43左右,节点二出现ORA-00600错误,dump文件为 159K的zgscdb2_ora_35651868.trc
节点1:
这个错误是由于取消当前操作所引发。Sat Oct 08 16:33:46 GMT+08:00 2011Errors in file /oracle10g/app/oracle/admin/zgscdb/udump/zgscdb1_ora_26739166.trc:
ORA-00600: internal error code, arguments: [kgantc_1], [0], [1], [], [], [], [], []
ORA-00604: error occurred at recursive SQL level 1 ORA-01013: user requested cancel of current operation
根据错误信息和错误的发生时间,基本上可以确定,问题是由于取消当前操作引起的,下面检查一下详细信息,查看当前执行的操作是什么。
Trace开头部分内容如下:*** 2011-10-08 16:33:45.573
*** ACTION NAME:(Test Window - Script for procedu) 2011-10-08 16:33:45.565
*** MODULE NAME:(PL/SQL Developer) 2011-10-08 16:33:45.565
*** SERVICE NAME:(zgscdb) 2011-10-08 16:33:45.565
*** SESSION ID:(5211.11033) 2011-10-08 16:33:45.564
Probe:read_pipe: receive failed, status 3
*** 2011-10-08 16:33:45.574
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [kgantc_1], [0], [1], [], [], [], [], []
ORA-00604: error occurred at recursive SQL level 1
ORA-01013: user requested cancel of current operation
从这里可以看到错误会话是通过PL/SQL Developer连接到数据库的,下面是出错SQL部分:Current SQL statement for this session:
begin
-- Call the procedure
p_fp_dk_sfxx(inwspzxh => :inwspzxh,
errcode => :errcode,
errmean => :errmean);
end;
从这里只能看出错误的发生与用户取消操作有关,调用的PL/SQL包本身并没有什么异常。 O/S info: user: Administrator, term: FZLTAX-SK-DL, ospid: 844:5076, machine: SKFZLTAX-SK-DL
program: plsqldev.exe application name: PL/SQL Developer
这 是开发人员通过windows平台,使用PL/SQL Developer连接数据库做了PL/SQL代码测试,终端名称为FZLTAX-SK-DL,开 发人员运行此代码过程中取消了该操作,触发ORA-00600。搜索METALINK ORA-00600 [kgantc_1],并没有发现什么有价值的线索,发现有一个与此相类似的问题,此错误发生的ORACLE版本范围比较大,是一个未发布的bug,在11.2版本以后才修补,10.2.0.5是 10G最后一个补丁,出现类似的bug也属正常:
Applies to:
Oracle Server - Enterprise Edition - Version: 8.1.7.0 to 11.1.0.7
This problem can occur on any platform.
Symptoms
A user interrupted the session while in the process of creating the connection - this is seen in the alert.log as something like:
ORA-00600: internal error code, arguments: [ttcgcshnd-2], [0], [], [], [], [], [], []
ORA-01013: user requested cancel of current operation
The instance continues to operate normally after the error.
Cause
The root cause is a problem handling the client interrupt (Ctrl-C) during connection handshake - this has been discussed in non-published bug:3210738.
Solution
The issue is completely harmless and can be safely ignored.
From 11.2 a fix has been implemented that will cause the client to raise an ORA-28547 (or an ORA-3106 if the client is pre-11.2). This has been implemented via non-published bug:6859408
References
在当前的例子中,是可能由于错误是ORA-1031,是用户取消造成的,相对比较特殊,Oracle没有正确的捕获和处理,从而导致了这一系列Oracle内部错误的出现。
总的来说,这个错误出现的概率很小,且本身没有什么维护。如有特殊疑问,也可以与开发人员进行沟通。
节点2:
仍然是由于取消当前操作所引发。
Unix process pid: 35651868, image: oracle@fjlt_zgsc_db02
*** ACTION NAME:() 2011-10-09 15:41:36.670
*** MODULE NAME:(plsqldev.exe) 2011-10-09 15:41:36.670
*** SERVICE NAME:(zgscdb) 2011-10-09 15:41:36.670
*** SESSION ID:(5020.1926) 2011-10-09 15:41:36.670
qm_init_uga_helper: received error e=604 e2=1013
*** 2011-10-09 15:41:36.674
ksedmp: internal or fatal error
ORA-00604: error occurred at recursive SQL level 2
ORA-01013: user requested cancel of current operation
代码如下:
Current SQL statement for this session:
select count(*) from user$ u, xdb.xdb$schema s where u.user# = :1 and u.name = s.xmldata.schema_owner and (xdb.xdb$Extname2Intname(s.xmldata.schema_url, s.xmldata.schema_owner) = :2)
另外在搜索ora-600 kgantc_1错误时发现了由于没有debug权限导致该错误的例子,这里也一并记录下来,以便日后查看。
参考
http://yangtingkun.itpub.net/post/468/521820
客户碰到了这个错误,在这个错误出现同时,伴随着大量PL/SQL相关的错误信息。
详细的错误信息为:
Errors in file /opt/oracle/diag/rdbms/mobiledb_n/mobiledb/trace/mobiledb_ora_3450.trc (incident=48961):
ORA-00600: 内部错误代码, 参数: [kgantc_1], [0], [1], [], [], [], [], [], [], [], [], []
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-06510: PL/SQL: 用户定义的异常错误未得到处理
ORA-06512: 在 "SYS.PBREAK", line 1087
ORA-06512: 在 "SYS.PBSDE", line 201
ORA-06510: PL/SQL: 用户定义的异常错误未得到处理
ORA-06512: 在 line 1
ORA-06510: PL/SQL: 用户定义的异常错误未得到处理
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-06510: PL/SQL: 用户定义的异常错误未得到处理
ORA-06512: 在 "SYS.PBREAK", line 1087
ORA-06512: 在 "SYS.PBSDE", line 201
ORA-06510: PL/SQL: 用户定义的异常错误未得到处理
ORA-06512: 在 line 1
ORA-06512: 在 "HCONTENT.INFODLFLOG", line 13
ORA-06512: 在 line 3
Incident details in: /opt/oracle/diag/rdbms/mobiledb_n/mobiledb/incident/incdir_48961/mobiledb_ora_3450_i48961.trc
Thu Aug 04 12:17:41 2011
Dumping diagnostic data in directory=[cdmp_20110804121741], requested by (instance=1, osid=3450), summary=[incident=48961].
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Errors in file /opt/oracle/diag/rdbms/mobiledb_n/mobiledb/trace/mobiledb_ora_3450.trc:
ORA-00600: 内部错误代码, 参数: [kgantc_1], [0], [1], [], [], [], [], [], [], [], [], []
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-06510: PL/SQL: 用户定义的异常错误未得到处理
Errors in file /opt/oracle/diag/rdbms/mobiledb_n/mobiledb/trace/mobiledb_ora_3450.trc:
ORA-00600: 内部错误代码, 参数: [kgantc_1], [0], [1], [], [], [], [], [], [], [], [], []
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-06510: PL/SQL: 用户定义的异常错误未得到处理
ORA-06512: 在 "SYS.PBREAK", line 1087
ORA-06512: 在 "SYS.PBSDE", line 201
ORA-06510: PL/SQL: 用户定义的异常错误未得到处理
ORA-06512: 在 line 1
ORA-06510: PL/SQL: 用户定义的异常错误未得到处理
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-06510: PL/SQL: 用户定义的异常错误未得到处理
ORA-06512: 在 "SYS.PBREAK", line 1087
ORA-06512: 在 "SYS.PBSDE", line 201
ORA-06510: PL/SQL: 用户定义的异常错误未得到处理
ORA-06512: 在 line 1
ORA-06512: 在 "HCONTENT.INFODLFLOG", line 13
ORA-06512: 在 line 3
Dumping diagnostic data in directory=[cdmp_20110804121745], requested by (instance=1, osid=3450), summary=[abnormal process termination].
Thu Aug 04 12:17:45 2011
Errors in file /opt/oracle/diag/rdbms/mobiledb_n/mobiledb/trace/mobiledb_ora_3450.trc (incident=60001):
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [kgantc_1], [0], [1], [], [], [], [], [], [], [], [], []
ORA-00604: error occurred at recursive SQL level 1
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at "SYS.PBREAK", line 1087
ORA-06512: at "SYS.PBSDE", line 201
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at line 1
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-00604: error occurred at recursive SQL level 1
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at "SYS.PBREAK", line 1087
ORA-06512: at "SYS.PBSDE", line 201
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at line 1
ORA-06512: at "HCONTENT.INFODLFLOG", line 13
ORA-06512: at line 3
Incident details in: /opt/oracle/diag/rdbms/mobiledb_n/mobiledb/incident/incdir_60001/mobiledb_ora_3450_i60001.trc
Errors in file /opt/oracle/diag/rdbms/mobiledb_n/mobiledb/incident/incdir_60001/mobiledb_ora_3450_i60001.trc:
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [kgantc_1], [0], [1], [], [], [], [], [], [], [], [], []
ORA-00604: error occurred at recursive SQL level 1
客户的数据库版本是11.2.0.2,而metalink上并没有这么新的版本的说明。不过Oracle的官方记录了类似情况,由于缺少权限,导致PL/SQL出现大量错误,从而最终引发了ORA-600(kgantc_1)的错误。
观察除了ORA-600(kgantc_1)以外的错误信息,问题多半是由于“PL/SQL: 用户定义的异常错误未得到处理”所致。和客户的DBA沟通,确认问题发生时刻,有开发程序员通过PLSQL DEVELOPER工具的DEBUG功能来执行PL/SQL代码。
显然是由于DEBUG过程中,出现了自定义的异常没有捕获的情况,从而引发了这个600错误。而解决问题的方法也很简单,如果不能避免DEBUG程序,那么起码在DEBUG的时候,确保捕获了所有的异常,并不会再次抛出。
参考:
http://oraclesniplets.tumblr.com/post/1008635630/my-oracle-support-oracle-database-335954-1
ORA-1031 ORA-600[17285] ORA-600[KGANTC_1] Debugging PL/SQL [ID 335954.1] Modified 18-DEC-2009 Type PROBLEM Status PUBLISHED
In this Document
Symptoms
Cause
Solution
References
Applies to:
Oracle Server - Enterprise Edition - Version: 10.1.0.3
Information in this document applies to any platform.
***Checked for relevance on 18-DEC-2009***
Symptoms
Debugging PL/SQL using a 3rd party debugger (ie Oraedit) or the DBMS_DEBUG package fails with the
following error sequence reported in the alert log:
Tue Sep 6 11:58:25 2005
Errors in file /ora/RADBAD/admin/udump/radbad_ora_25947.trc:
ORA-00600: internal error code, arguments: [17285], [0xFFFFFFFF7B97B038], [18446744073709551615],
[0x3AD4A9688], [], [], [], []
ORA-00604: error occurred at recursive SQL level 1
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at “SYS.PBREAK”, line 1052
ORA-06512: at “SYS.PBSDE”, line 201
ORA-01031: insufficient privileges
ORA-06512: at line 1
ORA-00604: error occurred at recursive SQL level 1
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at “SYS.PBREAK”, line 1052
ORA-06512: at “SYS.PBSDE”, line 201
ORA-01031: insufficient privileges
ORA-06512: at line 1
Trace file also shows the following errors
Probe:S:debug_loop: exception 1: ORA-01031: insufficient privilege
Other internal errors that may accompany the ora-1031 and ora-6512 are:
ORA-07445: exception encountered: core dump [pfrdmp()+4] [SIGSEGV] [Address not mapped to object] [0x0000000B0] [] []
ORA-07445: exception encountered: core dump [kkxtcs()+216] [SIGBUS] [Invalid address alignment] [0x657273696F6E202D] [] []
ORA-00600: internal error code, arguments: [kgantc_1], [0], [1], [], [], [], [], []
Cause
User does not have sufficient privileges for debugging PL/SQL
Bug:4640115 was filed to address the internal errors exposed when the accurate error is the ora-1031
Bug:4640115 was still in progress at the time this note was written
Solution
1. Connect in SQL*Plus as a DBA/SYSDBA
2. grant the privilege DEBUG CONNECT SESSION to your user:
SQL> GRANT DEBUG CONNECT SESSION to ;
References
BUG:4640115 - [9/6] GETTING ORA 600 WHEN DEBUGGING PL/SQL ORA-600
NOTE:257940.1 - Debugging PL/SQL From Oracle JDeveloper Fails With Errors ORA-1031 ORA-6512
Show Related Information Related
Products
Oracle Database Products > Oracle Database > Oracle Database > Oracle Server - Enterprise Edition
Errors ORA-7445[EXCEPTION]; ORA-600[17285]; ORA-600[KGANTC_1]; ORA-7445; ORA-6512; ORA-604; ORA-1031; ORA-6510; 2005 ERROR
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13247/viewspace-1056149/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/13247/viewspace-1056149/