記一次無歸檔恢復ORA-00600: internal error code, arguments: [4194]

parknkjun發表於2015-08-14
幫某客戶恢復資料,只有資料檔案與控制檔案,歸檔已經全部刪除,recover時報錯,系統表空間資料檔案system01.dbf 需要恢復,所以決定重建controlfile
CREATE CONTROLFILE REUSE DATABASE "JZH" RESETLOGS FORCE LOGGING ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 2
    MAXDATAFILES 2000
    MAXINSTANCES 8
    MAXLOGHISTORY 4844
LOGFILE
  GROUP 1 (
    '/xxxx/JZH/redo01a.log',
    '/xxxx/JZH/redo01b.log'
  ) SIZE 100M,
  GROUP 2 (
    '/xxxx/JZH/redo02a.log',
    '/xxxx/JZH/redo02b.log'
  ) SIZE 100M,
  GROUP 3 (
    '/xxxx/JZH/redo03a.log',
    '/xxxx/JZH/redo03b.log'
  ) SIZE 100M
.................................................
.................................................
.............................................略.
Control file created.

再以resetlogs方式開啟資料庫
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-00603: ORACLE server session terminated by fatal error

檢查alert日誌發現如下報錯:
Opening with internal Resource Manager plan
Thu Aug 13 10:42:51 CST 2015
Errors in file /oracle/product/admin/JZH/udump/JZH_ora_26428.trc:
ORA-00600: internal error code, arguments: [4194], [69], [55], [], [], [], [], []
Doing block recovery for file 2 block 2266363
Resuming block recovery (PMON) for file 2 block 2266363
Block recovery from logseq 1, block 83 to scn 7291729705792
Thu Aug 13 10:42:54 CST 2015
Recovery of Online Redo Log: Thread 1 Group 1 Seq 1 Reading mem 0
  Mem# 0: /xxxx/JZH/redo01a.log
  Mem# 1: /xxxx/JZH/redo01b.log
ORA-00600 [4194]錯誤是由回滾段異常導致,所以決定利用隱含引數_corrupted_rollback_segments遮蔽_SYSSMU1$..._SYSSMU10$ 10個回滾段,保留system回滾段,並且將undo_management改為manual方式。

SQL> create pfile='/home/oracle/initjzh.ora' from spfile;
File created.
SQL> shu immedite
SP2-0717: illegal SHUTDOWN option
SQL> shu immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
Vi /home/oracle/initjzh.ora,新增如下內容:
undo_management='MANUAL'
_corrupted_rollback_segments='_SYSSMU1$','_SYSSMU2$','_SYSSMU3$','_SYSSMU4$','_SYSSMU5$','_SYSSMU6$','_SYSSMU7$','_SYSSMU8$','_SYSSMU9$','_SYSSMU10$'

開啟資料庫:
SQL> startup pfile=/home/oracle/initjzh.ora
ORACLE instance started.

Total System Global Area 4311744512 bytes
Fixed Size                  2101840 bytes
Variable Size            1191185840 bytes
Database Buffers         3103784960 bytes
Redo Buffers               14671872 bytes
Database mounted.
Database opened.
SQL> select name,open_mode from v$database;

NAME      OPEN_MODE
--------- ----------
jzh       READ WRITE

後續需要做如下工作:
1、
為臨時表空間新增tempfile
SQL>alter temporary tablespace temp add tempfile ‘’;

2、
 建立新的undo tablespace
SQL>create undo tablespace undotbs2 datafile ‘’;

3、去掉_corrupted_rollback_segments隱含引數,將undo_management改為”auto”,將undo_tablespace改為undotbs2

4、建立spfile檔案

5、exp/expdp匯出資料庫,重建資料庫。

至此資料庫恢復完成!






來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10271187/viewspace-1770799/,如需轉載,請註明出處,否則將追究法律責任。

相關文章