一次误操作,删除了十分重要的数据表。
其实我知道,用drop命令只是执行了一次逻辑删除,并不能物理删除。可以用show recyclebin;命令来查看。显示结果为一个表,原来的名和删除后的名。我也知道怎么物理删除,就是执行:purage table;删除所有的数据表
purage table“数据表删除后的名字”;--删除指定的数据表现在我想知道的是,怎么从这个回收站里还原我误删除的数据表?急。!
其实我知道,用drop命令只是执行了一次逻辑删除,并不能物理删除。可以用show recyclebin;命令来查看。显示结果为一个表,原来的名和删除后的名。我也知道怎么物理删除,就是执行:purage table;删除所有的数据表
purage table“数据表删除后的名字”;--删除指定的数据表现在我想知道的是,怎么从这个回收站里还原我误删除的数据表?急。!
使数据库能够回闪。为此,它必须处于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。闪回成功!
对表的flashback不需要flashback log的支持,是利用undo表空间啊的,所以可以直接闪回表。可以详看http://www.inthirties.com/?p=600
真的只能用闪回来,如果没commit的话,还可以rollback吧
使用闪回机制,或者用rman进行恢复