记一次误删整个数据库的表结构和数据!!!!!!!!!!!
确认DBA给数据库开启了闪回功能,如果没开启那就GG了。。。。。。
使用的那个用户 drop 的表,就用那个用户执行下面的 sql 查看这个用户下是否开启了闪回功能
select name, current_scn, flashback_On from v$database;
FLASHBACK_ON 为 NO,则表示闪回特性尚未启用,就不用继续往下看了。
确认开启了闪回功能之后,执行下面 sql
语句查看被 drop 到 回收站
的表信息
select object_name,original_name,partition_name,type,ts_name,createtime,droptime from recyclebin where type = 'TABLE' order by DROPTIME desc;
上图所示,第一列 object_name
是 Oracle
自己记录的唯一值,第二列 original_name
是被 drop
掉表名称,第四列 type
是表类别,也有可能是索引文件之类的,第六列是表的创建时间,第七列是 drop
的时间。
查出数据之后,执行以下 sql
语句进行表结构和数据的恢复,可以恢复到执行 drop
命令之前的状态。
flashback table "APP_CHECKCODE_LOGGING_T" to before drop;
如果提示表或视图不存在,查看下该表是否被重新建立了,如果被重新建立了,先 drop
掉该表,然后使用 object_name
列的值进行表恢复。
drop
掉表太多??
复制 object_name
那一列,然后 Notepad++
里有个快捷键 alt + c 快速添加一列字符。