一次误操作,删除了十分重要的数据表。
其实我知道,用drop命令只是执行了一次逻辑删除,并不能物理删除。可以用show recyclebin;命令来查看。显示结果为一个表,原来的名和删除后的名。我也知道怎么物理删除,就是执行:purage table;删除所有的数据表
purage table“数据表删除后的名字”;--删除指定的数据表现在我想知道的是,怎么从这个回收站里还原我误删除的数据表?急。!

解决方案 »

  1.   

    SQL> flashback table test  to before drop;闪回完成。
      

  2.   

    flashback table xxx to before drop;
      

  3.   

    用闪回表,不知道你开启了没,今天刚学的。
    使数据库能够回闪。为此,它必须处于archivelog模式下。在MOUNT阶段,在OPEN之前,
    1、SQL>SHUTDOWN IMMEDIATE ;2、SQL>STARTUP MOUNT ;3、SQL>alter database flashback on; 打开闪回功能4、SQL>alter table personuser enable row movement; 针对某个特定的表,启用行移动功能5、 flashback table personuser to timestamp
        to_timestamp ('05/16/2009
       21:15:00','mm/dd/yyyy hh24:mi:ss');  闪回表    flashback database to timestamp
        to_timestamp ('05/16/2009
        21:30:00','mm/dd/yyyy hh24:mi:ss');  闪回数据库6、SQL>alter database open resetlogs  由于使用备份的控制文件恢复,该文件内不包含目标数据库redologs和数据文件头部scn信息,所以必须通过resetlogs方式open。闪回成功!
      

  4.   


    对表的flashback不需要flashback log的支持,是利用undo表空间啊的,所以可以直接闪回表。可以详看http://www.inthirties.com/?p=600
      

  5.   

    http://topic.csdn.net/u/20090512/18/c3003650-2a2d-4c3b-800f-e12576df1a42.html
      

  6.   


    真的只能用闪回来,如果没commit的话,还可以rollback吧
      

  7.   

    两种方式
    使用闪回机制,或者用rman进行恢复