ORA-00600 [4000], [2426] + ORA-00600 [4000], [2411] 错误解决


朋友那一开发用的Oracle系统,linux平台,版本10.2.0.1.0。

一次在做rman备份时,提示ORA-00600错误。退出后,只要一查询DBA_JOBS,数据库就提示ORA-00600错误,然后数据库就自动关闭了。

一、故障现象

将alert.log拿来看了看,如下:

  1. Database mounted in Exclusive Mode 
  2. Completed: ALTER DATABASE   MOUNT 
  3. Mon Oct 15 14:55:00 2012 
  4. ALTER DATABASE OPEN 
  5. Mon Oct 15 14:55:00 2012 
  6. LGWR: STARTING ARCH PROCESSES 
  7. ARC0 started with pid=16, OS id=4306 
  8. Mon Oct 15 14:55:00 2012 
  9. ARC0: Archival started 
  10. ARC1: Archival started 
  11. LGWR: STARTING ARCH PROCESSES COMPLETE 
  12. ARC1 started with pid=17, OS id=4308 
  13. Mon Oct 15 14:55:00 2012 
  14. Thread 1 opened at log sequence 29 
  15.   Current log# 1 seq# 29 mem# 0: /opt/ora10g/product/10.2.0/oradata/tftdb/REDO01.LOG 
  16. Successful open of redo thread 1 
  17. Mon Oct 15 14:55:00 2012 
  18. MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set 
  19. Mon Oct 15 14:55:00 2012 
  20. ARC0: STARTING ARCH PROCESSES 
  21. Mon Oct 15 14:55:00 2012 
  22. SMON: enabling cache recovery 
  23. Mon Oct 15 14:55:00 2012 
  24. ARC1: Becoming the 'no FAL' ARCH 
  25. ARC1: Becoming the 'no SRL' ARCH 
  26. Mon Oct 15 14:55:00 2012 
  27. ARC2: Archival started 
  28. ARC0: STARTING ARCH PROCESSES COMPLETE 
  29. ARC0: Becoming the heartbeat ARCH 
  30. ARC2 started with pid=18, OS id=4310 
  31. Mon Oct 15 14:55:00 2012 
  32. Successfully onlined Undo Tablespace 1. 
  33. Mon Oct 15 14:55:00 2012 
  34. SMON: enabling tx recovery 
  35. Mon Oct 15 14:55:00 2012 
  36. Database Characterset is ZHS16GBK 
  37. Mon Oct 15 14:55:00 2012 
  38. <SPAN style="COLOR: #ff0000">Errors in file /opt/ora10g/product/10.2.0/admin/tftdb/bdump/tftdb_smon_4289.trc: 
  39. ORA-00600: internal error code, arguments: [4000], [2426], [], [], [], [], [], [] 
  40. replication_dependency_tracking turned off (no async multimaster replication found) 
  41. Mon Oct 15 14:55:00 2012 
  42. Errors in file /opt/ora10g/product/10.2.0/admin/tftdb/udump/tftdb_ora_4304.trc: 
  43. ORA-00600: internal error code, arguments: [4000], [2411], [], [], [], [], [], [] 
  44. Mon Oct 15 14:55:01 2012 
  45. Non-fatal internal error happenned while SMON was doing logging scn->time mapping. 
  46. SMON encountered 1 out of maximum 100 non-fatal internal errors. 
  47. </SPAN>Mon Oct 15 14:55:01 2012 
  48. Starting background process QMNC 
  49. QMNC started with pid=19, OS id=4312 
  50. Mon Oct 15 14:55:01 2012 
  51. db_recovery_file_dest_size of 2048 MB is 48.96% used. This is a 
  52. user-specified limit on the amount of space that will be used by this 
  53. database for recovery-related files, and does not reflect the amount of 
  54. space available in the underlying filesystem or ASM diskgroup. 
  55. Mon Oct 15 14:55:01 2012 
  56. Completed: ALTER DATABASE OPEN 
  57. Mon Oct 15 14:55:01 2012 
  58. Errors in file /opt/ora10g/product/10.2.0/admin/tftdb/bdump/tftdb_cjq0_4293.trc: 
  59. ORA-00600: internal error code, arguments: [4000], [2411], [], [], [], [], [], [] 
  60. Mon Oct 15 14:55:01 2012 
  61. Errors in file /opt/ora10g/product/10.2.0/admin/tftdb/bdump/tftdb_cjq0_4293.trc: 
  62. ORA-00600: internal error code, arguments: [4000], [2411], [], [], [], [], [], [] 
  63. Mon Oct 15 14:55:01 2012 
  64. Errors in file /opt/ora10g/product/10.2.0/admin/tftdb/bdump/tftdb_cjq0_4293.trc: 
  65. ORA-00600: internal error code, arguments: [4000], [2411], [], [], [], [], [], [] 
  66. Mon Oct 15 14:55:02 2012 
  67. Errors in file /opt/ora10g/product/10.2.0/admin/tftdb/bdump/tftdb_cjq0_4293.trc: 
  68. ORA-00600: internal error code, arguments: [4000], [2411], [], [], [], [], [], [] 
  69. Mon Oct 15 14:55:06 2012 
  70. Errors in file /opt/ora10g/product/10.2.0/admin/tftdb/bdump/tftdb_cjq0_4293.trc: 
  71. ORA-00600: internal error code, arguments: [4000], [2411], [], [], [], [], [], [] 
  72. Mon Oct 15 14:55:06 2012 

