控制文件丢失的恢复(续)

上一篇说到有备份控制文件的恢复,但如果在备份点与故障点之间添加了表空或者数据文件,它的恢复又将如何呢。测试如下:
备份当前控制文件,然后添加表空间:
 SQL> create tablespace study2 datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\study2.dbf','D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\study3.dbf'
SQL> shutdown immediate
恢复备份控制文件. 启动ORACLE。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area  603979776 bytes
Fixed Size                  1250380 bytes
Variable Size             213912500 bytes
Database Buffers          381681664 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
ORA-01122: 数据库文件 1 验证失败
ORA-01110: 数据文件 1: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\SYSTEM01.DBF'
ORA-01207: 文件比控制文件更新 - 旧的控制文件
 
SQL> recover database using backup controlfile until cancel
ORA-00279: 更改 620660 (在 03/27/2010 09:47:27 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\STUDY\ARCHIVELOG\2010_03_27\O1_MF_1
_4_%U_.ARC
ORA-00280: 更改 620660 (用于线程 1) 在序列 #4 中

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
D:\oracle\product\10.2.0\oradata\study\REDO03.LOG
ORA-00283: 恢复会话因错误而取消
ORA-01244: 未命名的数据文件由介质恢复添加至控制文件
ORA-01110: 数据文件 6: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\STUDY3.DBF'
ORA-01110: 数据文件 5: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\STUDY2.DBF'

ORA-01112: 未启动介质恢复
可以看到会报ORA-01244: 未命名的数据文件由介质恢复添加至控制文件
错误,恢复被取消。
 
SQL> select file#,name from v$datafile
  2  /
 file#  NAME
--------------------------------------------------------------------------------
1  D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\SYSTEM01.DBF
2  D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\UNDOTBS01.DBF
3  D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\SYSAUX01.DBF
4  D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\USERS01.DBF
5  D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00005
6 D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00006
找开alert_log的到这一段:
File #5 added to control file as 'UNNAMED00005'. Originally created as:
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\STUDY2.DBF'
File #6 added to control file as 'UNNAMED00006'. Originally created as:
'D:\ORACLE\PRODv$datafileUCT\10.2.0\ORADATA\STUDY\STUDY3.DBF'
个人认为通过v$datafile,File#就是可determine which unnamed file corresponds to which datafile.
重命名数据文件:
SQL> alter database rename file 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED0
0005' to 5: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\STUDY2.DBF'
  2  /
alter database rename file 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00005'
 to 5: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\STUDY2.DBF'
继续执行恢复
SQL> recover database using backup controlfile until cancel
(文档在这里用:RECOVER AUTOMATIC DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL)
ORA-00279: 更改 621621 (在 03/27/2010 09:55:40 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\STUDY\ARCHIVELOG\2010_03_27\O1_MF_1
_4_%U_.ARC
ORA-00280: 更改 621621 (用于线程 1) 在序列 #4 中

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
D:\oracle\product\10.2.0\oradata\study\REDO03.LOG
已应用的日志。
完成介质恢复。
SQL> alter database open
  2  /
alter database open
*
第 1 行出现错误:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项

SQL> alter database open resetlogs
  2  /
数据库已更改。
完成恢复
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值