Oracle 10g的闪回删除与回收站


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相关信息见Oracle 专题页面 http://www.bkjia.com/topicnews.aspx?tid=12

相关内容