DROP表后IMP表还能还原到DROP表之前的数据吗?

解决方案 »

  1.   

    flash back table table_name before drop ;
      

  2.   

    少了 to 
    flash back table table_name  to before drop ;oracle中闪回技术可以!
      

  3.   

    我晕  flashback  是连起的  不是分开的  
      

  4.   

    flashback table test to before drop;删除后没导入之前能还原,导入之后就不能还原了吗?
      

  5.   

    问题是我又导入了,这时候还能回到DROP之前的数据吗?
      

  6.   

    RENAME IMP TO IMP1;
    FLASHBACK TABLE IMP TO BEFORE DROP;
      

  7.   

    我说的IMP是指我用命令IMP导入一次表了。
      

  8.   

    哎,你没理解浪哥意思如果你IMP导入了一些数据,那么你可以把这些数据全部delete掉,然后用闪回恢复你原来DROP之前的数据
    FLASHBACK TABLE 表 TO BEFORE DROP;  这个直接恢复表到drop之前的状态,当然 数据也是恢复了的。
      

  9.   

    浪哥的意思是,你把表rename成另一个表名,不然flashback表的时候回报:表已经存在!
      

  10.   

    不行会报ORA-38305: 对象不在回收站中
      

  11.   

    终于搞清楚了,因为表空间满了,所以user_recyclebin表中的信息都没有了。问题是我就不能通过上面各位说的方法还原了,现在是归档日志都存在。
      

  12.   

    drop 一个表后, 如果表空间的压力很小原来的空间没有释放,并且没有被占用的话可以吧原来的空间给找回来。
    直接flashback table [xxxx] to before drop;
    如果原来的空间被占用, 就无法FLASHBACK回来。 如果整个数据库开启了FLASHBACK功能(v$database flashback_on字段可以查看)那需要startup 到mount状态去做flashback, 这个是整个数据库的闪回. 还有一个办法, 就是做TSPITR, 就是根据REDO日志做表空间的时间点回复, 然后再那个时间点吧数据给EXP出来, 如果忘记了当时DROP表的时间, 还需要用LOGMINER去挖日志, 超出DROP表的那个SCN号。就可以了。
    多多交流
    Q:460816547
      

  13.   

    使用LOGMINER分析工具吧!