【Flashback】Flashback Drop闪回删除功能实践
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,Oracle的Flashback Drop闪回删除功能给出我们一种误DROP删除表的便捷恢复方式,实现这种功能的原理是Oracle的"回收站"(RecycleBin)功能。注意,如果被删除的表原先是存
千家信息网最后更新 2026年11月02日【Flashback】Flashback Drop闪回删除功能实践Oracle的Flashback Drop闪回删除功能给出我们一种误DROP删除表的便捷恢复方式,实现这种功能的原理是Oracle的"回收站"(RecycleBin)功能。注意,如果被删除的表原先是存放在SYSTEM系统表空间上,则不支持此功能。
1.Flashback Drop功能
恢复被错误drop掉的表。当一张表被删除后,依然可以查看被drop表的内容,是通过查看回收站中的内容实现的。
2.实现原理
被删除的表将被存在一个叫recyclebin回收站的地方,当drop掉表后,实际上就是将改表改了个名字。
3.与回收站有关的视图
DBA_RECYCLEBIN
USER_RECYCLEBIN
RECYCLEBIN
4.显示当前用户曾经被drop掉的表简短信息
SQL> show recyclebin
5.清除回收站内容的条件
1)表空间不足
2)用户的空间配额不足
3)purge命令
4)使用flashback命令恢复表后,与之对应的回收站中的那条记录内容被清除。
6.Flashback Drop语法
SQL> FLASHBACK TABLE ft_1 TO BEFORE DROP;
SQL> FLASHBACK TABLE "BIN$Z6gzDCWg7hfgQAB/AQAROQ==$0" TO BEFORE DROP;
上面两种方法都可以实现找回被删除表的功能。第一种方法是恢复到最后一次被删除的状态;第二种方法则可以对回收站中具体的一个对象进行闪回,用于一张表被多次删除后的恢复场景。
7.Flashback Drop闪回删除功能实践
(1).创建测试表ft_1
sys@ora11g> conn secooler/secooler
Connected.
secooler@ora11g> create table ft_1 as select * from all_objects;
Table created.
secooler@ora11g> select table_name from user_tables where table_name = 'FT_1';
TABLE_NAME
------------------------------
FT_1
(2).模拟drop掉ft_1表
secooler@ora11g> drop table ft_1;
Table dropped.
(3).查看回收站,这里看到ft_1表已经在回收站中了
secooler@ora11g> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
FT_1 BIN$vXtL504BE5vgQMKQt8Bnug==$0 TABLE 2012-04-12:20:14:24
(4).演示一下查询功能
secooler@ora11g> select count(*) from "BIN$vXtL504BE5vgQMKQt8Bnug==$0";
COUNT(*)
----------
71256
(5).闪回被drop掉的表
secooler@ora11g> flashback table ft_1 to before drop;
Flashback complete.
secooler@ora11g> select table_name from user_tables where table_name = 'FT_1';
TABLE_NAME
------------------------------
FT_1
这里在能确认回收站中哪个是要恢复的表时,也可以使用下面的命令进行恢复。
secooler@ora11g> drop table ft_1;
Table dropped.
secooler@ora11g> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
FT_1 BIN$vXtL504IE5vgQMKQt8Bnug==$0 TABLE 2012-04-12:20:18:35
secooler@ora11g> flashback table "BIN$vXtL504IE5vgQMKQt8Bnug==$0" to before drop;
Flashback complete.
secooler@ora11g> select table_name from user_tables where table_name = 'FT_1';
TABLE_NAME
------------------------------
FT_1
OK,到这里,被删除的表便被顺利的恢复回来。
8.清除回收站内容的方法
如果您确定、一定以及肯定不想恢复这些表的时候,可以使用以下方法对回收站进行清理。
1)清除当前用户的回收站
SQL> purge recyclebin;
SQL> purge user_recyclebin;
2)清除指定表空间tbs_sec_d的回收站
SQL> purge tablespace tbs_secooler_d;
3)清除指定表空间tbs_sec_d,同时指定用户sec的回收站
SQL> purge tablespace tbs_sec_d user sec;
4)清除回收站中所有的内容(sys用户)
SQL> purge dba_recyclebin
9.不产生回收站数据的同时drop表方法
这种方法是彻底删除表的方法,使用前要考虑清楚。
SQL> drop table ft_1 purge;
10.小结
在使用Flashback Drop闪回删除功能之前要充分了解此项功能的实现原理,以及使用此项功能的条件和它的限制条件。闪回删除功能为我们提供了表被误DROP后的便捷恢复手段。
Good luck.
secooler
12.04.12
-- The End --
1.Flashback Drop功能
恢复被错误drop掉的表。当一张表被删除后,依然可以查看被drop表的内容,是通过查看回收站中的内容实现的。
2.实现原理
被删除的表将被存在一个叫recyclebin回收站的地方,当drop掉表后,实际上就是将改表改了个名字。
3.与回收站有关的视图
DBA_RECYCLEBIN
USER_RECYCLEBIN
RECYCLEBIN
4.显示当前用户曾经被drop掉的表简短信息
SQL> show recyclebin
5.清除回收站内容的条件
1)表空间不足
2)用户的空间配额不足
3)purge命令
4)使用flashback命令恢复表后,与之对应的回收站中的那条记录内容被清除。
6.Flashback Drop语法
SQL> FLASHBACK TABLE ft_1 TO BEFORE DROP;
SQL> FLASHBACK TABLE "BIN$Z6gzDCWg7hfgQAB/AQAROQ==$0" TO BEFORE DROP;
上面两种方法都可以实现找回被删除表的功能。第一种方法是恢复到最后一次被删除的状态;第二种方法则可以对回收站中具体的一个对象进行闪回,用于一张表被多次删除后的恢复场景。
7.Flashback Drop闪回删除功能实践
(1).创建测试表ft_1
sys@ora11g> conn secooler/secooler
Connected.
secooler@ora11g> create table ft_1 as select * from all_objects;
Table created.
secooler@ora11g> select table_name from user_tables where table_name = 'FT_1';
TABLE_NAME
------------------------------
FT_1
(2).模拟drop掉ft_1表
secooler@ora11g> drop table ft_1;
Table dropped.
(3).查看回收站,这里看到ft_1表已经在回收站中了
secooler@ora11g> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
FT_1 BIN$vXtL504BE5vgQMKQt8Bnug==$0 TABLE 2012-04-12:20:14:24
(4).演示一下查询功能
secooler@ora11g> select count(*) from "BIN$vXtL504BE5vgQMKQt8Bnug==$0";
COUNT(*)
----------
71256
(5).闪回被drop掉的表
secooler@ora11g> flashback table ft_1 to before drop;
Flashback complete.
secooler@ora11g> select table_name from user_tables where table_name = 'FT_1';
TABLE_NAME
------------------------------
FT_1
这里在能确认回收站中哪个是要恢复的表时,也可以使用下面的命令进行恢复。
secooler@ora11g> drop table ft_1;
Table dropped.
secooler@ora11g> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
FT_1 BIN$vXtL504IE5vgQMKQt8Bnug==$0 TABLE 2012-04-12:20:18:35
secooler@ora11g> flashback table "BIN$vXtL504IE5vgQMKQt8Bnug==$0" to before drop;
Flashback complete.
secooler@ora11g> select table_name from user_tables where table_name = 'FT_1';
TABLE_NAME
------------------------------
FT_1
OK,到这里,被删除的表便被顺利的恢复回来。
8.清除回收站内容的方法
如果您确定、一定以及肯定不想恢复这些表的时候,可以使用以下方法对回收站进行清理。
1)清除当前用户的回收站
SQL> purge recyclebin;
SQL> purge user_recyclebin;
2)清除指定表空间tbs_sec_d的回收站
SQL> purge tablespace tbs_secooler_d;
3)清除指定表空间tbs_sec_d,同时指定用户sec的回收站
SQL> purge tablespace tbs_sec_d user sec;
4)清除回收站中所有的内容(sys用户)
SQL> purge dba_recyclebin
9.不产生回收站数据的同时drop表方法
这种方法是彻底删除表的方法,使用前要考虑清楚。
SQL> drop table ft_1 purge;
10.小结
在使用Flashback Drop闪回删除功能之前要充分了解此项功能的实现原理,以及使用此项功能的条件和它的限制条件。闪回删除功能为我们提供了表被误DROP后的便捷恢复手段。
Good luck.
secooler
12.04.12
-- The End --
回收站
功能
方法
内容
用户
空间
原理
命令
条件
便捷
同时
实践
清楚
简短
信息
名字
地方
场景
实际
实际上
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网金融科技
科技互联网龙头
互联网科技财经
互联网科技社
北京禾田雨橡互联网科技
苏州大垚互联网科技
互联网科技网站
成都狮子座互联网科技
须眉科技是互联网公司吗
创业天下互联网科技有限公司
中国航天科技大学国际工业互联网
晓花互联网科技有限公司网址
高科技互联网发展前景如何
南博望互联网科技有限公司
中科明德北京互联网科技
互联网金融科技元年
互联网科技资金流入
美国互联网科技公司
广州三三互联网科技有限公司
小牛互联网科技有限公司地址
互联网高科技
智慧科技互联网
美国互联网前沿科技
互联网 科技馆
辽宁互联网新科技
佛山市翊博互联网络科技有限公司
伊宁互联网科技做什么的
图游互联网科技
萌小萌互联网科技河南有限公司
如何强化互联网金融科技