遇到ORA-01207: 文件比控制文件更新 - 旧的控制文件解决办法-简单版

Posted zhangshuaihui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了遇到ORA-01207: 文件比控制文件更新 - 旧的控制文件解决办法-简单版相关的知识,希望对你有一定的参考价值。

遇到这样的问题,如ORA-01207: 文件比控制文件更新 - 旧的控制文件

解决问题的思路是重建控制文件

注意:

1、不知道会不会丢一小部分数据。适用于不重要的库和已经停机的业务,或者急救业务。

          可以尝试从不同的地方找原来的control文件,几个不同的control文件如果都一样,说明只能这么恢复,如果不一样,尽量找系统表空间比较新的control去用,因为不涉及用户数据。

2、做之前保存之前的控制文件!!!!

报错如下:

SQL>startup
ORACLE 例程已经启动。
Total System Global Area 293601280 bytes
Fixed Size 1248624 bytes
Variable Size 121635472 bytes
Database Buffers 167772160 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
ORA-01122: 数据库文件 1 验证失败
ORA-01110: 数据文件 1:
‘F:ORACLEPRODUCT10.2.0DB_1ORADATAORCLDWSYSTEM01.DBF‘
ORA-01207: 文件比控制文件更新 - 旧的控制文件

解决办法:

1、将控制文件trace出来
SQL>alter database backup controlfile to trace as ‘D:ak‘;
2、关闭数据库
SQL>shutdown immediate
3、启动到nomount
SQL>startup nomount; 
4、在bak文件中找到STARTUP NOMOUNT字样,然后看到类似语句,这个文件有好几个类似的生成控制文件语句,主要针对不懂的环境执行不同的语句,象我的数据库没有做任何备份,也不是在归档模式,就执行这句。
在D:ak 中将文本复制重建


在SQL>下执行,观察到控制文件更新了。【做之前保存之前的控制文件!!!!】
CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 ‘D:ORADATAORCLREDO01.LOG‘  SIZE 50M BLOCKSIZE 512,
  GROUP 2 ‘D:ORADATAORCLREDO02.LOG‘  SIZE 50M BLOCKSIZE 512,
  GROUP 3 ‘D:ORADATAORCLREDO03.LOG‘  SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
  ‘D:ORADATAORCLSYSTEM01.DBF‘,
  ‘D:ORADATAORCLSYSAUX01.DBF‘,
  ‘D:ORADATAORCLUNDOTBS01.DBF‘,
  ‘D:ORADATAORCLUSERS01.DBF‘,
  ‘D:ORADATATS_BASE01.DBF‘
CHARACTER SET ZHS16GBK
;
5、此时,控制文件可用,启动到mount状态
SQL>alter database mount;
6、进行介质恢复
SQL>RECOVER DATABASE (恢复指定表空间、数据文件或整个数据库)
介质恢复成功
7、打开数据库
SQL>ALTER DATABASE OPEN 打开数据库

以上是关于遇到ORA-01207: 文件比控制文件更新 - 旧的控制文件解决办法-简单版的主要内容,如果未能解决你的问题,请参考以下文章

ORA-01207 old control file完全解决方案

ORA-01207: file is more recent than control file -

ios 10 更新所遇到的坑

“源文件比可执行文件更新”,但不是

如何修复“源文件比字节编译文件更新”错误?

有没有比我的实现更好的方法来检查更新的文件?