What methods of point-in-time recovery are available?(Choose all that apply.)
A、Change-based
B、Cancel-based
C、Time-based
D、Sequence number-based
E、Transaction number-based
题目问的是不完全恢复有哪几种类型?
不完全恢复是一种与完全恢复相反的恢复方式,是一种丢失数据的恢复方式,也称为数据库基于时间点恢复(Point-in-Time Recovery),是将整个数据库恢复到之前的某个时间点、日志序列号或者SCN号。通常情况下,若FLASHBACK DATABASE没有启用或者变得无效,则可以执行不完全恢复撤销一个用户错误。不完全恢复不一定在原有的数据库环境执行,可以在测试环境下执行不完全恢复,将找回的数据再重新导入生产库中。不完全恢复根据备份情况恢复到与指定时间、日志序列号和SCN具有一致性的数据,之后的数据都将丢失。执行不完全恢复一方面可能是因为归档REDO日志、联机REDO日志的丢失不得不执行不完全恢复,另一方面可能是因为在某个时刻错误地操作了数据,过了一段时间之后才发现问题,而其它的恢复手段都无法恢复数据,这时也不得不使用不完全恢复来找回数据。执行不完全恢复必须从备份中还原所有的数据文件,备份文件必须是要恢复的时间点之前创建的。当恢复完成后,使用RESTLOGS选项打开数据库,将重新初始化联机Redo日志,创建一个新的日志序列号流,日志序列号从1开始,RESETLOGS之后的SCN还是在递增。
如果是完全恢复,那么数据库就是最新的一致性状态;如果是不完全恢复,那么数据库就是非最新的一致性状态。对于非归档模式的数据库来说,不能执行不完全恢复。
不完全恢复的选项如下表所示:
表 3-23 不完全恢复的选项
不完全恢复方式 | RMAN选项 | 用户管理备份选项 |
恢复到某个时间点 | UNTIL TIME | UNTIL TIME |
恢复到某个日志序列号 | UNTIL SUQUENCE | UNTIL CANCEL |
恢复到某个SCN号 | UNTIL SCN | UNTIL CHANGE |
不完全恢复的几种类型如下表所示:
表 3-24 不完全恢复的几种类型
分类 | 简介 | 脚本 |
基于时间的恢复(Time-based Recovery) | 将数据恢复到指定的时间点,SET UNTIL TIME时间可以使用多种表示方式,可以使用TO_DATE函数来表示时间,还可以使用SYSDATE-1方式来表示时间。 | RUN { ALLOCATE CHANNEL C1 TYPE DISK; ALLOCATE CHANNEL C2 TYPE DISK; STARTUP FORCE MOUNT; SQL 'ALTER SESSION SET NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"'; SET UNTIL TIME = "TO_DATE('2015-01-19 14:20:20','YYYY-MM-DD HH24:MI:SS')"; RESTORE DATABASE; RECOVER DATABASE; ALTER DATABASE OPEN RESETLOGS; RELEASE CHANNEL C1; RELEASE CHANNEL C2; } |
基于SCN的恢复(Change-based Recovery) | 将数据恢复到指定的SCN。 | RUN { SHUTDOWN IMMEDIATE; STARTUP MOUNT; SET UNTIL SCN 324394; RESTORE DATABASE; RECOVER DATABASE; ALTER DATABASE OPEN RESETLOGS; } |
基于日志序列号恢复(Log Sequence Recovery) | 将数据恢复到指定的REDO日志序列号(仅使用RMAN时有效)。基于序列号的不完全恢复须指定某个REDO线程的序列号,那么在这个序列号切换时间点之前的所有实例的归档日志都需要的,每个节点的负载不同,其他实例的序列号可能比指定的REDO线程序列号要大。 | RUN { SHUTDOWN IMMEDIATE; STARTUP MOUNT; SET UNTIL SEQUENCE 10350 THREAD 1; RESTORE DATABASE; RECOVER DATABASE; ALTER DATABASE OPEN RESETLOGS; } |
基于取消的恢复(Cancel-based Recovery) | 当用户提交CANCEL后停止恢复(此选项在使用RMAN时无效)。 |
综上所述,恢复的分类如下图所示:
图 3-16 恢复的分类
本题中,对于选项A,Change-based指的是基于SCN的恢复。所以,选项A正确。
对于选项B,Cancel-based指的是基于取消的恢复。所以,选项B正确。
对于选项C,Time-based指的是基于时间的恢复。所以,选项C正确。
对于选项D,Sequence number-based指的是基于日志序列号的恢复。所以,选项D正确。
对于选项E,Transaction number-based指的是基于事务号的恢复,不完全恢复不能按照事务号来恢复。所以,选项E错误。
所以,本题的答案为A、B、C、D。
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 文章内容来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。




