案例出错情况:
[oracle@elvis ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Wed Oct 17 15:05:42 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 598437888 bytes
Fixed Size 1338140 bytes
Variable Size 394265828 bytes
Database Buffers 197132288 bytes
Redo Buffers 5701632 bytes
Database mounted.
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [4194], [0x0], [
警告日志错误信息如下:
SMON: enabling tx recovery
*********************************************************************
WARNING: The following temporary tablespaces contain no files.
This condition can occur when a backup controlfile has
been restored. It may be necessary to add files to these
tablespaces. That can be done using the SQL statement:
ALTER TABLESPACE <tablespace_name> ADD TEMPFILE
Alternatively, if these temporary tablespaces are no longer
needed, then they can be dropped.
Empty temporary tablespace: TEMP
*********************************************************************
Database Characterset is ZHS16GBK
No Resource Manager plan active
Errors in file /u01/oracle/diag/rdbms/elvis/elvis/trace/elvis_ora_4502.trc (incident=53064):
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
Incident details in: /u01/oracle/diag/rdbms/elvis/elvis/incident/incdir_53064/elvis_ora_4502_i53064.trc
Wed Oct 17 15:06:54 2012
Trace dumping is performing id=[cdmp_20121017150654]
Wed Oct 17 15:06:55 2012
Doing block recovery for file 3 block 16185
No block recovery was needed
Errors in file /u01/oracle/diag/rdbms/elvis/elvis/trace/elvis_smon_4422.trc (incident=53016):
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
Incident details in: /u01/oracle/diag/rdbms/elvis/elvis/incident/incdir_53016/elvis_smon_4422_i53016.trc
Wed Oct 17 15:06:58 2012
Doing block recovery for file 3 block 16185
No block recovery was needed
Errors in file /u01/oracle/diag/rdbms/elvis/elvis/trace/elvis_ora_4502.trc (incident=53065):
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
Incident details in: /u01/oracle/diag/rdbms/elvis/elvis/incident/incdir_53065/elvis_ora_4502_i53065.trc
Non-fatal internal error happenned while SMON was doing shrinking of rollback segments.
SMON encountered 1 out of maximum 100 non-fatal internal errors.
Trace dumping is performing id=[cdmp_20121017150659]
Doing block recovery for file 3 block 16185
No block recovery was needed
Errors in file /u01/oracle/diag/rdbms/elvis/elvis/trace/elvis_ora_4502.trc (incident=53066):
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
Incident details in: /u01/oracle/diag/rdbms/elvis/elvis/incident/incdir_53066/elvis_ora_4502_i53066.trc
Trace dumping is performing id=[cdmp_20121017150703]
Doing block recovery for file 3 block 16185
No block recovery was needed
Errors in file /u01/oracle/diag/rdbms/elvis/elvis/trace/elvis_ora_4502.trc (incident=53067):
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
Incident details in: /u01/oracle/diag/rdbms/elvis/elvis/incident/incdir_53067/elvis_ora_4502_i53067.trc
Wed Oct 17 15:07:06 2012
Trace dumping is performing id=[cdmp_20121017150706]
Wed Oct 17 15:07:08 2012
Errors in file /u01/oracle/diag/rdbms/elvis/elvis/trace/elvis_ora_4502.trc:
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
Errors in file /u01/oracle/diag/rdbms/elvis/elvis/trace/elvis_ora_4502.trc:
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
Error 600 happened during db open, shutting down database
USER (ospid: 4502): terminating the instance due to error 600
Instance terminated by USER, pid = 4502
ORA-1092 signalled during: ALTER DATABASE OPEN...
Doing block recovery for file 3 block 16185
No block recovery was needed
Errors in file /u01/oracle/diag/rdbms/elvis/elvis/trace/elvis_ora_4502.trc (incident=53068):
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
Errors in file /u01/oracle/diag/rdbms/elvis/elvis/trace/elvis_ora_4502.trc:
ORA-27300: OS system dependent operation:semctl failed with status: 22
ORA-27301: OS failure message: Invalid argument
ORA-27302: failure occurred at: sskgpwpost1
ORA-27303: additional information: semid = 131073
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
Doing block recovery for file 3 block 16185
No block recovery was needed
Errors in file /u01/oracle/diag/rdbms/elvis/elvis/trace/elvis_ora_4502.trc (incident=53069):
ORA-00600: internal error code, arguments: [4194], [0x0], [
Errors in file /u01/oracle/diag/rdbms/elvis/elvis/trace/elvis_ora_4502.trc:
ORA-00600: internal error code, arguments: [4194], [0x0], [
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [4194], [0x0], [], [], [], [], [], [], [], [], [], []
Wed Oct 17 15:07:14 2012
Errors in file /u01/oracle/diag/rdbms/elvis/elvis/trace/elvis_ora_4502.trc (incident=54113):
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [4194], [0x0], [
Incident details in: /u01/oracle/diag/rdbms/elvis/elvis/incident/incdir_54113/elvis_ora_4502_i54113.trc
Errors in file /u01/oracle/diag/rdbms/elvis/elvis/incident/incdir_54113/elvis_ora_4502_i54113.trc:
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [4194], [0x0], [
原因:从上述警告日志可以看出有很多的undo块需要修复且需要应用到redo,但很显然No block recovery was needed这句话,说明没有恢复成功,这就导致前滚失败,redo和Undo的seq#(序列号)不一致,就会报ORA-4194等的错误,详情可以参考,我小翻译的MOS里的一篇文章,连接地址:经过查询MOS里的文章解决方法如下:http://blog.csdn.net/elvis_dataguru/article/details/8082800
解决方法——删除undo表空间
(1)创建pfile文件 --为了设置一个隐藏参数
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 598437888 bytes
Fixed Size 1338140 bytes
Variable Size 394265828 bytes
Database Buffers 197132288 bytes
Redo Buffers 5701632 bytes
SQL> create pfile='/u01/corrupt.ora' from spfile;
File created.
SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
(2)修改corrupt.ora文件&&修改undo_management=manual
*._allow_resetlogs_corruption=TRUE
*.audit_file_dest='/u01/oracle/admin/elvis/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/u01/oracle/oradata/elvis/control01.ctl','/u01/oracle/flash_recovery_area/elvis/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='elvis'
*.db_recovery_file_dest='/u01/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=5218762752
*.diagnostic_dest='/u01/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=elvisXDB)'
*.memory_target=598736896
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
*.undo_management='MANUAL'
~
SQL> startup mount pfile='/u01/corrupt.ora'
ORACLE instance started.
Total System Global Area 598437888 bytes
Fixed Size 1338140 bytes
Variable Size 394265828 bytes
Database Buffers 197132288 bytes
Redo Buffers 5701632 bytes
Database mounted.
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string MANUAL
undo_retention integer 900
undo_tablespace string UNDOTBS1
这个需要改为manual
SQL> alter database open;
Database altered.
创建新的undo表空间
SQL> create undo tablespace undotbs02 datafile '/u01/oracle/oradata/elvis/undotbs02.dbf' size 500m;
Tablespace created.
删除旧的undo表空间
SQL> select tablespace_name from dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
TEST
UNDOTBS02
7 rows selected.
SQL> drop tablespace undotbs1 including contents and datafiles;
Tablespace dropped.
看下物理文件
[oracle@elvis elvis]$ ll
total 2080736
drwxr-xr-x 2 oracle oinstall 4096 Oct 13 19:49 bak
-rw-r----- 1 oracle oinstall 10076160 Oct 17 18:49 control01.ctl
-rw-r----- 1 oracle oinstall 52429312 Oct 17 18:37 redo01.log
-rw-r----- 1 oracle oinstall 52429312 Oct 17 18:37 redo02.log
-rw-r----- 1 oracle oinstall 52429312 Oct 17 18:49 redo03.log
-rw-r----- 1 oracle oinstall 629153792 Oct 17 18:48 sysaux01.dbf
-rw-r----- 1 oracle oinstall 734011392 Oct 17 18:48 system01.dbf
-rw-r----- 1 oracle oinstall 71311360 Oct 8 08:50 temp01.dbf
-rw-r----- 1 oracle oinstall 52436992 Oct 17 18:37 test01.dbf
-rw-r----- 1 oracle oinstall 524296192 Oct 17 18:45 undotbs02.dbf
-rw-r----- 1 oracle oinstall 5251072 Oct 17 18:37 users01.dbf
可以看到undotbs1的表空间文件也相应的删除了
(3)使用spfile参数文件打开数据库
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup nomount
ORACLE instance started.
Total System Global Area 598437888 bytes
Fixed Size 1338140 bytes
Variable Size 394265828 bytes
Database Buffers 197132288 bytes
Redo Buffers 5701632 bytes
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
SQL> alter system set undo_tablespace=undotbs02 scope=spfile;
System altered.
SQL> shutdown immediate;
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 598437888 bytes
Fixed Size 1338140 bytes
Variable Size 394265828 bytes
Database Buffers 197132288 bytes
Redo Buffers 5701632 bytes
Database mounted.
Database opened.
可以看到数据库正常开启。
总结:遇到问题,仔细分析,肯定找出错误和错误的解决方法,也没什么可说的了,前面原理和解决方法也都写了,关于ORA-600[41XX]这种错误基本都属于Undo的错误。
elvis
2012.10.17
知识共享~共同进步
转载请注明:
http://blog.csdn.net/elvis_dataguru/article/details/8082834