ORA-600[4194]内部错误一般由重做记录与回滚记录不匹配引发。Oracle在验证Undo record number时,会对比redo chang和回滚段中的undo record number,若发现2者存在差异则报该4194错误。其错误argument[a][b],a代表回滚块中的最大undo record number,b代表重做日志中记录的undo record number。这个错误可能由回滚段或者redo log日志文件讹误引起。 此错误不像ORA-600[2662]或ORA-600[4000]错误那样必然导致数据库无法打开,因为它很少出现在前滚阶段;当数据库被打开,smon开始执行事务恢复或一些回滚段的管理工作时则很有可能触发该错误。 来具体看一下错误记录:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Thu Aug 26 18:58:50 2010
Errors  in  file /s01/10gdb/admin/YOUYUS/bdump/youyus_smon_6587.trc:
ORA-01595: error freeing extent (3)  of  rollback  segment (4))
ORA-00600: internal error code, arguments: [4194], [53], [41], [], [], [], [], []
Thu Aug 26 18:58:50 2010
..............
Errors  in  file /s01/10gdb/admin/YOUYUS/bdump/youyus_j000_6630.trc:
ORA-00354: corrupt redo log block header
ORA-00353: log corruption near block 2 change 1617922  time  08/26/2010 18:35:39
ORA-00334: archived log:  '/s01/10gdb/flash_recovery_area/YOUYUS/onlinelog/o1_mf_3_65psr4on_.log'
Thu Aug 26 19:00:31 2010
Errors  in  file /s01/10gdb/admin/YOUYUS/bdump/youyus_j000_6630.trc:
ORA-00600: internal error code, arguments: [4194], [53], [41], [], [], [], [], []
Thu Aug 26 19:00:34 2010
Errors  in  file /s01/10gdb/admin/YOUYUS/bdump/youyus_j000_6630.trc:
ORA-00354: corrupt redo log block header
ORA-00353: log corruption near block 2 change 1617922  time  08/26/2010 18:35:39
ORA-00334: archived log:  '/s01/10gdb/flash_recovery_area/YOUYUS/onlinelog/o1_mf_3_65psr4on_.log'
ORA-00600: internal error code, arguments: [4194], [53], [41], [], [], [], [], []
Thu Aug 26 19:00:35 2010
Errors  in  file /s01/10gdb/admin/YOUYUS/bdump/youyus_j000_6630.trc:
ORA-00354: corrupt redo log block header
ORA-00353: log corruption near block 2 change 1617922  time  08/26/2010 18:35:39
ORA-00334: archived log:  '/s01/10gdb/flash_recovery_area/YOUYUS/onlinelog/o1_mf_3_65psr4on_.log'
ORA-00600: internal error code, arguments: [4194], [53], [41], [], [], [], [], []
如果你因为ORA-600[4194]错误导致数据库无法打开,那么可以尝试设置以下事件:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
SQL>  alter  system  set  event= '10513 trace name context forever,level 2 : 10512 trace name context forever,level 1: 10511 trace name context forever,level 2: 10510 trace name context forever,level 1'  scope=spfile;
System altered.
 
/* 10513事件用以阻止SMON在启动数据库后执行事务恢复( transaction  recovery) */
/* 10512事件用以阻止SMON shrink  rollback  segment */
/* 10511事件用以阻止SMON  check  to  cleanup undo dictionary */
/* 10500事件用以阻止SMON  check  to  offline pending offline  rollback  segment */
 
SQL>  alter  system  set  undo_management=MANUAL scope=spfile;
System altered.
 
SQL> shutdown immediate;
ORA-03113:  end - of -file  on  communication channel
 
SQL> startup mount;
ORACLE instance started.
 
Total System  Global  Area 2634022912 bytes
Fixed  Size                   2086288 bytes
Variable  Size             2382367344 bytes
Database  Buffers          234881024 bytes
Redo Buffers               14688256 bytes
Database  mounted.
SQL>  alter  database  open ;
 
Database  altered.
 
SQL>   create  undo tablespace undoc datafile  size  300M;
 
SQL>  alter  system  set  undo_management=AUTO scope=spfile;
System altered.
 
SQL>   alter  system  set  undo_tablespace=undoc scope=spfile;
System altered.
 
SQL> shutdown immediate;
Database  closed.
Database  dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
 
Total System  Global  Area 2634022912 bytes
Fixed  Size                   2086288 bytes
Variable  Size             2382367344 bytes
Database  Buffers          234881024 bytes
Redo Buffers               14688256 bytes
Database  mounted.
 
SQL>  alter  database  open ;
Database  altered.
 
/* 通过重建undo表空间可以避免一些4194错误,但不是全部 */
 
/* 这个库目前处于随时会crash的不可控状态,我们必须要导出数据并导入到新库中 * /
 
/* 这种情况下direct方式 可能可以规避一些意外错误 */
 
[maclean@rh2 dump]$ exp maclean/maclean file=full_maclean.dmp owner=maclean  direct=y  statistics =none
Export: Release 10.2.0.4.0 - Production  on  Thu Aug 26 21:18:40 2010
Copyright (c) 1982, 2007, Oracle.   All  rights reserved.
Connected  to : Oracle  Database  10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With  the Partitioning, OLAP, Data Mining  and  Real  Application Testing options
Export done  in  ZHS16GBK  character  set  and  UTF8  NCHAR  character  set
 
About  to  export specified users ...
. exporting pre- schema  procedural objects  and  actions
. exporting  foreign  function  library names  for  user  MACLEAN
. exporting  PUBLIC  type synonyms
. exporting private type synonyms
. exporting object type definitions  for  user  MACLEAN
About  to  export MACLEAN 's objects ...
. exporting database links
. exporting sequence numbers
. exporting cluster definitions
. about to export MACLEAN' s tables via Direct Path ...
Table  SYS_EXPORT_TABLE_01 will be exported  in  conventional path.
. . exporting  table             SYS_EXPORT_TABLE_01        256  rows  exported
Table  SYS_EXPORT_TABLE_02 will be exported  in  conventional path.
. . exporting  table             SYS_EXPORT_TABLE_02        257  rows  exported
Table  SYS_EXPORT_TABLE_03 will be exported  in  conventional path.
..............
exporting refresh groups  and  children
. exporting dimensions
. exporting post- schema  procedural objects  and  actions
. exporting  statistics
Export terminated successfully  with  warnings.
 
/* we are lucky! */