可以看到,在数据库启动时,SMON进程就报错了:

二、故障分析

主要故障有两个:ORA-00600 [4000], [2426], [], [], [], [], [], [] 和ORA-00600 [4000], [2411], [], [], [], [], [], []

1)ORA-00600 [4000], [2426], [], [], [], [], [], []

打开tftdb_smon_4289.trc文件,可看到如下信息:

  1. /opt/ora10g/product/10.2.0/admin/tftdb/bdump/tftdb_smon_4289.trc 
  2. Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production 
  3. With the Partitioning, OLAP and Data Mining options 
  4. ORACLE_HOME = /opt/ora10g/product/10.2.0/db_1 
  5. System name:    Linux 
  6. Node name:  node1 
  7. Release:    2.6.18-194.el5 
  8. Version:    #1 SMP Tue Mar 16 21:52:43 EDT 2010 
  9. Machine:    i686 
  10. Instance name: tftdb 
  11. Redo thread mounted by this instance: 1 
  12. Oracle process number: 8 
  13. Unix process pid: 4289, image: oracle@node1 (SMON) 
  14.  
  15. *** SERVICE NAME:() 2012-10-15 14:55:00.738 
  16. *** SESSION ID:(164.1) 2012-10-15 14:55:00.738 
  17. *** 2012-10-15 14:55:00.738 
  18. ksedmp: internal or fatal error 
  19. ORA-00600: internal error code, arguments: [4000], [2426], [], [], [], [], [], [] 
  20. Current SQL statement for this session: 
  21. select smontabv.cnt, smontab.time_mp,    smontab.scn, smontab.num_mappings, smontab.tim_scn_map, smontab.orig_thread     
  22. from smon_scn_time smontab,   
  23.   (select max(scn) scnmax,count(*)+sum(NVL2(TIM_SCN_MAP,NUM_MAPPINGS,0)) cnt                   
  24.      from smon_scn_time where thread=0) smontabv     
  25. where smontab.scn = smontabv.scnmax and thread=0 
  26. ----- Call Stack Trace ----- 
  27. calling              call     entry                argument values in hex       
  28. location             type     point                (? means dubious value)       
  29. -------------------- -------- -------------------- ---------------------------- 
  30. ksedst()+27          call     ksedst1()            0 ? 1 ? 
  31. ksedmp()+557         call     ksedst()             0 ? D ? CBD2D20 ? 2A ? 
  32.                                                    CBD2D20 ? 2A ? 

看样子是smon_scn_time表出了问题。这个表smon进程约每6秒更新一次,写入scn与time的map信息。创建语句如下:

  1. create cluster smon_scn_to_time ( 
  2.   thread number                         /* thread, compatibility */ 
  3. create index smon_scn_to_time_idx on cluster smon_scn_to_time 
  4. create table smon_scn_time ( 
  5.   thread number,                         /* thread, compatibility */ 
  6.   time_mp number,                        /* time this recent scn represents */ 
  7.   time_dp date,                          /* time as date, compatibility */ 
  8.   scn_wrp number,                        /* scn.wrp, compatibility */ 
  9.   scn_bas number,                        /* scn.bas, compatibility */ 
  10.   num_mappings number, 
  11.   tim_scn_map raw(1200), 
  12.   scn number default 0,                  /* scn */ 
  13.   orig_thread number default 0           /* for downgrade */ 
  14. ) cluster smon_scn_to_time (thread) 
  15.  
  16. create unique index smon_scn_time_tim_idx on smon_scn_time(time_mp) 
  17.  
  18. create unique index smon_scn_time_scn_idx on smon_scn_time(scn) 

执行查询:

  1. select  count(*) from sys.smon_scn_time; 
  2.  
  3. ERROR at line 1: 
  4. ORA-00600: internal error code, arguments: [4000], [2521], [], [], [], [], [], 
  5. [] 

但是一下语句却可以正确执行:

select * from smon_scn_time where rownum<1000; 

执行到rownum<2000时,也出现了ORA-00600错误。数据库down掉。

考虑是否数据库坏块,执行数据坏块检查:

  1. [oracle@node1 tftdb]$ dbv file=SYSTEM01.DBF blocksize=8192   
  2.  
  3. DBVERIFY: Release 10.2.0.1.0 - Production on Mon Oct 15 15:46:44 2012 
  4.  
  5. Copyright (c) 1982, 2005, Oracle.  All rights reserved. 
  6.  
  7. DBVERIFY - Verification starting : FILE = SYSTEM01.DBF 
  8.  
  9.  
  10. DBVERIFY - Verification complete 
  11.  
  12. Total Pages Examined         : 88320 
  13. Total Pages Processed (Data) : 50252 
  14. Total Pages Failing   (Data) : 0 
  15. Total Pages Processed (Index): 19344 
  16. Total Pages Failing   (Index): 0 
  17. Total Pages Processed (Other): 1785 
  18. Total Pages Processed (Seg)  : 0 
  19. Total Pages Failing   (Seg)  : 0 
  20. Total Pages Empty            : 16939 
  21. Total Pages Marked Corrupt   : 0 
  22. Total Pages Influx           : 0 
  23. Highest block SCN            : 4458516 (0.4458516) 
  24. [oracle@node1 tftdb]$ 

没有发现坏块。

  • 1
  • 2
  • 下一页

相关内容