ORA-01207:文件比控制文件更新 - 旧的控制件

ORA-01207:文件比控制文件更新 - 旧的控制件

 

http://www.cnblogs.com/emanlee/archive/2011/11/17/2253294.html

 

根据oracle文档的解释: 
Cause: The control file change sequence number in the datafile is greater than the number in the control file. This implies that the wrong control file is being used. Note that repeatedly causing this error can make it stop happening without correcting the real problem. Every attempt to open the database will advance the control file change sequence number until it is great enough. 
Action: Use the current control file or do BACKUP CONTROLFILE RECOVERY to make the control file current. Be sure to follow all restrictions on doing a BACKUP CONTROLFILE RECOVERY. 
Solution: 
1. Check alert file,kill monitor process 
2. Startup mount, 
3. “alter database backup control to trace” 
4. Find the trace file,and open it 
5. Startup nomount 
6. recreate controlfile using resetlogs 
7. “recover database using backup controlfile” 
8. “alter database open resetlogs;” 
9. “alter tablespace temp add tempfile '.dbf' reuse;” 

以下再详细步骤:

oracle…

oarcle\ora92\bin\sqlplus /nolog

1.SQL> connect /as sysdba

2.SQL> shutdown abort   如果数据库是打开状态,强行关闭

3.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:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\ORCLDW\SYSTEM01.DBF' 
ORA-01207: 文件比控制文件更新 - 旧的控制文件 
4.SQL> alter database backup controlfile to trace as 'e:\controlfile'; 
数据库已更改。 
5.SQL> shutdown immediate    如果数据库是打开状态,则关闭 
ORA-01109: 数据库未打开 
已经卸载数据库 
6.SQL> startup nomount; 
ORACLE 例程已经启动。 
Total System Global Area 105979576 bytes 
Fixed Size 454328 bytes 
Variable Size 79691776 bytes 
Database Buffers 25165824 bytes 
Redo Buffers 667648 bytes

  
7.Editplus之类的编辑器打开在第4步生成的e:\controlfile'文件; 
其实在这个文件中的已经告诉你咋样恢复你的数据库了,找到STARTUP NOMOUNT字样(有好几处),然后下面可以看到类似语句,这个文件有好几个类似的生成控制文件语句,主要针对不同的环境执行不同的语句,象我的数据库没有做任何备份,也不是在归档模式,就执行这句(删除其中的注释行,删除不需要的数据文件,中间不要有任何空行; 碰到错误执行SQL> shutdown abort ;SQL> startup nomount; ) 
SQL>

CREATE CONTROLFILE REUSE DATABASE "ZFXFZB" RESETLOGS  NOARCHIVELOG 
    MAXLOGFILES 50 
    MAXLOGMEMBERS 5 
    MAXDATAFILES 100 
    MAXINSTANCES 1 
    MAXLOGHISTORY 680 
LOGFILE 
  GROUP 1 'E:\ORACLE\ORADATA\ZFXFZB\REDO01.LOG'  SIZE 100M, 
  GROUP 2 'E:\ORACLE\ORADATA\ZFXFZB\REDO02.LOG'  SIZE 100M, 
  GROUP 3 'E:\ORACLE\ORADATA\ZFXFZB\REDO03.LOG'  SIZE 100M 
DATAFILE 
  'E:\ORACLE\ORADATA\ZFXFZB\SYSTEM01.DBF', 
  'E:\ORACLE\ORADATA\ZFXFZB\UNDOTBS01.DBF', 
  'E:\ORACLE\ORADATA\ZFXFZB\CWMLITE01.DBF', 
  'E:\ORACLE\ORADATA\ZFXFZB\DRSYS01.DBF', 
  'E:\ORACLE\ORADATA\ZFXFZB\EXAMPLE01.DBF', 
  'E:\ORACLE\ORADATA\ZFXFZB\INDX01.DBF', 
  'E:\ORACLE\ORADATA\ZFXFZB\ODM01.DBF', 
  'E:\ORACLE\ORADATA\ZFXFZB\TOOLS01.DBF', 
  'E:\ORACLE\ORADATA\ZFXFZB\USERS01.DBF', 
  'E:\ORACLE\ORADATA\ZFXFZB\XDB01.DBF', 
  'E:\ORACLE\ORADATA\ZFXFZB\ZFXFZB.ORA' 
CHARACTER SET ZHS16GBK 
;

执行上面这段语句,这个语句重建控制文件,然后你可以看着e:\controlfile'文件完成下面的恢复工作了, 
8.SQL>RECOVER DATABASE    (恢复指定表空间、数据文件或整个数据库) ; 即使出现错误也可以正常使用。

    SQL>ALTER DATABASE OPEN resetlogs;      ; 即使出现错误也可以正常使用。 
9.SQL>ALTER DATABASE OPEN;     打开数据库 ; 即使出现错误也可以正常使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值