file is more recent than control file - old control file解决方法

问题:
ERROR at line 1:
ORA-01122: database file 1 failed verification check
ORA-01110: data file 1: '/opt/oracle/oradata/quanmai/system01.dbf'
ORA-01207: file is more recent than control file - old control file
ORA-01207: 文件比控制文件更新 - 旧的控制文件

分析:
这个错误是oracle db最常见的错误了,引起的原因很多,但是最主要的一个原因是数据库服务器突然掉电,然后重启启动数据库报错。
究其这个问题产生的原因,其实就是控制文件中记录的db信息太老,导致数据库在启动检测时出现不一致。
控制文件中记录了整个数据库的全部信息,具体包括数据文件的,日志文件等等。
那么为什么会出现控制文件记录的数据库信息太老呢,原因很简单:根据oracle db运行原理,数据库在运行期间,由于检查点发生等原因会不断的更新控制文件,同时数据库在关闭和重启过程中都会更新控制文件的内容,但是数据库服务器突然的掉电,会导致当前的db信息无法适时更新到控制文件中,再次启动数据库后,当oracle检测控制文件和其它文件信息是否一致时,就出现了这个错误。
解决办法:
首先删除old control file,其实也可以不删除,个人习惯,然后重建控制文件。

   #   具体步骤:
1.startup mount
2.alter database backup controlfile to trace
3.create a control file creation script. from the trace file, and use the noresetlogs option
4.shutdown
5.startup nomount Use the script. generated by the 'backup controlfile to trace' command above creaet the control file
6.recover database
7.alter database open

SQL> starup mount
SQL> alter database backup controlfile to trace; --备份控制文件


Database altered.

查看控制文件备份路径
SQL> show parameter user_dump

NAME         TYPE  VALUE
------------------------------------ ----------- ------------------------------
user_dump_dest        string  /opt/oracle/admin/quanmai/udum
       p

 在/opt/oracle/admin/quanmai/udump下可找到最新生成的TRACE文件,例如为quanmai_ora_11157.trc,此文件就包含了当前控制文件的参数及生成语法。

提取ora_15269.trc中有关控制文件生成的语句另存为creatctl.sql(直接保留控制文件的部分即可,很容易)

启动数据库到 STARTUP NOMOUNT 状态然后执行如下create.sql
SQL> @/opt/oracle/admin/quanmai/udump/crate.sql

CREATE CONTROLFILE REUSE DATABASE "QUANMAI" NORESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '/opt/oracle/oradata/quanmai/redo01.log'  SIZE 50M,
  GROUP 2 '/opt/oracle/oradata/quanmai/redo02.log'  SIZE 50M,
  GROUP 3 '/opt/oracle/oradata/quanmai/redo03.log'  SIZE 50M
-- STANDBY LOGFILE
DATAFILE
  '/opt/oracle/oradata/quanmai/system01.dbf',
  '/opt/oracle/oradata/quanmai/undotbs01.dbf',
  '/opt/oracle/oradata/quanmai/sysaux01.dbf',
  '/opt/oracle/oradata/quanmai/users01.dbf',
  '/opt/oracle/oradata/quanmai/example01.dbf',
  '/opt/data1/EAS_D_STANDARD.dbf'
CHARACTER SET WE8ISO8859P1
;

 SQL> recover database;
Media recovery complete.
SQL> alter database open;

Database altered.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值