例子:
删除一个表空间,然后不完整恢复到表空间被删除之前的时间。
这个操作要分几个阶段:
1.还原自表空间存在之时起的controlfile副本。
2.使用controlfile副本开启数据库
3.还原
RMAN:
run {shutdown abort;
startup mount;
set until time = 'xxxxxxxx'
restore controlfile to 'new/place/control04.ctl'}
不可能在当前控制文件副本上还原控制文件,因为它们已经用于加载数据库。
SQLPLUS:
SQL> alter system set control_files='new/place/control04.ctl' scope=spfile;
SQL>shutdown abort
SQL>startup mount
RMAN:
run {set until time ='xxxxxxxx';
restore database;
recover database;
alter database open resetlogs;}
如果还原了数据库后,想要再次使用备份还原。需要以下步骤:
RMAN:
list incarnation;
找到你想恢复的地方
reset database to incarnation x
执行RMAN恢复controlfile,执行SQL重加载controlfile
回到RMAN:
list incarnation;
再次查看incarnation是否正确。
reset database to incarnation x
执行RMAN恢复命令OK.
另外,10G支持跨incarnation恢复,已经实验完毕。
也就是
在时间1,备份db
在时间2,不完整恢复,并且resetlogs
在时间3,可以只备份archive log。
在时间4想要进行恢复时,使用时间1备份的文件是OK的。
time = "to_date('2004-05-27 16:00:00','YYYY-MM-DD HH24:MI:SS')";
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12807983/viewspace-695012/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12807983/viewspace-695012/