问题描述
运行utldtree.sql脚本的时,创建sequence创建ORA-00600的错误
1,数据库版本
www.htz.pw > select * from v$version where rownum<3; BANNER ——————————————————————————– Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production PL/SQL Release 11.2.0.4.0 – Production
2,6002错误
www.htz.pw > oradebug setmypid Statement processed. www.htz.pw > oradebug event 10046 trace name context forever,level 12; Statement processed. www.htz.pw > create sequence deptree_seq cache 200; create sequence deptree_seq cache 200 * ERROR at line 1: ORA-00603: ORACLE server session terminated by fatal error ORA-00600: internal error code, arguments: [6002], [6], [6], [1], [0], [], [], [], [], [], [], [] Process ID: 1469 Session ID: 37 Serial number: 241
报了ORA-00600 6002错误
专家解答
3,分析方法与故障解决
3.1 alert日志文件
Sat Jul 12 08:14:36 2014 Errors in file /oracle/app/oracle/diag/rdbms/orcl1124/orcl1124/trace/orcl1124_ora_1469.trc (incident=27820): ORA-00600: internal error code, arguments: [6002], [6], [6], [1], [0], [], [], [], [], [], [], [] Incident details in: /oracle/app/oracle/diag/rdbms/orcl1124/orcl1124/incident/incdir_27820/orcl1124_ora_1469_i27820.trc 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 /oracle/app/oracle/diag/rdbms/orcl1124/orcl1124/trace/orcl1124_ora_1469.trc (incident=27821): ORA-00603: ORACLE server session terminated by fatal error ORA-00600: internal error code, arguments: [6002], [6], [6], [1], [0], [], [], [], [], [], [], [] Incident details in: /oracle/app/oracle/diag/rdbms/orcl1124/orcl1124/incident/incdir_27821/orcl1124_ora_1469_i27821.trc Sat Jul 12 08:14:37 2014 Dumping diagnostic data in directory=[cdmp_20140712081437], requested by (instance=1, osid=1469), summary=[incident=27820]. opiodr aborting process unknown ospid (1469) as a result of ORA-603 Dumping diagnostic data in directory=[cdmp_20140712081438], requested by (instance=1, osid=1469), summary=[incident=27821].
查看orcl1124_ora_1469_i27820.trc日志文件内容
*** 2014-07-12 08:14:36.296 dbkedDefDump(): Starting incident default dumps (flags=0x2, level=3, mask=0x0) —– Current SQL Statement for this session (sql_id=acd938p9jb374) —– insert into seq$(obj#,increment$,minvalue,maxvalue,cycle#,order$,cache,highwater,audit$,flags)values(:1,:2,:3,:4,:5,:6,:7,:8,:9,:10)
这里看到了报错的SQL语句,由于在insert seq$表的时候出了问题
3.2 dbv数据文件
由于数据库原来通过强制打开,怀疑是可能有坏块等其它的原因
[oracle@www.htz.pw trace]$dbv file=/oracle/app/oracle/oradata/orcl1124/system01.dbf DBVERIFY: Release 11.2.0.4.0 – Production on Sat Jul 12 08:19:25 2014 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. DBVERIFY – Verification starting : FILE = /oracle/app/oracle/oradata/orcl1124/system01.dbf DBVERIFY – Verification complete Total Pages Examined : 96000 Total Pages Processed (Data) : 63740 Total Pages Failing (Data) : 0 Total Pages Processed (Index): 13209 Total Pages Failing (Index): 0 Total Pages Processed (Other): 3471 Total Pages Processed (Seg) : 1 Total Pages Failing (Seg) : 0 Total Pages Empty : 15580 Total Pages Marked Corrupt : 0 Total Pages Influx : 0 Total Pages Encrypted : 0 Highest block SCN : 3497668 (0.3497668)
这里可以看到,数据文件无坏块
3.3 analyze表与索引
www.htz.pw > analyze table sys.seq$ validate structure online; Table analyzed. www.htz.pw > analyze table sys.seq$ validate structure cascade online; Table analyzed. 这里需要注意的是cascade online的时候并没有报错,必须使用cascade方式,但是此方式需要在表上面有4的TM锁,会影响业务 www.htz.pw > analyze table sys.seq$ validate structure cascade; analyze table sys.seq$ validate structure cascade * ERROR at line 1: ORA-01499: table/index cross reference failure – see trace file 查看trace文件可以发现下面的内容 trace文件 Table/Index row count mismatch table 224 : index 0, 0 Index root = tsn: 0 rdba: 0x004002c0
由于表与索引的数据不一致导致的
3.4 分析表与索引数据
oracle@www.htz.pw sql]$sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Sat Jul 12 08:34:29 2014 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options www.htz.pw > @dba_to_fno_bno.sql Enter value for dba: 004002c0 FILE BLOCK ———- ———- 1 704 www.htz.pw > @dump_block.sql Enter value for datafile: 1 Enter value for block_id: 704 System altered. Statement processed. /oracle/app/oracle/diag/rdbms/orcl1124/orcl1124/trace/orcl1124_ora_4180.trc
这里我使用的是直接dump块,也可以通过dba_extents的方式查询,不过生产库查询dba_extents速度太慢了。
Extent Control Header —————————————————————– Extent Header:: spare1: 0 spare2: 0 #extents: 1 #blocks: 7 last map 0x00000000 #maps: 0 offset: 4128 Highwater:: 0x004002c2 ext#: 0 blk#: 1 ext size: 7 #blocks in seg. hdr’s freelists: 0 #blocks below: 1 mapblk 0x00000000 offset: 0 Unlocked Map Header:: next 0x00000000 #extents: 1 obj#: 79 flag: 0x40000000 Extent Map —————————————————————– 0x004002c1 length: 7 nfl = 1, nfb = 1 typ = 2 nxf = 0 ccnt = 0 SEG LST:: flg: UNUSED lhd: 0x00000000 ltl: 0x00000000 End dump data blocks tsn: 0 file#: 1 minblk 704 maxblk 704
从dump文件中,我们可以得到,这是个位图块。
下面是获取索引的信息
www.htz.pw > @object_by_id.sql +————————————————————————+ | display one object type,owner,time,status | +————————————————————————+ Enter Search Object Id (i.e. 1235) : 79 Object Create Last_Ddl OWNER OBJECT_NAME SUBOBJECT_NAME Type Time Time STATUS ——————– ——————————– ————— ——————– ——————– ———- SYS I_SEQ1 INDEX 2013-08-24 11:37:36 2013-08-24 11:37:36 VALID www.htz.pw > @table_index.sql www.htz.pw > set echo off +—————————————————————————-+ | DISPLAY INDEX INFO ABOUT TABLE:TABLE_NAME | +—————————————————————————-+ Enter Search Table Owner (i.e. SCOTT|ALL(DEFAULT)) : sys Enter Search Table Name (i.e. DEPT|DEFAULT(ALL)) : seq$ Enter Search Index Name (i.e. DEPT|DEFAULT(ALL)) : OWNER TABLE_NAME Dinsinct PAR INDEX_NAME UNIQUENES PCT LOG B Keys LEAF_BLOCKS NUM_ROWS TI POST NAME —————– ——— —- — — ——– ———– ——– — —- —- SEQ$:I_SEQ1 UNIQUE 10 YES 0 224 1 224 NO 1 OBJ#
下面是验证索引中的数据与表中的数据是否一致
www.htz.pw > select count(*) from sys.seq$; COUNT(*) ———- 224 Execution Plan ———————————————————- Plan hash value: 3316131119 ——————————————————————- | Id | Operation | Name | Rows | Cost (%CPU)| Time | ——————————————————————- | 0 | SELECT STATEMENT | | 1 | 1 (0)| 00:00:01 | | 1 | SORT AGGREGATE | | 1 | | | | 2 | INDEX FULL SCAN| I_SEQ1 | 224 | 1 (0)| 00:00:01 | ——————————————————————- Statistics ———————————————————- 0 recursive calls 0 db block gets 1 consistent gets 0 physical reads 0 redo size 527 bytes sent via SQL*Net to client 523 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 1 rows processed www.htz.pw > select /*+ full(a) */count(*) from sys.seq$ a; COUNT(*) ———- 224 Execution Plan ———————————————————- Plan hash value: 2252164700 ——————————————————————- | Id | Operation | Name | Rows | Cost (%CPU)| Time | ——————————————————————- | 0 | SELECT STATEMENT | | 1 | 3 (0)| 00:00:01 | | 1 | SORT AGGREGATE | | 1 | | | | 2 | TABLE ACCESS FULL| SEQ$ | 224 | 3 (0)| 00:00:01 | ——————————————————————- www.htz.pw > SELECT /*+ FULL(t1) */ obj# 2 FROM sys.seq$ t1 3 MINUS 4 SELECT /*+ index(t1 i_seq1) */ obj# 5 FROM sys.seq$ t1; no rows selected 这里没有发现数据不一致,并且之前也查询出来,通过表与索引出来的行都是一致的 Execution Plan ———————————————————- Plan hash value: 3590734068 —————————————————————————— | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | —————————————————————————— | 0 | SELECT STATEMENT | | 224 | 2240 | 6 (34)| 00:00:01 | | 1 | MINUS | | | | | | | 2 | SORT UNIQUE | | 224 | 1120 | 4 (25)| 00:00:01 | | 3 | TABLE ACCESS FULL| SEQ$ | 224 | 1120 | 3 (0)| 00:00:01 | | 4 | SORT UNIQUE NOSORT| | 224 | 1120 | 2 (50)| 00:00:01 | | 5 | INDEX FULL SCAN | I_SEQ1 | 224 | 1120 | 1 (0)| 00:00:01 | —————————————————————————— Statistics ———————————————————- 2 recursive calls 0 db block gets 8 consistent gets 0 physical reads 0 redo size 332 bytes sent via SQL*Net to client 512 bytes received via SQL*Net from client 1 SQL*Net roundtrips to/from client 1 sorts (memory) 0 sorts (disk) 0 rows processed
这里报的是位图块,并且数据也一致,不知道是具体是什么原因了。
3.5 故障解决
www.htz.pw > alter index sys.I_SEQ1 rebuild online; Index altered. www.htz.pw > create sequence deptree_seq cache 200 ; Sequence created.
能正常创建sequence,说明问题已经得到解决
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。