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:文件比控制文件更新-旧的控制文件