Windows环境下的Oracle 11g在一次关机后,无法正常启动,且无法启动到mount状态,一直提示:
ORA-03113: end-of-file on communication channel
Process ID: 4276
Session ID: 1286Serial number: 2
在D:\app\Administrator\diag\rdbms\wind\wind\trace目录里找到相应号码的trc文件查看,发现如下提示:
Error:kccpb_sanity_check_2
Control filesequence number mismatch!
fhcsq: 168754bhcsq: 168757 cfn 0
所以确认为控制文件问题引起。
首先退出了SQLPLUS,然后把库文件所在的整个目录备份了一份。
然后尝试restore控制文件:
C:\> rman target/
RMAN> shutdownimmediate
RMAN> startupnomount
RMAN> restorecontrolfile from ‘D:\ptc\Windchill_10.0\ocu\oradata\wind\CONTROL03_WIND.CTL’;
完成以上操作后,重新进入SQLPLUS,启动数据库时问题依旧。
可以确认所有控制文件全部出了问题,因库文件等都存在,所以决定重建控制文件:
C:\> sqlplus /nolog
SQL> conn / as sysdba
SQL> shutdown immediate
SQL> startup nomount
SQL> CREATE CONTROLFILE REUSE DATABASE "WIND"NORESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXDATAFILES 100
MAXINSTANCES 2
MAXLOGHISTORY 453
LOGFILE
GROUP 1'D:\ptc\Windchill_10.0\ocu\oradata\wind\WINDREDO01.LOG' SIZE 50M,
GROUP 2'D:\ptc\Windchill_10.0\ocu\oradata\wind\WINDREDO02.LOG' SIZE 50M,
GROUP 3'D:\ptc\Windchill_10.0\ocu\oradata\wind\WINDREDO03.LOG' SIZE 50M
DATAFILE
'D:\ptc\Windchill_10.0\ocu\oradata\wind\WINDBLOBS01.DBF',
'D:\ptc\Windchill_10.0\ocu\oradata\wind\WINDINDEX01.DBF',
'D:\ptc\Windchill_10.0\ocu\oradata\wind\WINDSYSAUX01.DBF',
'D:\ptc\Windchill_10.0\ocu\oradata\wind\WINDSYSTEM01.DBF',
'D:\ptc\Windchill_10.0\ocu\oradata\wind\WINDUNDOTBS01.DBF',
'D:\ptc\Windchill_10.0\ocu\oradata\wind\WINDUSERS01.DBF',
'D:\ptc\Windchill_10.0\ocu\oradata\wind\WINDWCAUDIT01.DBF'
CHARACTER SET ZHS16GBK;
SQL> RECOVER DATABASE;
SQL> alter database open;
SQL> alter tablespace temp
add tmpfile'D:\ptc\Windchill_10.0\ocu\oradata\wind\WINDTEMP01.DBF'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE 5G;
完成以上步骤后,重启数据库正常。