恢复之利用备份在所有控制文件丢失情况下恢复(四)

控制文件全部丢失的情况下,根据联机重做日志文件是否可用和数据文件是否是最新的可以分为四种不同情况,这篇文章描述的是,联机重做日志丢失的情况下,利用备份的数据数据和控制文件进行恢复。


SQL> CONN /@TEST AS SYSDBA
已连接。
SQL> SHUTDOWN ABORT
ORACLE 例程已经关闭。
SQL> HOST DEL F:ORACLEORADATATEST*.CTL

SQL> HOST DEL F:ORACLEORADATATEST*.LOG

上面模拟了数据库非正常关闭,且丢失全部控制文件以及联机重做日志文件的情况。下面通过备份的数据文件和控制文件进行不完全恢复:

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

SQL> HOST COPY F:ORACLEBACKUPTEST20060219*.DBF 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
数据库装载完毕。
SQL> RECOVER DATABASE UNTIL CANCEL USING BACKUP CONTROLFILE
ORA-00279: 更改 45822802 (在 02/19/2006 03:07:36 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00001.001
ORA-00280: 更改 45822802 对于线程 1 是按序列 # 1 进行的


指定日志: {=suggested | filename | AUTO | CANCEL}
AUTO
ORA-00279: 更改 45843504 (在 02/19/2006 10:39:18 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00002.001
ORA-00280: 更改 45843504 对于线程 1 是按序列 # 2 进行的
ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00001.001'


ORA-00279: 更改 45858111 (在 02/19/2006 22:11:29 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00003.001
ORA-00280: 更改 45858111 对于线程 1 是按序列 # 3 进行的
ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00002.001'


ORA-00279: 更改 45858519 (在 02/19/2006 22:12:23 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00004.001
ORA-00280: 更改 45858519 对于线程 1 是按序列 # 4 进行的
ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00003.001'


ORA-00279: 更改 45878533 (在 02/19/2006 22:37:48 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00005.001
ORA-00280: 更改 45878533 对于线程 1 是按序列 # 5 进行的
ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00004.001'


ORA-00279: 更改 45898798 (在 02/20/2006 06:28:48 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00006.001
ORA-00280: 更改 45898798 对于线程 1 是按序列 # 6 进行的
ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00005.001'


ORA-00279: 更改 45921960 (在 02/20/2006 18:57:11 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00007.001
ORA-00280: 更改 45921960 对于线程 1 是按序列 # 7 进行的
ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00006.001'


ORA-00279: 更改 45952220 (在 02/21/2006 18:03:08 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00008.001
ORA-00280: 更改 45952220 对于线程 1 是按序列 # 8 进行的
ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00007.001'


ORA-00279: 更改 45961329 (在 02/26/2006 15:10:04 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00009.001
ORA-00280: 更改 45961329 对于线程 1 是按序列 # 9 进行的
ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00008.001'


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


SQL> RECOVER DATABASE UNTIL CANCEL USING BACKUP CONTROLFILE
ORA-00279: 更改 45961329 (在 02/26/2006 15:10:04 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00009.001
ORA-00280: 更改 45961329 对于线程 1 是按序列 # 9 进行的


指定日志: {=suggested | filename | AUTO | CANCEL}
CANCEL
介质恢复已取消。
SQL> ALTER DATABASE OPEN RESETLOGS;

数据库已更改。

如果重做日志丢失,则重做日志中包含的已提交数据会丢失。这时候需要使用UNTIL CANCEL来进行不完全恢复,在应该完所有已归档日志后,发出CANCEL命令,然后以RESETLOGS方式打开数据库

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/235507/viewspace-548679/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/235507/viewspace-548679/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值