ORACLE10g回收站

ORACLE10g回收站的好处是在误删除一个表时,有一个恢复的机制,但如果不需要使用这个功能,可以使用命令进行关闭,下面主要描述一下针对回收站的相关操作。

回收站,从原理上来说就是一个数据字典表,放置用户Drop掉的数据库对象信息。用户进行Drop操作的对象并没有被数据库删除,仍然会占用空间。除非是由于用户手工进行Purge或者因为存储空间不够而被数据库清掉。数据库有了这样的功能,能够减少很多不必要的麻烦。常常看到开发人员误把表删除,急急忙忙找DBA 来想办法的情况。我们可以充分利用10g的闪回(FLASHBACK,闪回,回闪?)功能来避免大量的人工误操作。

1.关闭或开启回收站功能

ALTER SESSION SET recyclebin=on;

ALTER SYSTEM SET recyclebin=OFF;

2.查看回收站里的对象

SELECT original_name, object_name, TYPE, droptime FROM user_recyclebin;

BIN$t26oQCQuTri6ZrLN1WPSvA==$0

3.删除回收站里的对象

PURGE RECYCLEBIN;

PURGE table "BIN$t26oQCQuTri6ZrLN1WPSvA==$0"

转换后的名字格式如下:

BIN$unique_id$version 其中BIN代表RecycleBin

unique_id是数据库中该对象的唯一标志,26个字符长度

version表示该对象的版本号

注:在10g beta 版本中,名字格式如下:

RB$$objn$object_type$version

其中的RB,代表Recycle Bin. objn为表的目录对象号. object_type表示对象类型. version表示版本号. 由数据库指定。

3.从回收站恢复表

恢复表,用回闪表的功能:

FLASHBACK TABLE zftang TO BEFORE DROP;

默认的恢复是第一个被删除的表。如果要恢复指定的表,可以在FLASHBACK TABLE 后面加上指定的RECYCLEBIN 参数指定其他的名字:

FLASHBACK TABLE "BIN$lfTbzOjISXaw8u0BIO7pNA==$0" TO BEFORE DROP;

FLASHBACK TABLE "BIN$lfTbzOjISXaw8u0BIO7pNA==$0" TO BEFORE DROP

*

ERROR at line 1:

ORA-38312: original name is used by an existing object

FLASHBACK TABLE "BIN$lfTbzOjISXaw8u0BIO7pNA==$0" TO BEFORE DROP RENAME TO foo2;

Flashback complete.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值