Oracle数据库不完全恢复
1、不能只对数据库的一部分执行不完全恢复操作,因为这会使数据库的一部分具有与这个数据库其余部分不同的系统更改号(SCN)或时间点。
2、在run代码块中使用set命令与until time、until SCN或until sequence参数创建一个恢复目标。
run
{
set until time "to_date('07/01/06 15:00:00','mm/dd/yy hh24:mi:ss')";
restore database;
recover database;
alter database open resetlogs;
}
上面是一种方法,也可以选择在restore和recover命令中直接使用until time、until SCN或until sequence参数,这样就避免使用run代码块(这是一种更值得推荐的做法),见下一段代码。
3、基于时间点的恢复
startup mount;
restore database UNTIL TIME "to_date('07/01/06 15:00:00','mm/dd/yy hh24:mi:ss')";
recover database UNTIL TIME "to_date('07/01/06 15:00:00','mm/dd/yy hh24:mi:ss')";
alter database open resetlogs;
4、基于SCN的恢复
下面代码将数据库还原到SCN 10000,但是不包含这个SCN。
startup mount;
restore database UNTIL SCN 10000;
recover database UNTIL SCN 10000;
alter database open resetlogs;
5、基于日志序列的恢复
下面代码将数据库还原到日志序列为100,但是不包含这个日志序列。
startup mount;
restore database UNTIL SEQUENCE 100 thread 1;
recover database UNTIL SEQUENCE 100 thread 1;
alter database open resetlogs;
6、使用还原点恢复
restore database until restore point TANGO_ONE;
recover database until restore point TABGO_ONE;
alter database open resetlogs;
下面是使用run代码块和set命令创建目标还原点
run
{
set restore point TANGO_ONE;
restore database TANGO_ONE;
recover database TANGO_ONE;
}
alter database open resetlogs;
推荐阅读: