暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

How to maintain Oracle10g Recyclebin?

原创 eygle 2005-12-12
647

从Oracle10g开始,Oracle引入了flashback drop的新特性,这个新特性,允许你从当前数据库中恢复一个被drop了的对象。在执行drop操作时,现在Oracle不是真正删除它,而是将该对象自动将放入回收站。对于一个对象的删除,其实仅仅就是简单的重令名操作。



所谓的回收站,是一个虚拟的容器,用于存放所有被删除的对象。在回收站中,被删除的对象将占用创建时的同样的空间,你甚至还可以对已经删除的表查询,也可以利用flashback功能来恢复它, 这个就是flashback drop功能。


这个功能虽然可以极大的简化误drop导致的恢复操作,但是长时间的积累可能会导致大量的空间占用(虽然Oracle具有自己的清理机制),很多时候我们需要手工介入去清理回收站。本文主要介绍清理回收站的几种方法.


 1.大量累计的空间占用









Connected to Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 
Connected as SYS


SQL> col owner for a12
SQL> select owner,object_name,CREATETIME,DROPTIME from dba_recyclebin
  2  order by droptime
  3  /

OWNER        OBJECT_NAME                    CREATETIME          DROPTIME
------------ ------------------------------ ------------------- -------------------
COMMON       BIN$AHsQ+pi+Kb/gRAADumkBdQ==$0 2005-08-29:16:42:19 2005-09-11:15:36:17
COMMON       BIN$AHsQ+pi9Kb/gRAADumkBdQ==$0 2005-08-29:16:42:19 2005-09-11:15:36:17
PDA          BIN$AdEb4zqqUcTgRAADumkBdQ==$0 2005-09-05:10:31:01 2005-09-28:15:40:39
......
BJLAIS_RUN   BIN$BtkGRT0dSwfgRAADumkBdQ==$0 2005-11-30:10:54:07 2005-12-01:16:13:17
BJLAIS_RUN   BIN$BtkGRT0cSwfgRAADumkBdQ==$0 2005-11-30:10:54:07 2005-12-01:16:13:17

750 rows selected

SQL> 


2.不同用户在回收站的对象









SQL> select owner,count(*) from dba_recyclebin group by owner;   

OWNER                  COUNT(*)
-------------------- ----------
BJLAIS_RUN                   44
COMMON                        8
MMSBLOG                     618
MMSHAWA_RUN                   2
PDA                           8
RING_RUN                     70

6 rows selected.


3.我们可以指定删除某些特定对象










SQL> purge table common.T_SERVICE_CODE_INFO;


Table purged.




4.指定清除某个表空间的所有回收站对象










SQL> purge tablespace common;

Tablespace purged.

SQL> select owner,count(*) from dba_recyclebin group by owner;   

OWNER                  COUNT(*)
-------------------- ----------
BJLAIS_RUN                   44
MMSBLOG                     618
MMSHAWA_RUN                   2
PDA                           8
RING_RUN                     70



5.以SYSDBA身份可以清除所有回收站对象










SQL> purge dba_recyclebin;


DBA Recyclebin purged.


SQL> select owner,count(*) from dba_recyclebin group by owner;  


no rows selected




6.禁用recyclebin


 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论