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

简介:
上一篇说到有备份控制文件的恢复,但如果在备份点与故障点之间添加了表空或者数据文件,它的恢复又将如何呢。测试如下:
备份当前控制文件,然后添加表空间:
 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  /
数据库已更改。
完成恢复

本文转自 anranran 51CTO博客,原文链接:http://blog.51cto.com/guojuanjun/288457

相关文章
|
4月前
|
运维 Ubuntu Linux
备份以免丢失
备份安装docker-ce
|
SQL Oracle 关系型数据库
3、控制文件的备份与恢复
控制文件的备份与恢复
148 0
|
Oracle 关系型数据库 数据库
|
SQL 监控 Oracle
【恢复】Redo日志文件丢失的恢复
第一章 Redo日志文件丢失的恢复 1.1  online redolog file 丢失 联机Redo日志是Oracle数据库中比较核心的文件,当Redo日志文件异常之后,数据库就无法正常启动,而且有丢失据的风险,强烈建议在条件允许的情况下,对Redo日志进行多路镜像。
2230 0
|
Oracle 关系型数据库 数据库
[20150619]undo文件损坏或者丢失的恢复1
[20150619]undo文件损坏或者丢失的恢复1.txt --昨天别人问一些undo文件损坏或者丢失的恢复,实际上如果正常关机,undo文件丢失,恢复是很容易的。
789 0

相关实验场景

更多