[小e筆記]之錯誤案例——ora-00603和ora-00600錯誤

案例出錯情況:

[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這句話,說明沒有恢復成功,這就導致前滾失敗,redoUndoseq#(序列號)不一致,就會報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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章