ORA-600 [17003]错误一例

简介:

一套AIX 上的10.2.0.4系统运行catupgrd.sql脚本时出现ORA-600 [17003]错误, 详细的日志如下:   ALTER TYPE lcr$_row_record ADD MEMBER FUNCTION * ERROR at line 1: ORA-00600: internal error code, arguments: [17003], [0x70000008E6DA8C8], [1], [1], [], [], [], [] 1. Provide a list of invalid objects taken before upgrade was initially attempted. spool invalid_pre.lst select substr(owner,1,12) owner, substr(object_name,1,30) object, substr(object_type,1,30) type, status from dba_objects where status <> 'VALID'; spool off 2. Provide output of select obj# ,name from obj$ where name in ('LCR$_ROW_LIST','LCR$_ROW_RECORD'); 3. Provide an output of : select D_OBJ#, do.object_name, do.object_type dtyp, do.status dsta, D_TIMESTAMP, ORDER#, P_OBJ#, po.object_name, po.object_type ptyp, po.status psta, P_TIMESTAMP from dependency$ d, DBA_OBJECTS do, DBA_OBJECTS po where D_OBJ# = do.object_ID and P_OBJ#= po.object_ID and do.object_ID in (select object_id from dba_objects where OBJECT_NAME='LCR$_ROW_LIST') / 4. Run same SQL in step 3 in another database of the same version - 10.1.0.4 select D_OBJ#, do.object_name, do.object_type dtyp, do.status dsta, D_TIMESTAMP, ORDER#, P_OBJ#, po.object_name, po.object_type ptyp, po.status psta, P_TIMESTAMP from dependency$ d, DBA_OBJECTS do, DBA_OBJECTS po where D_OBJ# = do.object_ID and P_OBJ#= po.object_ID and do.object_ID in (select object_id from dba_objects where OBJECT_NAME='AQ$_REG_INFO') / Compare and verify that this object has as many parent entries in dependency$ as they are in a fresh Database of the same version. If they are not, alter compile this object,and using same query above to verify that parent rows are created. 5. To verify timestamp discrepancy, run SQL spool &spoolfilename set pagesize 10000 column d_name format a20 column p_name format a20 select do.obj# d_obj,do.name d_name, do.type# d_type, po.obj# p_obj,po.name p_name,to_char(p_timestamp,'DD-MON-YYYY HH24:MI:SS') "P_Timestamp", to_char(po.stime ,'DD-MON-YYYY HH24:MI:SS') "STIME", decode(sign(po.stime-p_timestamp),0,'SAME','*DIFFER*') X from sys.obj$ do, sys.dependency$ d, sys.obj$ po where P_OBJ#=po.obj#(+) and D_OBJ#=do.obj# and do.status=1 /*dependent is valid*/ and po.status=1 /*parent is valid*/ and po.stime!=p_timestamp /*parent timestamp not match*/ order by 2,1; SQL> select obj# ,name from obj$ where name in ('LCR$_ROW_LIST','LCR$_ROW_RECORD'); OBJ# NAME ---------- ------------------------------ 5738 LCR$_ROW_RECORD 5776 LCR$_ROW_RECORD 256054 LCR$_ROW_LIST SQL> select D_OBJ#, do.object_name, do.object_type dtyp, do.status dsta, D_TIMESTAMP, ORDER#, P_OBJ#, po.object_name, po.object_type ptyp, po.status 2 3 psta, P_TIMESTAMP from dependency$ d, DBA_OBJECTS do, DBA_OBJECTS po 4 where D_OBJ# = do.object_ID and P_OBJ#= po.object_ID 5 and do.object_ID in (select object_id from dba_objects where 6 OBJECT_NAME='LCR$_ROW_LIST') 7 / no rows selected SQL> spool timestamp SQL> set pagesize 10000 column d_name format a20 column p_name format a20 select do.obj# d_obj,do.name d_name, do.type# d_type, po.obj# p_obj,po.name p_name, SQL> to_char(p_timestamp,'DD-MON-YYYY HH24:MI:SS') "P_Timestamp", to_char(po.stime ,'DD-MON-YYYY HH24:MI:SS') "STIME", decode(sign(po.stime-p_timestamp),0,'SAME','*DIFFER*') X from sys.obj$ do, sys.dependency$ d, sys.obj$ po where P_OBJ#=po.obj#(+) and D_OBJ#=do.obj# SQL> and do.status=1 /*dependent is valid*/ 2 3 4 5 6 7 8 and po.status=1 /*parent is valid*/ 9 10 11 and po.stime!=p_timestamp /*parent timestamp not match*/ 12 order by 2,1; no rows selected SQL> spool off Errors in file ora_594098.trc: ORA-07445: exception encountered: core dump [kgghstfel+0074] [SIGSEGV] [Address not mapped to object] [0x204000000208] [] [] 1. Install 10.2.0.1, install 10.2.0.4 2. run utlu102i.sql, check output. 3. change Oracle Home 10.1 to 10.2 4. startup upgrade and run catupgrd.sql SQL> set lines 200 SQL> col comp_name format a50 SQL> select comp_name,version,status from dba_registry; COMP_NAME VERSION STATUS -------------------------------------------------- ------------------------------ --------------------------------- Oracle XML Database 10.2.0.4.0 VALID Oracle Enterprise Manager 10.2.0.4.0 VALID Oracle Data Mining 10.2.0.4.0 VALID OLAP Catalog 10.2.0.4.0 VALID Oracle Text 10.2.0.4.0 VALID Spatial 10.2.0.4.0 VALID Oracle interMedia 10.2.0.4.0 VALID Oracle Database Catalog Views 10.2.0.4.0 VALID Oracle Database Packages and Types 10.2.0.4.0 INVALID Oracle Real Application Clusters 10.2.0.4.0 VALID JServer JAVA Virtual Machine 10.2.0.4.0 VALID Oracle XDK 10.2.0.4.0 VALID Oracle Database Java Packages 10.2.0.4.0 VALID OLAP Analytic Workspace 10.2.0.4.0 VALID Oracle OLAP API 10.2.0.4.0 VALID If the above query shows that everything is valid and is in proper version, it means, that we would need to correct the problem with lcr$_row_record before upgrade. I see that one component is invalid 'Database packages and types'. To resolve this, please perform the following: SQL> shutdown immediate SQL> startup upgrade SQL> @?/rdbms/admin/catproc.sql SQL> @?/rdbms/admin/utlrp.sql SQL> shutdown immediate SQL> startup SQL> set lines 200 SQL> col comp_name format a50SQL> select comp_name,version,status from dba_registry; Recompiled also get ORA-00600: internal error code, arguments: [17003] SQL> alter type LCR$_ROW_RECORD compile; alter type LCR$_ROW_RECORD compile * ERROR at line 1: ORA-00600: internal error code, arguments: [17003], [0x70000007C3A0378], [1], [1], [], [], [], [] select D_OBJ#, do.object_name, do.object_type dtyp, do.status dsta, D_TIMESTAMP, ORDER#, P_OBJ#, po.object_name, po.object_type ptyp, po.status psta, P_TIMESTAMP from dependency$ d, DBA_OBJECTS do, DBA_OBJECTS po where D_OBJ# = do.object_ID and P_OBJ#= po.object_ID and do.object_ID = select object_id from dba_objects where OBJECT_NAME='LCR$_ROW_RECORD'); SQL> select D_OBJ#, do.object_name, do.object_type dtyp, do.status dsta, 2 D_TIMESTAMP, ORDER#, P_OBJ#, po.object_name, po.object_type ptyp, po.status psta, P_TIMESTAMP 3 from dependency$ d, DBA_OBJECTS do, DBA_OBJECTS po 4 where D_OBJ# = do.object_ID and P_OBJ#= po.object_ID and do.object_ID = 5 (select object_id from dba_objects where OBJECT_NAME='LCR$_ROW_RECORD');(select object_id from dba_objects where OBJECT_NAME='LCR$_ROW_RECORD') * ERROR at line 5: ORA-01427: single-row subquery returns more than one row SQL> set lines 200 SQL> col comp_name format a50 SQL> select comp_name,version,status from dba_registry; SQL> col object_name format a20 SQL> select D_OBJ#, do.object_name, do.object_type dtyp, do.status dsta, D_TIMESTAMP, ORDER#, P_OBJ#, po.object_name, po.object_type ptyp, po.status psta, P_TIMESTAMP from dependency$ d, DBA_OBJECTS do, DBA_OBJECTS po where D_OBJ# = do.object_ID and P_OBJ#= po.object_ID and do.object_ID in (select object_id from dba_objects where OBJECT_NAME='LCR$_ROW_RECORD');   MOS Bug Info:   Hdr: 6611530 10.2.0.2.0 RDBMS 10.2.0.2.0 AQ PRODID-5 PORTID-197 ORA-600 Abstract: ORA-600 17003 PROBLEM: -------- Customer was trying to apply the 10.2.0.3 patchset and kept getting ora-600 17003 errors running catproc.



本文转自maclean_007 51CTO博客,原文链接:http://blog.51cto.com/maclean/1277067

相关文章
|
索引 数据库管理 Linux
|
Oracle 关系型数据库
ORA-00060错误
今天有个同事说生产机有个PERL脚本老是报死锁的错误,脚本里面开启了并行度:错误如下: Failure: ORA-12801: error signaled in parallel query server P126, instance NMS_ODS_NDB1:wgods1 (1)ORA-000...
1291 0
|
SQL 关系型数据库 Oracle
ORA-00911错误
ORA-00911,"911"看着很霸气的错误号,虽然我还是Oracle的初学者,但每次碰到一个未见过的ORA错误号后,都有一种查案的赶脚,根据错误号、OERR、相关错误信息,判断错误原因以及找到解决方案或替代方案,虽然大部分可能还是参考前辈或官方,但碰到一次后,至少是似曾相识了,再次碰到时即使不记得,大概也能有个方向。
1066 0
|
Oracle 网络协议 关系型数据库
|
SQL Oracle 关系型数据库
|
SQL 关系型数据库 Oracle
|
关系型数据库 Oracle Linux
|
SQL Oracle 关系型数据库