案例出錯情況:
[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
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
知識共享~共同進步
轉載請註明: