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

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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/13432219/viewspace-1018780/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值