今天在10g库中发现有许多BIN$...等开头的一些表,忽然想起来是回收站的表。
在Oralce 10g中的回收站其实是一个逻辑容器(一个数据字典表,它包含了被删除的表的相关的信息)
desc recyclebin;查看recyclebin视图的表结构信息。
查看回收站中的内容:
SQL>select object_name,droptime,dropscn,purge_object from recyclebin;
在10R2中,我们可以通过控制初始化参数recyclebin关闭闪回删除功能,此参数默认值为ON,所以数据库默认情况下将把所有删除的表都要进入回收站,这样呢,我们可以利用闪回删除特性恢复它们;如果设置为OFF,那么将关闭数据库闪回删除功能,表在被删除之后将不进入回收站。
如果我们确认要删除一个张表,毫不含糊,那么可以使用:
SQL>drop table table_name purge; 这样的话,被删除的表将被彻底删除,不再会进回收站。
我们可以查看自己回收站中的内容,使用user_recyclebin视图;亦可以查看数据库中所有的回收站内容,使用dba_recyclebin视图。
如:
SQL>select owner,original_name,object_name,ts_name,droptime from dba_recyclebin;
我们可以看到不管是recyclebin、user_recyclebin还是dba_recyclebin;他们中的object_name都是一些很奇怪的名字(以BIN$开头,是系统自动生成的,此名称的长度通常为30个字符)。如果我们想查看回收站中某个对象的内容,那么我们必须使用系统生成的名称(以BIN$开头的),且用双引号括住。
如:
SQL>select * from "BIN$.....";
如果需要恢复回收站中的对象,那么:
SQL>flashback table table_name to before drop;
如果需要删除回收站中的对象,那么:
SQL>purge table table_name;/purge index index_name;
还有更省劲的呢,呵呵!那就是:
SQL>purge recyclebin;清空整个回收站,这个命令方便吧。哈哈!!!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23219371/viewspace-665114/
,如需转载,请注明出处,否则将追究法律责任。