RMAN恢复数据库到还原点restore point

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638   QQ号:47079569 邮箱:service@parnassusdata.com

RMAN 备份和恢复到还原点 

原点是有关数据库scn 的名字,在进行任何批量操作之前,为了能恢复到操作之前生成的具体的 scn ,我们创建一个还原点,不需要记住 scn号和操作时间,同时,有可能恢复数据库到任何还原点。

Bob 被要求创建一个包含数据库中所有对象的表,建完表之后, Bob决定执行一个测试,删除表,但是在这之前,他想要确认他能把数据库恢复到删除标志前的点,所以他创建了一个还原点。执行测试之后,他决定通过执行不完全恢复把表恢复到还原点,这里是这种情况的详情。 

Bob 创建了下列表:

SQL>
create
table test
as select * from
all_objects;
Table created.

然后他备份了数据库:

RMAN> backup database;

通过列出备份,他得到文件备份时的文件scn:

RMAN> list backup;

File LV Type Ckp SCN    Ckp Time  Name
—- — —- ———- ——— —-
1       Full 649848     28-OCT-09

C:\ORACLE\product\10.2.0\oradata\ db1\system01.dbf

因此,该数据文件的 scn 649848.

然后Bob 决定删除他创建的表,他创建了一个还原点为了能够恢复到删除命令之前。为了获得删除点的列表,使用 v$restore_point 视图:

SQL>
select
current_scn from v$database;

CURRENT_SCN
———–
650143

SQL>
create
restore point before_delete;
Restore point created.

SQL>
select
scn, name
from
v$restore_point;

SCN               NAME
———-        ——————–
650149                   BEFORE_DELETE

然后,他删除表中数据,执行下列语句:

SQL>
delete from
test;
49311 rows deleted.

SQL>
commit;
Commit complete.

SQL>
alter
system switch logfile;
System altered.
SQL>

现在,他决定恢复表,执行RMAN中的下列步骤:

RMAN> shutdown immediate
RMAN> startup mount
RMAN> run
2> {
3> set until restore point before_delete;
4> restore database;
5> recover database;
6> }

RMAN> alter database open resetlogs;
database opened
RMAN>

现在到了检查表的时间:

SQL>  select count(1)  from test;

COUNT(1)
———-
49311

正如这里显示的那样,表成功恢复到删除表之前创建的还原点。 

Comment

*

沪ICP备14014813号-2

沪公网安备 31010802001379号