ORA-00202: controlfile: 'C:\ORACLE\ORADATA\ORACLE91\CONTROL02.CTL'
ORA-27091: skgfqio: unable to queue I/O
ORA-27070: skgfdisp: async read/write failed
OSD-04006: ReadFile() failure, unable to read from file
O/S-Error: (OS 23) Data error (cyclic redundancy check).

i find this problem on one of my server database. this problem will make oracle fail to mount and open. if you try to connect via sqlplus, you will get error message : Oracle is on initialization startup/shutdown. Database startup will fail because of the error.

below are steps that  we done to resolve the problem. (oracle ver 9i and higher)

1. connect to database using sqlplus with SYS as SYSDBA

2. shutdown immediate the database.

3. create a backup copy of all control file (we multiplex controlfiles into 3 file with extension CTL in 3 separate disk)

4. rename CONTROL02.CTL (the corrupted control file) into CONTROL02.bak

5. Copy and rename CONTROL01.CTL into CONTROL02.CTL.

6.startup the database via sqlplus using SYS as SYSDBA

this step will work only if one of the controlfile is corrupt and need to be replace. and also your controlfile is multiplex. Make sure that the error message is exactly the same with what is written above.