要搞清楚一个问题,delete属于正常操作,不属于数据库故障。如果rman恢复会自动恢复所有被delete掉的记录,那么就乱套了
这种情况只能做不完全恢复,恢复到误删数据前的某一点
recover database until scn xxx;
或者不知道scn,用时间戳代替
recover database until time "TO_DATE('2015-1-30 20:01:30','YYYY-MM-DD HH24:MI:SS')";

解决方案 »

  1.   

    做测试的话,要记住时间点,可以使用下面语句查询scn
    select timestamp_to_scn(to_timestamp('2015-02-01 00:00:00' ,'yyyy-mm-dd hh24:mi:ss')) from dual;
    你可以做两次删除,分别记下两次时间,然后恢复,
    就会看到两次时间点的数据结果。
    恢复指令:
    rman target /;
    startup mount;
    run
    {
    set until scn 123456789;
    restore database;
    recover database;
    }
    ;
    alter database open resetlogs;
      

  2.   


    -- 这步,你的本意是想恢复一个之前的 0 级备份,但是动作失败了,后面你再 recover 也是徒劳的。
    RESTORE DATABASE;