Well to start with you are using MTS since there are dispatchers and shared servers.
Secondly the controlfile must be multiplexed, find the other copy and copy it on the one with bad block (overwrite it), may be itīs better make a copy of the corrupted controlfile just in case.
If you dont have any copy you will have to recreate the controlfile manually. Who is the DBA there? Or the guy who was in charge of it, he should has a script generated bwith command
alter database backup controlfile to trace;
and with the script you can recreate the cntrolfile easily. If he hasnt got one then you will have to create it manually which is a bit trickier
i am the most Knowledgeable person in my co. as far as oracle is coincerned. and this is my first brush with such a problem. sad but true. i tried searching for backup files but i didnt find one. that might be because i didnt backup any cntrl file. can u give me any source where i can find out the prodedure to create one. or is it simply better to reinstall oracle. i have some data and will be losing only some of it. i will need a day or two to process that data. what is better please advice. thanks
check your initSID.ora and look for parameter
This tells if your controlfile are multiplexed and where they are.If you have only one then create manually
It looks something like
CREATE CONTROLFILE REUSE DATABASE "DB_NAME_HERE" NORESETLOGS NOARCHIVELOG
GROUP 1 (
) SIZE 10M,
GROUP 2 (
) SIZE 10M
where datafiles are all the datafiles in your database with exact PATH, same with LOGFILES
here is what my init.ora says
control_files = "D:\Oracle\oradata\finsati\control01.ctl"
control_files = "D:\Oracle\oradata\finsati\control03.ctl"
control_files = "D:\Oracle\oradata\finsati\control02.ctl"
are these all files copy of each other or are they all different files. do i need to create all or any one particular control file ?
I dont know which controlfile is corrupted so I suggest you before procede backup all three control files in other disk or directory.
Now I think we have to guess which file is corrupt, start with the first control file, delete it and substitute it with second one, after substitution rename it so itīs name is same as first control file. Start the database if you get same error this means that the second control file is corrupted. Just change the corrupted one with the good one and rename them respectively.
Take a full backup including control files, redo log files, data files, init.ora, config.ora files.
If control01 is corrupted, delete control01 then copy control02 to control01.
Then startup the instance.
tried that as well but it doesnt work. think i will go home and start fresh tomorrow morn. will get back to u with the results tom. bye and thanks a lot for your help.
if that still doesnt work I dunno what can be wrong :o
Are you sure you have tried with all three control files? You must be very very unlucky to corrupt all of them! But then again since they are in same directory may be they share same OS Blocks....
(Normally every DBA after that kind of failure considers at least 3 copies of control files on 3 different (physical) disks.)
Today I also had hard disk failure of developers DB but was lucky because it was not permanent - I managed to copy data files from this corrupt disk to another disk and after did what you was already advised (edit init.ora control_files to point to new location and 'alter database rename file ...') DB worked again. So just try this as well: NT will check CRC for you.
Use the create control file option. Pls see the Oracle ref. guide for more details.