数据库连续几次自动停了,
报警文件报:
The controlfile header block returned by the OS has a sequence number that is too old
********************* 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.
*****************************************************
当多副本控制文件内部sequence不一致就会产生该错误。据MOS上文档 1589355.1 的描述,这种情况大多是因为存储错误或者IO错误的情况引起的。 |改进措施 由于暂时无法解决存储端的问题,而且该备库因为此原因发生关闭的情况已经出现了两次,所以为了预防此问题的发生,根据文档1589355.1 的建议,修改隐藏参数_controlfile_update_check= 设置该参数后,每次控制文件更新时,数据库都会去检查控制文件状态。保证数据库的健壮性。 在未来如果解决了IO低效的问题,可以再次将该参数设置为默认值。
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.
|