Oracle 11g R2 – Fixing ORA-00227: Corrupt Block Detected in Control File

oracleoracle-11g-r2

I am getting the following error while starting the sqlplus (I am using Oracle XE 11.2.0)

ORA-01033: ORACLE initialization or shutdown in progress
Process ID: 0
Session ID: 0 Serial number: 0

So, I did the following..

SQLPLUS> CONN AS sysdba

and then..

SQLPLUS> alter database mount

I am getting the following error for the above command.

alter database mount
*
ERROR at line 1:
ORA-00227: corrupt block detected in control file: (block 3, # blocks 1)
ORA-00202: control file: 'C:\ORACLEXE\APP\ORACLE\ORADATA\XE\CONTROL.DBF'

I have the following files along with CONTROL.DBF in the same folder.

CONTROL.DBF
SYSAUX.DBF
SYSTEM.DBF
TEMP.DBF
UNDOTBS1.DBF
USERS.DBF

I also tried disk check on the C:\ drive, and Windows said it repaired the CONTROL.DBF file but still, I am getting the same error.

Thanks in advance. Hope you will reply as soon as possible.

Best Answer

Move control.dbf to control.dbf.damaged.20140706

connect / as sysdba
show parameter control

Verify here you have had only a single control file and not two or three of them. If you have had more than one control file, then this instruction is not for you.

STARTUP FORCE NOMOUNT;

CREATE CONTROLFILE DATABASE "XE" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 'C:\ORACLEXE\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ONLINELOG\log_file_1' SIZE 50M,
GROUP 2 'C:\ORACLEXE\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ONLINELOG\log_file_2' SIZE 50M
DATAFILE
'C:\ORACLEXE\ORADATA\XE\SYSTEM.DBF',
'C:\ORACLEXE\ORADATA\XE\UNDO.DBF',
'C:\ORACLEXE\ORADATA\XE\SYSAUX.DBF',
'C:\ORACLEXE\ORADATA\XE\USERS.DBF'
CHARACTER SET AL32UTF8
;
ALTER DATABASE OPEN;