rman基于时间点还原的问题
(1)建一张表做测试:
create table lala(n number);
insert into lala values(1);
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
2012-02-07 18:34:48
commit;
shutdown;
(2)进行完全备份
backup database include current controlfile plus archivelog skip inaccessible delete input;
(3)插入数据并查看时间
insert into lala values(2);
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
2012-02-07 18:39:58
commit;
shutdown
(4)进行基于时间点还原
run{
set until time"to_date('2012-02-07 18:39:58','yyyy-mm-dd hh24:mi:ss')";
restore database;
recover database;
alter database open resetlogs;
}
用第一个时间点还原提示说文件不存在,是不是说不能还原到备份前的时间点
用第二个时间点还原后查询lala表里只有一个数据“1”,按理说还应该有个“2"啊
------解决方案--------------------
第一你的RMAN脚本里的时间还原点有问题
set until time"to_date('2012-02-07 18:39:58','yyyy-mm-dd hh24:mi:ss')";
你的备份至有备份到
2012-02-07 18:34:48
commit;
shutdown;
(2)进行完全备份
backup database include current controlfile plus archivelog skip inaccessible delete input;
只能还原到该时间
第二个时间点还原点
(3)插入数据并查看时间
insert into lala values(2);
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
2012-02-07 18:39:58
commit;
这里的 2012-02-07 18:39:58再commit之前,因此查询得到的只有1 ,如果要得到2 ,需要还原到commit之后的时间才可以