博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
控制文件丢失的恢复(续)
阅读量:6954 次
发布时间:2019-06-27

本文共 3031 字,大约阅读时间需要 10 分钟。

说到有备份控制文件的恢复,但如果在备份点与故障点之间添加了表空或者数据文件,它的恢复又将如何呢。测试如下:
备份当前控制文件,然后添加表空间:
 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: 未命名的数据文件由介质恢复添加至控制文件
错误,恢复被取消。
参见ORACLE文档
 
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

转载地址:http://amjil.baihongyu.com/

你可能感兴趣的文章
Java工程师的成长路线图是什么?
查看>>
JavaOne 2016——首日亮点
查看>>
EDU_BOOK 开发总结
查看>>
简单的支持网页画框拖拽缩放功能的js插件
查看>>
使用 ES2015 开发 Angular1.x 应用指南
查看>>
密码学协议 门限
查看>>
true or false in JavaScript
查看>>
Android学习笔记6:使用Intent1
查看>>
js实现继承的几种方式
查看>>
[LintCode/LeetCode] Two Strings are Anagrams/Valid Anagram
查看>>
Consul入门03 - 注册服务
查看>>
[Centos]necessary tools for newbie
查看>>
前端临床手札——单元测试
查看>>
Java IO : File
查看>>
MySQL Replication
查看>>
JavaScript数组去重总结
查看>>
MVVM_Android-CleanArchitecture
查看>>
iOS开发-协议Protocol&代理delegate
查看>>
【系统架构师修炼之道】(4):绪论——Zachman 框架
查看>>
Foxify v0.10.7 发布,基于 TypeScript 的 Node 框架
查看>>