您的位置:首页 > 数据库 > Oracle

Oracle Ora-00600 4194错误的解决方法

2010-12-06 14:55 786 查看
  问题:我的数据库重新启动后,出现了Ora-00600 4194错误,具体的日志如下:

  Sat Jan 21 13:55:21 2006

  Errors in file /opt/oracle/admin/conner

  /bdump/conner_smon_17113.trc:

  ORA-00600: internal error code, arguments:

  [4194], [43], [46], [], [], [], [], []

  Sat Jan 21 13:55:21 2006

  Errors in file /opt/oracle/admin/conner

  /udump/conner_ora_17121.trc:

  ORA-00600: internal error code, arguments:

  [4194], [45], [44], [], [], [], [], []

  请问应该用什么办法解决?

  答:具体的解决办法是通过备份来进行恢复,因为Ora-00600 4194错误的出现说明UNDO段出现了问题,如果你没有备份,业可以通过特殊的初始化参数进行强制启动,下文针对Oracle的隐含参数进行恢复说明(由于你的实际情况可能会有所出入,所以请你进行测试前先行备份)。

  ◆首先你需要确定当前的回滚段名称,注释:(可以从alert文件中获得)

  Sat Jan 21 13:55:21 2006

  Undo Segment 11 Onlined

  Undo Segment 12 Onlined

  Undo Segment 13 Onlined

  Successfully onlined Undo Tablespace 16.

  ◆注意:对应的AUM (auto undo management) 下的回滚段名称为:

  '_SYSSMU11$','_SYSSMU12$','_SYSSMU13$'

  ◆此时你可以修改init.ora参数文件,使用Oracle隐含参数_corrupted_rollback_segments将回滚段标记为损坏,然后启动数据库,Oracle则会跳过对于这些回滚段的相关操作,强制启动数据库。

  ._corrupted_rollback_segments='_SYSSMU11$','_SYSSMU12$','_SYSSMU13$'

  ◆然后使用init.ora参数文件启动数据库:

  [oracle@jumper dbs]$ sqlplus "/ as sysdba"

  SQL*Plus: Release 9.2.0.4.0 - Production on Sat Jan 21 13:56:47 2006

  Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

  Connected to an idle instance.

  SQL> startup pfile=initconner.ora

  ORACLE instance started.

  Total System Global Area 97588504 bytes

  Fixed Size 451864 bytes

  Variable Size 33554432 bytes

  Database Buffers 62914560 bytes

  Redo Buffers 667648 bytes

  Database mounted.

  Database opened.

  至此数据库正常Open。

  ◆注意观察alert文件所获得的如下信息:

  Sat Jan 21 13:57:03 2006

  SMON: enabling tx recovery

  SMON: about to recover undo segment 11

  SMON: mark undo segment 11 as needs recovery

  SMON: about to recover undo segment 12

  SMON: mark undo segment 12 as needs recovery

  SMON: about to recover undo segment 13

  SMON: mark undo segment 13 as needs recovery

  Sat Jan 21 13:57:03 2006

  Database Characterset is ZHS16GBK

  Sat Jan 21 13:57:03 2006

  SMON: about to recover undo segment 11

  SMON: mark undo segment 11 as needs recovery

  SMON: about to recover undo segment 12

  SMON: mark undo segment 12 as needs recovery

  SMON: about to recover undo segment 13

  SMON: mark undo segment 13 as needs recovery

  Sat Jan 21 13:57:04 2006

  Created Undo Segment _SYSSMU1$

  Undo Segment 1 Onlined

  Completed: ALTER DATABASE OPEN

  aSat Jan 21 14:02:11 2006

  SMON: about to recover undo segment 11

  SMON: mark undo segment 11 as needs recovery

  SMON: about to recover undo segment 12

  SMON: mark undo segment 12 as needs recovery

  SMON: about to recover undo segment 13

  SMON: mark undo segment 13 as needs recovery

  ◆现在你可以重新创建新的UNDO表空间,删除出现问题的表空间,修改参数文件,由参数文件生成新的spfile,然后重新启动数据库:

  SQL> create undo tablespace undotbs1

  2 datafile '/opt/oracle/oradata/conner/undotbs1.dbf' size 10M;

  Tablespace created.

  SQL> alter system set undo_tablespace=undotbs1;

  System altered.

  SQL> drop tablespace undotbs2;

  Tablespace dropped.

  ◆请注意此时的alert文件记录的:

  Sat Jan 21 14:03:29 2006

  create undo tablespace undotbs1

  datafile '/opt/oracle/oradata/conner/undotbs1.dbf' size 10M

  Sat Jan 21 14:03:29 2006

  Created Undo Segment _SYSSMU2$

  Created Undo Segment _SYSSMU3$

  Created Undo Segment _SYSSMU4$

  Created Undo Segment _SYSSMU5$

  Created Undo Segment _SYSSMU6$

  Created Undo Segment _SYSSMU7$

  Created Undo Segment _SYSSMU8$

  Created Undo Segment _SYSSMU9$

  Created Undo Segment _SYSSMU10$

  Created Undo Segment _SYSSMU14$

  Starting control autobackup

  Control autobackup written to DISK device

  handle '/opt/oracle/product/9.2.0/dbs/c-3152029224-20060121-00'

  Completed: create undo tablespace undotbs1

  datafile '/opt/ora

  Sat Jan 21 14:03:43 2006

  Undo Segment 2 Onlined

  Undo Segment 3 Onlined

  Undo Segment 4 Onlined

  Undo Segment 5 Onlined

  Undo Segment 6 Onlined

  Undo Segment 7 Onlined

  Undo Segment 8 Onlined

  Undo Segment 9 Onlined

  Undo Segment 10 Onlined

  Undo Segment 14 Onlined

  Successfully onlined Undo Tablespace 1.

  Undo Segment 1 Offlined

  Undo Tablespace 16 successfully switched out.

  Sat Jan 21 14:03:43 2006

  ALTER SYSTEM SET undo_tablespace='UNDOTBS1' SCOPE=MEMORY;

  Sat Jan 21 14:07:18 2006

  SMON: about to recover undo segment 11

  SMON: mark undo segment 11 as needs recovery

  SMON: about to recover undo segment 12

  SMON: mark undo segment 12 as needs recovery

  SMON: about to recover undo segment 13

  SMON: mark undo segment 13 as needs recovery

  Sat Jan 21 14:08:06 2006

  drop tablespace undotbs2

  Sat Jan 21 14:08:07 2006

  Starting control autobackup

  Control autobackup written to DISK device

  handle '/opt/oracle/product/9.2.0/dbs/c-3152029224-20060121-01'

  Completed: drop tablespace undotbs2

  ◆请修改参数文件,变更undo表空间,并取消_corrupted_rollback_segments设置:

  *.undo_tablespace='UNDOTBS1'

  ◆然后由参数文件创建spfile文件。

  SQL> create spfile from pfile;

  File created.

  SQL>shutdown immediate;

  Database closed.Database dismounted.

  ORACLE instance shut down.

  SQL> startup

  ORACLE instance started.

  Total System Global Area 97588504 bytes

  Fixed Size 451864 bytes

  Variable Size 33554432 bytes

  Database Buffers 62914560 bytes

  Redo Buffers 667648 bytes

  Database mounted.Database opened.

  ◆然后重起数据库,观察alert文件:

  Sat Jan 21 14:08:36 2006

  Undo Segment 2 Onlined

  Undo Segment 3 Onlined

  Undo Segment 4 Onlined

  Undo Segment 5 Onlined

  Undo Segment 6 Onlined

  Undo Segment 7 Onlined

  Undo Segment 8 Onlined

  Undo Segment 9 Onlined

  Undo Segment 10 Onlined

  Undo Segment 14 Onlined

  Successfully onlined Undo Tablespace 1.

  ◆此时数据库恢复正常,通常建议立即全库exp,然后重新建库,再imp恢复数据库。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