Oracle 闪回删除与回收站的简介
在 Oracle 数据库的早期版本中,如果错误地删除了表,则必须将数据库恢复到以前的时间以恢复删除的表。此过程通常非常耗时,并且会导致丢失其它事务处理的工作。 Oracle Database 10g 引入了闪回删除功能,您可以使用此功能还原 DROP TABLE 语句的结果,而不必使用时间点恢复。
注:初始化参数 RECYCLEBIN 用于控制闪回删除功能是打开 (ON) 还是关闭 (OFF)。如果将该参数设置为 OFF,则删除的表不会进入回收站。如果将该参数设置为 ON,则删除的表将进入回收站,并且可以进行恢复。默认情况下,将 RECYCLEBIN 设置为 ON。
1.正常情况下删除一个表
drop table test1
这是表会被放置在recyclebin(回收站)
注意:这里如果执行了“commit”提交操作。下列闪回操作就会失效!
2.使用如下代码进行闪回操作
flashback table test1 to before drop
3.使用函数 timestamp 将表闪回但是到一个确切的时间点是的状态
如:
允许行滚动
alter table test1 enable row movement;
执行闪回操作
flashback table test1 to timestamp to_timestamp(‘2012-05-22 09:19:51’,’YYYY-MM-DD HH24:MI:SS’);
4.当回收站中具有多个原始名称时。
(1)一种是使用系统为所删除的表所起的名称还原特定版本
(2)使用原始名称时,还原的表遵循后进先出(lifo)的规则
5.对回收站中的表进行闪回并且重命名。
flashback table test1 to before drop rename to testnews ;
6.不使用回收站
drop table test1 purge;
drop tablespace users including contents;
drop user scott cascade;
7.清空回收站的操作
purge recyclebin;
8.显示回收站的内容
show recyclebin
更多Oracle相关信息见 专题页面