Oracle找还删除的表
1、select * from recyclebin where 1=1
and original_name='XXX' --表名,大写
order by droptime desc;
查询被drop的表,可查看被删除的表是否在回收站中。
2、在命令模式下:
SQL> show parameter recyclebin
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
recyclebin string on
查看回收站机制是否开启,若为on,则表名开启,建议开启回收站机制,太有用了。
3、从回收站恢复被删除的表
在命令模式下,可执行Flashback table XXXX to before drop 。
执行该命令时,若XXXX 表中已存在且有数据,可将回收站中的表另命名恢复。
在命令模式下,执行Flashback table xxxx to before drop rename to xxxx_bak;
4、恢复更新的数据
首先查询更新的语句
select * from V$SQL where SQL_TEXT like '%update XXXX set xx%'--查出你需要恢复的时间点
找到更新的语句后,会获得更新的时间,则:
create table t_table_recove --新的表
as select * from xxxx--你误操作的表
as of timestamp to_timestamp('2013-09-23 11:38:46','yyyy-mm-dd hh24:mi:ss');--时间点
5、获得更新某时间点的数据
SELECT * FROM xxxxAS OF TIMESTAMP SYSDATE-3/1440;
SYSDATE:当前时间
3:三分钟
该语句的意思是获得三分钟之前时间点的数据。