数据库笔试50题 (数据库基础笔试面试题)

数据库基础笔试面试题,数据库dba笔试面试题

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

答案:A、B、C、D。

题目问的是不完全恢复有哪几种类型?

不完全恢复是一种与完全恢复相反的恢复方式,是一种丢失数据的恢复方式,也称为数据库基于时间点恢复(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('2026-03-15T12:15:55+00:00','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时无效)。

综上所述,恢复的分类如下图所示:

数据库基础笔试面试题,数据库dba笔试面试题

图 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。