li
  当前位置:主页 > 备份恢复 > 文章内容
li
恢复之利用备份在所有控制文件丢失情况下恢复(一)
来源: http://yangtingkun.itpub.net/  作者: yangtingkun    时间:2008-01-26   阅读:31  
本文章共2081字,分2页,当前第1页,快速翻页:
 

如果全部控制文件丢失,但是包含以前控制文件的备份,这时可以利用备份的控制文件进行恢复,不过在恢复后需要以RESETLOGS方式打开数据库。

根据联机重做日志文件是否可用和数据文件是否是最新的可以分为四种不同情况,这篇文章描述的是,联机重做日志可用,且数据文件是最新的情况。


一般重做日志全部丢失的话,数据库肯定会马上关闭。本测试为了模拟联机日志中包含待恢复数据的情况,在后台运行存储过程插入数据时,在另外的session使用SHUTDOWN ABORT关闭数据库。

SQL> CONN /@TEST AS SYSDBA
已连接。
SQL> SHUTDOWN ABORT
ORACLE 例程已经关闭。

数据库关闭后删除所有控制文件。

SQL> HOST DEL F:ORACLEORADATATEST*.CTL

然后利用备份的控制文件进行恢复

SQL> HOST COPY F:ORACLEBACKUPTEST20060215*.CTL F:ORACLEORADATATEST

SQL> STARTUP MOUNT
ORACLE 例程已经启动。

Total System Global Area 76619308 bytes
Fixed Size 454188 bytes
Variable Size 50331648 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。

利用备份的控制文件启动,需要使用USING BACKUP CONTROLFILE语句。

SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL
ORA-00279: 更改 45609576 (在 02/15/2006 19:28:34 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00059.001
ORA-00280: 更改 45609576 对于线程 1 是按序列 # 59 进行的


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
AUTO
ORA-00279: 更改 45610708 (在 02/16/2006 01:35:15 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00060.001
ORA-00280: 更改 45610708 对于线程 1 是按序列 # 60 进行的
ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00059.001'


ORA-00279: 更改 45610901 (在 02/16/2006 01:36:55 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00061.001
ORA-00280: 更改 45610901 对于线程 1 是按序列 # 61 进行的
ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00060.001'


ORA-00279: 更改 45612925 (在 02/16/2006 01:39:10 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00062.001
ORA-00280: 更改 45612925 对于线程 1 是按序列 # 62 进行的
ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00061.001'


ORA-00308: 无法打开存档日志 'F:ORACLEORADATATESTARCHIVEARC00062.001'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。


ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
IXDBA.NET技术社区
ORA-01194: 文件1需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'F:ORACLEORADATATESTSYSTEM01.DBF'

最后出现的错误是由于SHUTDOWN ABORT后,使用备份的控制文件造成的。Oracle需要应用当前的重做日志文件来进行恢复,但是由于使用了备份的控制文件,备份之后的归档日志信息丢失,因此,这时需要手工输入需要恢复的联机重做日志文件。

其实这个时候是可以通过REDO的循环使用推断出最后需要使用的联机日志的。

SQL> SELECT GROUP#, SEQUENCE#, STATUS FROM V$LOG;

GROUP# SEQUENCE# STATUS
---------- ---------- ----------------
1 59 CURRENT
2 57 INACTIVE
3 58 INACTIVE

这时已经可以推断GROUP2将是60,GROUP3是61,而GROUP1则是62。不过在输入重做日志进行恢复时,即使输入错文件也没有关系,Oracle会提示错误。如果输入正确的重做日志,则Oracle会完成介质恢复。



阅读更多内容1 · 2 · 下一页>>


  上一篇: 恢复之利用备份在所有控制文件丢...   下一篇: 恢复之跨越重建控制文件的恢复
li
 §相关评论  
 热点文章

·Oracle数据库远程复制与异地容
·Oracle 11g备份恢复功能增强
·UNDO表空间的ORA-1122错误解决
·UNDO表空间的ORA-1122错误解决
·UNDO表空间的ORA-1122错误解决
·使用Flashback Query 恢复误删
·如何开启/关闭oracle的归档
·Rman的format格式中的%s类似的
·怎么样创建RMAN恢复目录
·ORA-01843:无效的月份,这个是
·ORA-01843:无效的月份
li
 编辑推荐
·Oracle数据库远程复制与异地容
·Oracle 11g备份恢复功能增强
·UNDO表空间的ORA-1122错误解决
·UNDO表空间的ORA-1122错误解决
·UNDO表空间的ORA-1122错误解决
·使用Flashback Query 恢复误删
·如何开启/关闭oracle的归档
·Rman的format格式中的%s类似的
·怎么样创建RMAN恢复目录
·ORA-01843:无效的月份,这个是
·ORA-01843:无效的月份
li
 相关篇章
·恢复之利用备份在所有控制文件丢...
·恢复之还原归档重做日志
·恢复之利用备份在所有控制文件丢...
·恢复之数据库关闭时的完全恢复
·恢复之利用备份在所有控制文件丢...
·恢复之基于时间的不完整恢复
·恢复之数据库打开时的完全恢复
·恢复之非归档模式下数据库非正常...
·恢复之基于取消的不完整恢复
·恢复之基于改变的不完整恢复
·恢复之跨越重建控制文件的恢复
·恢复之丢失全部控制文件以及备份...
·恢复之单个控制文件损坏
·恢复之重建数据文件
·恢复之还原数据文件
·备份之归档重做日志备份
·备份之SUSPEND状态下备份
·备份之控制文件备份
·备份之联机表空间备份
·备份之全库一致性备份
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接