欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2024-02-13 20:58:47
...

在 Oracle 数据库的早期版本中,如果错误地删除了表,则必须将数据库恢复到以前的时间以恢复删除的表。此过程通常非常耗时,并且

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 专题页面 ?tid=12

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