由于某种原因误删除某些表并且回收站已没有相关的表,但rman恢复是只能恢复到最新的状态,所以,采取了基于时间点或scn号来恢复到指定状态
本操作采用的是模拟基于时间点的恢复操作。
1.利用rman进行一次备份
2.查看原先的状态
3.查看系统时间,并记住该时间
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
4.模拟删除zb表(由于ddl语句删除不能回退,不能用rollback回退)
5.关闭数据库,并置其数据库实例为mount状态
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。
6.利用rman进行恢复(遇到的问题:由于已经用rman进行恢复一次了,不能再次恢复,也没有预先备份控制文件。解决:我采取的方法是先移控制文件到别处目录,再把控制文件移回原处,即可进行第二次恢复了) 重复第5步骤。
注