执行Cancel-Based不完全恢复
在cancel-based恢复中,恢复通过提示你归档重做日志文件的建议名称而继续执行。
当你指定CANCE而不是一个文件名或者是所有的redo信息都已经被应用到了数据文件时,恢复停止。
练习:cancel-based恢复
--1. 执行"关闭的数据库恢复"中步骤1-8
--2. 开始cancel-based恢复 RECOVER DATABASE UNTIL CANCEL -- 注意:如果在RECOVER命令上指定UNTIL子句失败,则数据库假设是完全恢复,且直到所有的redo信息被应用之后数据库才可以打开. --数据库应用需要的重做日志文件来重构还原数据文件.数据库提供了它希望在LOG_ARCHIVE_DEST_1找到的文件名,并请求你停止或继续应用日志文件. -- 如果控制文件是一个备份,则必须提供联机重做日志文件的名称,如果想应用这些日志中的改变.
--3. 继续应用重做日志文件,直到最后一个日志被应用到了还原的数据文件,然后执行CANCEL命令来结束恢复. CANCEL -- 数据库会提示恢复是否成功.如果在所有的数据文件被恢复到一个一致的SCN之前取消了恢复,并试图打开数据库,则返回ORA-1113错误 -- 可以查看V$RECOVER_FILE视图来确定是否需要更多的恢复或在开始不完全恢复之前有数据文件的备份没有被还原.
--4. 使用ESETLOGS选项打开数据库.在不完全恢复或使用备份的控制文件进行的恢复,总是需要RESETLOGS. ALTER DATABASE OPEN RESETLOGS; -- 当不应该使用OPEN RESETLOGS选项的时候,试图使用,或当需要使用RESETLOGS选项的时候,没有使用,则数据库会返回错误,不会打开数据库.
--5. 使用RESETLOGS选项打开数据库之后,检查预警日志. -- 注意:确定跟踪文件和预警日志位置的最简单的方法是执行:SELECT NAME, VALUE FROM V$DIAG_INFO -- 当使用RESETLOGS选项打开数据库的时候,依赖于完全恢复还是不完全恢复。消息出现在预警日志中. -- a.完全恢复, RESETLOGS after complete recovery through change scn -- b.不完全恢复,RESETLOGS after incomplete recovery UNTIL CHANGE scn, scn为不完全恢复的结束点 -- 也要检查预警日志来确定数据库是否在数据字典和控制文件之间检测到了不一致 |
表 29.3 数据字典和控制文件的不一致
数据文件出现在 控制文件中 | 出现在 数据字典 | 结果 |
Y | N | 对于没有列出的文件的引用从控制文件中被移除.在预警日志中的消息表明发现了什么 |
N | Y | 数据库在控制文件中创建了一个占位符条目在MISSINGnnnnn下面, nnnnn为文件号. 在控制文件中MISSINGnnnnn为脱机需要需要介质恢复的标志. 可以对MISSINGnnnnn使用ALTER DATABASE RENAME FILE命令,这样相应的MISSINGnnnnn文件就是可以访问的. 如果没有该数据文件的备份,则删除表空间. |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17013648/viewspace-1101154/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/17013648/viewspace-1101154/