如果自己搞不定可以找诗檀软件专业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