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导出数据库,重建数据库。
至此数据库恢复完成!