最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Oracle的FlashbackDrop闪回删除功能实践

来源:懂视网 责编:小采 时间:2020-11-09 11:27:25
文档

Oracle的FlashbackDrop闪回删除功能实践

Oracle的FlashbackDrop闪回删除功能实践:Oracle的Flashback Drop闪回删除功能给出我们一种误DROP删除表的便捷恢复方式,实现这种功能的原理是Oracle的ldquo;回收站rdqu Oracle的Flashback Drop闪回删除功能给出我们一种误DROP删除表的便捷恢复方式,实现这种功能的原理是Oracle的回收站
推荐度:
导读Oracle的FlashbackDrop闪回删除功能实践:Oracle的Flashback Drop闪回删除功能给出我们一种误DROP删除表的便捷恢复方式,实现这种功能的原理是Oracle的ldquo;回收站rdqu Oracle的Flashback Drop闪回删除功能给出我们一种误DROP删除表的便捷恢复方式,实现这种功能的原理是Oracle的回收站

Oracle的Flashback Drop闪回删除功能给出我们一种误DROP删除表的便捷恢复方式,实现这种功能的原理是Oracle的ldquo;回收站rdqu

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后的便捷恢复手段。

更多Oracle相关信息见Oracle 专题页面 ?tid=12

linux

文档

Oracle的FlashbackDrop闪回删除功能实践

Oracle的FlashbackDrop闪回删除功能实践:Oracle的Flashback Drop闪回删除功能给出我们一种误DROP删除表的便捷恢复方式,实现这种功能的原理是Oracle的ldquo;回收站rdqu Oracle的Flashback Drop闪回删除功能给出我们一种误DROP删除表的便捷恢复方式,实现这种功能的原理是Oracle的回收站
推荐度:
标签: 清除 oracle flas
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top