从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 a12SQL> 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:17COMMON       BIN$AHsQ+pi9Kb/gRAADumkBdQ==$0 2005-08-29:16:42:19 2005-09-11:15:36:17PDA          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:17BJLAIS_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                   44COMMON                        8MMSBLOG                     618MMSHAWA_RUN                   2PDA                           8RING_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                   44MMSBLOG                     618MMSHAWA_RUN                   2PDA                           8RING_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

如果我们不希望使用Oracle的recyclebin,可以通过参数禁用这个特性。

在Oracle10gR1中,通过修改一个隐含参数:_recyclebin 为False可以禁用这个特性:

SQL> set linesize 132SQL> column name format a30SQL> column value format a25SQL> select  2    x.ksppinm  name,  y.ksppstvl  value,  3    y.ksppstdf  isdefault,  4    5    decode(bitand(y.ksppstvf,7),1,''MODIFIED'',4,''SYSTEM_MOD'',''FALSE'')  ismod,  6    decode(bitand(y.ksppstvf,2),2,''TRUE'',''FALSE'')  isadj  7  from  8    sys.x$ksppi x,  9    sys.x$ksppcv y 10  where 11    x.inst_id = userenv(''Instance'') and 12    y.inst_id = userenv(''Instance'') and 13    x.indx = y.indx and 14    x.ksppinm like ''%&par%'' 15  order by 16    translate(x.ksppinm, '' _'', '' '') 17  /Enter value for par: recyclebinold  14:   x.ksppinm like ''%&par%''new  14:   x.ksppinm like ''%recyclebin%''
NAME                           VALUE                     ISDEFAULT ISMOD      ISADJ------------------------------ ------------------------- --------- ---------- -----_recyclebin                    TRUE                      TRUE      FALSE      FALSE
1 row selected.

在Oracle10gR2中,recyclebin变成了一个常规参数,可以在session/system级动态修改:

[oracle@danaly ~]$ sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Dec 12 15:34:56 2005
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
SQL> show parameter recyclebin 
NAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------recyclebin                           string      on
SQL> alter session set recyclebin=off;
Session altered.
SQL> alter session set recyclebin=on  2  /
Session altered.
SQL> alter system set recyclebin=off;
System altered.
SQL> alter system set recyclebin=on;
System altered.

drop table tableName后,并不能完全清除空间,可以采用以下方法:

查询垃圾信息:

SELECT t.object_name,t.type ,t.original_name FROM user_recyclebin t;

清除垃圾信息:purge table origenal_tableName;
    purge index origenal_indexName;

删除回收站所有垃圾信息:
    PURGE recyclebin;

删除Table不进入Recycle的方法:
    drop table tableName purge;

  恢复表:
    SQL> flashback table XXX to before drop;
    Flashback complete.

ORACLE10回收站-Recyclebin相关推荐

  1. 【转】Oracle回收站(recyclebin)

    我们都比较熟悉windows中的回收站,文件删除后放到回收站里还可以再复原.Oracle回收站的原理完全一样,只是实现的细节方面有些差异.另外回收站中只能回收表和相关的对象包括索引.约束.触发器.嵌套 ...

  2. Oracle10g的回收站(recyclebin)和自由空间管理

    今天在检查数据库报告时发现了这样一条记录: - Large object Report OWNER SEGMENT_NAME SEGMENT_TYPE TABLESPACE Size_Mb ----- ...

  3. Oracle的新特性Recyclebin回收站

    Oracle10g提供了类似操作系统中的回收站功能.当drop table的时候,实际上只是将其重命名,并将table以及相关联的对象如index,constraint等放到回收站(RecycleBi ...

  4. oracle recyclebin详解,oracle recyclebin详解

    今天在SOA应用数据库上运用DBMS_REDEFITION包进行在线非分区表转换分区表操作时,本想DROP掉建的临时表cube_scope_temp不小心后面忘记加"temp"直接 ...

  5. oracle清除bin,Oracle recyclebin详解(闪回删除的表)

    在SOA应用数据库上运用DBMS_REDEFITION包进行在线非分区表转换分区表操作时,本想DROP掉建的临时表cube_scope_temp不小心后面忘记加"temp"直接执行 ...

  6. 10g 回收站(RECYCLE BIN)导致查询表空间的利用率时很慢

    一日使用OEM检查数据库(10g)数据文件.表空间时,发现页面弹出很慢,大概需要十几分钟! 以前在9i中使用OEM检查数据文件.表空间时,页面弹出很快.后来发现是由于10g 的recyclebin的原 ...

  7. Oracle的回收站和闪回查询机制(二)

    上一篇中讲诉了Oracle中一些闪回查询(Flashback Query),这是利用回滚段信息来恢复一个或一些表到以前的一个时间点(一个快照).要注意的是,Flashback Query仅仅是查询以前 ...

  8. oracle 数据库回收站,Oracle数据库的回收站

    对于Oracle数据库,为了保证数据的安全性,我们需要设置好数据库的回收站功能,默认这个功能是开启的.我们可以通过以下步骤进行查看和修改. 1 查看数据库是否设置了数据库的回收站(recyclebin ...

  9. RecycleBin

    Oracle10g提供了类似操作系统中的回收站功能.当drop table的时候,实际上只是将其重命名,并将table以及相关联的对象如index,constraint等放到回收站(RecycleBi ...

最新文章

  1. Qt 实现串口终端控制台,适配RT-Thread的FinSH控制台功能(提供qt源码)
  2. cad图标注释大全_CAD源泉插件快捷键使用教程(全集)
  3. 网络爬虫--13.数据提取之JSON与JsonPATH
  4. fastjson 不转某些字段_全面总结Fastjson过滤字段、排除字段的5种方法(含示例)...
  5. Ubuntu 16.04 安装phpmyadmin以及注意事项
  6. Struts 2 Spring Hibernate三大框架的执行流程以及原理
  7. CSS cursor 和 opacity 属性
  8. Spring MVC数据验证简介
  9. 全国计算机python考试难吗_全国计算机二级的难度有多大?
  10. 腾讯优图×厦大联队夺冠全球AI医疗大赛!刷新肝脏肿瘤影像分割世界纪录
  11. nachos交叉编译器java_ubuntu - 编译Nachos源代码时出错“gnu / stubs-32.h:没有这样的文件或目录”...
  12. HPE 3PAR StoreServ存储系统连接解决方案
  13. oracle 时间毫秒数,计算Oracle中两个时间戳之差(以毫秒为单位)
  14. 01 Tomcat 的manger配置
  15. zxr10交换机配置手册vlan_中兴ZXR10配置说明.doc
  16. AppStore上线审核“App预览和截屏”chrome上的截屏参数
  17. _access()函数
  18. 无线路由器使用有线的桥接方法。
  19. dig命令命令常见用法
  20. Java实现批量下载(打包成zip)

热门文章

  1. SpringBoot-SpringCloud-版本对应关系
  2. leetcode-66-加一
  3. Substring() 截取
  4. 洛谷P2680 运输计划(倍增LCA + 树上差分 + 二分答案)
  5. XML中需要转义的字符
  6. elasticsearch索引和映射
  7. CodeActivity基本使用
  8. 用SDL创建一个窗口
  9. 树莓派 rtl8188eu 芯片wifi驱动
  10. 2.4.4 案例理解4种事务的隔离级别