ITPub博客

首页 > 数据库 > Oracle > 解决ORA-01207“文件比控制文件更新 - 旧的控制文件”的问题

解决ORA-01207“文件比控制文件更新 - 旧的控制文件”的问题

原创 Oracle 作者:xieyunchao 时间:2009-03-15 22:03:32 0 删除 编辑

ORA-01122: 数据库文件 1 验证失败
ORA-01110:
数据文件 1: 'E:ORACLEORADATADB02SYSTEM01.DBF'
ORA-01207:
文件比控制文件更新 - 旧的控制文件

我备份一下数据库的控制文件,以及一个数据文件xyc.dbf。其中,xyc.dbf是用户xyc的默认表空间。

赋予足够的对象权限:

Grant select any talbe to xyc;

xyc登陆:

Conn xyc/admin;

Create table emps as select * from scott.emp;

Conn sys/admin as sysdba;

Shutdown immediate;

这时,我把备份的控制文件和数据文件copy到原来目录。启动数据库:

Startup force;

结果数据库提示:

ORA-01122: 数据库文件 1 验证失败
ORA-01110:
数据文件 1: 'E:ORACLEORADATADB02SYSTEM01.DBF'
ORA-01207:
文件比控制文件更新 - 旧的控制文件

这时候,需要重建控制文件:

alter database backup controlfile to trace as 'f:aa';

这时候,用ue打开f:aa,选取符合数据库的代码做成脚本controlfile.sql:执行该脚本:

@controlfile.sql

SQL> alter database open resetlogs;

alter database open resetlogs

*

1 行出现错误:

ORA-01152: 文件 1 没有从过旧的备份中恢复

ORA-01110: 数据文件 1: 'D:ORACLE10.2.0ORADATAORCLSYSTEM01.DBF'

SQL> alter database open nosetlogs;

alter database open nosetlogs

*

1 行出现错误:

ORA-02288: 无效的 OPEN 模式

SQL> alter database open setlogs;

alter database open setlogs

*

1 行出现错误:

ORA-02288: 无效的 OPEN 模式

SQL> alter database open resetlogs;

alter database open resetlogs

*

1 行出现错误:

ORA-01152: 文件 1 没有从过旧的备份中恢复

ORA-01110: 数据文件 1: 'D:ORACLE10.2.0ORADATAORCLSYSTEM01.DBF'

SQL> recover database using backup controlfile;

ORA-00279: 更改 781657 ( 03/13/2009 20:54:59 生成) 对于线程 1 是必需的

ORA-00289: 建议:

D:ORACLE10.2.0FLASH_RECOVERY_AREAORCLARCHIVELOG2009_03_14O1_MF_1_26_%U_.A

RC

ORA-00280: 更改 781657 (用于线程 1) 在序列 #26

指定日志: {=suggested | filename | AUTO | CANCEL}

D:oracle10.2.0flash_recovery_areaORCLARCHIVELOG2009_03_12O1_MF_1_25_4VL33

L89_.ARC

ORA-00310: 归档日志包含序列 25; 要求序列 26

ORA-00334: 归档日志:

'D:ORACLE10.2.0FLASH_RECOVERY_AREAORCLARCHIVELOG2009_03_12O1_MF_1_25_4VL3

3L89_.ARC'

SQL> alter database open resetlogs;

alter database open resetlogs

*

1 行出现错误:

ORA-01113: 文件 1 需要介质恢复

ORA-01110: 数据文件 1: 'D:ORACLE10.2.0ORADATAORCLSYSTEM01.DBF'

SQL> recover database using backup controlfile;

ORA-00279: 更改 781657 ( 03/13/2009 20:54:59 生成) 对于线程 1 是必需的

ORA-00289: 建议:

D:ORACLE10.2.0FLASH_RECOVERY_AREAORCLARCHIVELOG2009_03_14O1_MF_1_26_%U_.A

RC

ORA-00280: 更改 781657 (用于线程 1) 在序列 #26

指定日志: {=suggested | filename | AUTO | CANCEL}

D:oracle10.2.0oradataorclREG003B.LOG

ORA-00310: 归档日志包含序列 25; 要求序列 26

ORA-00334: 归档日志: 'D:ORACLE10.2.0ORADATAORCLREG003B.LOG'

SQL> recover database using backup controlfile;

ORA-00279: 更改 781657 ( 03/13/2009 20:54:59 生成) 对于线程 1 是必需的

ORA-00289: 建议:

D:ORACLE10.2.0FLASH_RECOVERY_AREAORCLARCHIVELOG2009_03_14O1_MF_1_26_%U_.A

RC

ORA-00280: 更改 781657 (用于线程 1) 在序列 #26

指定日志: {=suggested | filename | AUTO | CANCEL}

D:oracle10.2.0oradataorclREDO02.LOG

ORA-00310: 归档日志包含序列 24; 要求序列 26

ORA-00334: 归档日志: 'D:ORACLE10.2.0ORADATAORCLREDO02.LOG'

SQL> recover database using backup controlfile;

ORA-00279: 更改 781657 ( 03/13/2009 20:54:59 生成) 对于线程 1 是必需的

ORA-00289: 建议:

D:ORACLE10.2.0FLASH_RECOVERY_AREAORCLARCHIVELOG2009_03_14O1_MF_1_26_%U_.A

RC

ORA-00280: 更改 781657 (用于线程 1) 在序列 #26

指定日志: {=suggested | filename | AUTO | CANCEL}

D:oracle10.2.0oradataorclREDO01.LOG

已应用的日志。

完成介质恢复。

SQL> alter database open resetlogs;

数据库已更改。

SQL> conn xyc/admin;

已连接。

SQL> select table_name from user+tables;

select table_name from user+tables

*

1 行出现错误:

ORA-00903: 表名无效

SQL> select table_name from user_tables;

TABLE_NAME

------------------------------

DEPT3

DEPT4

DEPT5

DEPT6

EMPS

DEPT

EMP

已选择7行。

至此,表emps恢复。

[@more@]

ORA-01122: 数据库文件 1 验证失败
ORA-01110:
数据文件 1: 'E:ORACLEORADATADB02SYSTEM01.DBF'
ORA-01207:
文件比控制文件更新 - 旧的控制文件

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13432219/viewspace-1018780/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 复用控制文件
请登录后发表评论 登录
全部评论

注册时间:2009-04-07

  • 博文量
    7
  • 访问量
    11071