I'm running Oracle 220.127.116.11.0 on HP-UX 9000; i have 3 controlfiles. The directory on witch one of them resides got full, and oracle failed to write to that controlfile.
1- why oracle doesn’t shutdown?
2- why oracle wrote to the 2 others control files while there no more on sync whit the one that failed?
3- how oracle writes to the CTL files (series or parallel?)
4- What happens if oracle fails to write to one of CTL?
1. Oracle didn't shutdown because other two control files were still available.
2. That is the feature in Oracle; If one control file fails or lost it continues to write to other control files.
3. It writes parallaly to the control files however redo log files are used in a cyclic manner.
4. If you have more than one control files (and you should always have it) nothing will happen to Oracle if it fails to write to one control file. You can just copy the good contol file after shutting down the database.
When startup oracle uses the first control file fo rinternal verification. You can change the order in the init file so the oracle doesnpt refer to the control file in trouble. If you have three control files you are safe 'cause if any one of the control files are corrupted then just replace the fiel with a uncorrupted one.
1) The Controlfile is the first control file, before shutting down Oracle Synchronizes the System Change Numbers.. It is unable to do that cos of the size got full.
2 & 3) As Oracle writes Parallaly in the control file it was able to write in Other files.
4) Oralce will generate an error message..
By removing the address of this Control file from INIT file.. will do