【Flashback】Flashback Drop闪回删除功能实践
发表于:2024-10-20 作者:千家信息网编辑
千家信息网最后更新 2024年10月20日,Oracle的Flashback Drop闪回删除功能给出我们一种误DROP删除表的便捷恢复方式,实现这种功能的原理是Oracle的"回收站"(RecycleBin)功能。注意,如果被删除的表原先是存
千家信息网最后更新 2024年10月20日【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安全错误
数据库的锁怎样保障安全
文明校园网络安全自查报告
数据库的检索方法一般
石家庄软件开发工作在哪里找
守卫网络安全图片
舰r 服务器
日本人负责网络安全吗
服务器 长连接
找电脑软件开发的工作
河北麻将软件开发销售电话
csgo印度服务器啥意思
服务器换完硬盘不识别
后端软件开发英文
网络安全与防护 课件
网络安全检查督查制度
网络技术分析技术的优点
在国企做软件开发工作好不好
智慧社区管理平台服务器
中外运软件开发怎么样
网络安全大赛单一来源
大学生活智能软件开发怎么学
越云网络技术有限公司官网
清华大学网络安全老师
软件开发做c的工资一般多少
数据库四级联查
网络安全小人怎么画
服务器静态网页无法访问
自然科学基金 软件开发费用
青海省互联网 科技
搅黄服务器
aspx连接数据库方法