The controlfile header block returned by the OS has a sequence number that is too old. (Doc ID 1589355.1)
Database instance went down with following error message in alert log: --- Wed Sep 11 23:26:39 2013 ********************* ATTENTION: ******************** The controlfile header block returned by the OS has a sequence number that is too old. The controlfile might be corrupted. PLEASE DO NOT ATTEMPT TO START UP THE INSTANCE without following the steps below. RE-STARTING THE INSTANCE CAN CAUSE SERIOUS DAMAGE TO THE DATABASE, if the controlfile is truly corrupted. In order to re-start the instance safely, please do the following: (1) Save all copies of the controlfile for later analysis and contact your OS vendor and Oracle support. (2) Mount the instance and issue: ALTER DATABASE BACKUP CONTROLFILE TO TRACE; (3) Unmount the instance. (4) Use the script in the trace file to RE-CREATE THE CONTROLFILE and open the database. ***************************************************** USER (ospid: 24051722): terminating the instance ---
BUG 14281768 - CONTROL FILE GETS CORRUPTED
Which was closed as Vendor OS/Software/Framework Problem
Error is typically raised when the Controlfile is overwritten by an older copy of the Controlfile. Most likely this happened due to Storage OR I/o error. All copies of the control file must have the same internal sequence number for Oracle to start up the database or shut it down in normal or immediate mode.
The solution is actually given with the accompained message :-
(1) Save all copies of the controlfile for later analysis and contact your OS vendor and Oracle support. (2) Mount the instance and issue: ALTER DATABASE BACKUP CONTROLFILE TO TRACE; (3) Unmount the instance. (4) Use the script in the trace file to RE-CREATE THE CONTROLFILE and open the database.
To make a sanity check in the future , please set the following parameter :- SQL> alter system set "_controlfile_update_check"='HIGH' scope=spfile; -- then bounce the database. Please check with your OS System/Storage admin regarding the issue. The precautions is to relocate the control file on a fast and direct I/O enabled disk , the main target is not letting the OS to write an old copy (cached copy of the controlfile to it). To reverse the parameter setting :- SQL> alter system set "_controlfile_update_check"='OFF' scope=spfile; -- then bounce the database.
BUG:7000337 - AIX - CONTROLFILE SEQUENCE NUMBER TOO OLDBUG:14158345 - ORA-1122, ORA-1208 AND INSTANCE CRASHBUG:14281768 - CONTROL FILE GETS CORRUPTEDNOTE:343030.1 - Control File Is Too Old Error On Database Open Ora-1122NOTE:20324049.8 - Bug 20324049 - ORA-227 Controlfile Corruption when reaching Maximum Value for Control Seq kccfhcsqBUG:20324049 - ORA-227 CONTROLFILE CORRUPTION WHEN REACHING MAX VALUE FOR CONTROL SEQ KCCFHCSQ
当前版本是11.2.0.4,本质原因是由于IO性能太差,导致控制文件书写不同步,数据库检查到控制文件信息不一致,认为控制文件可能损坏,因此强制断开客户端连接,官方根除的解决方法是调整隐含参数,不对控制文件的修改作检查,但是这不是解决问题的根本,根本还是在调整IO,否则不排除出现真正的控制文件损坏.