近来有套库空间紧张,发现有很大BIN$开头的TABLE partition,index partition 类型的段,查询确认是2个月前删除的对象,手动清空过dba_recyclebin使用purge,但都过去几天了,后来dba_recyclebin一直为空,发现对象BIN$XX还存在,ORACLE 在处理大的分区表时在开启RECYCLEBIN的情况有时会出现这种异常情况,下面记录一下这个CASE。

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for HPUX: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production

SQL> select bytes,segment_type,owner,tablespace_name,segment_name from dba_segments where segment_name like 'BIN$%'

BYTES SEGMENT_TYPE OWNER TABLESPACE_NAME SEGMENT_NAME
-------------------- ------------------ --------------- ------------------------------ ------------------------------
5,006,950,400 INDEX PARTITION CDR CDR_INX7 BIN$Du34GVECb4zgVAAfKQ3k2w==$0
13,659,799,552 INDEX PARTITION CDR CDR3 BIN$Du34GVECb4zgVAAfKQ3k2w==$0
1,048,576 INDEX PARTITION CDR CDR3 BIN$Du34GVECb4zgVAAfKQ3k2w==$0
80,321,970,176 TABLE PARTITION CDR CDR_INX5 BIN$Du34GVEDb4zgVAAfKQ3k2w==$0
84,739,620,864 TABLE PARTITION CDR CDR4 BIN$Du34GVEDb4zgVAAfKQ3k2w==$0
80,260,104,192 TABLE PARTITION CDR CDR_T1 BIN$Du34GVEDb4zgVAAfKQ3k2w==$0
80,747,692,032 TABLE PARTITION CDR CDR_INX8 BIN$Du34GVEDb4zgVAAfKQ3k2w==$0
...

select object_id from dba_objects where object_name like 'BIN%';
--省略

SQL> @oid 578398

owner object_name object_type SUBOBJECT_NAME CREATED LAST_DDL_TIME status DATA_OBJECT_ID
------------------------- ------------------------------ ------------------ ------------------------------ ----------------- ----------------- --------- --------------
CDR BIN$Du34GVEDb4zgVAAfKQ3k2w==$0 TABLE PARTITION GPRS312_MAX 20140722 22:27:02 20140828 17:14:30 VALID 592609

SQL> select * from dba_tables where table_name='BIN$Du34GVEDb4zgVAAfKQ3k2w==$0';

no rows selected

SQL> select * from dba_tables where table_name like 'BIN%';

no rows selected
SQL> select 1 from cdr."BIN$Du34GVEDb4zgVAAfKQ3k2w==$0" partition(GPRS312_01) where rownum<2;

1
----------
1

SQL> select * from dba_recyclebin;

no rows selected

SQL> select count(*) from dba_tab_partitions where table_name='BIN$Du34GVEDb4zgVAAfKQ3k2w==$0';

COUNT(*)
----------
31

TIP:
当分区表在RECYCLEBIN开启的情况下:
drop N partition ,partitioon 会直接删除而不会进recyclebin
drop table, 表信息会从DBA_TABLES 消失,dba_tab_partition 重命名为BIN$开头的对象,其它TRIGER,INDEX同类同,但同时会在DBA_RECYCLEBIN中记录table的BIN 和原表名及删除时的一些信息,而且可以使用BIN$开头的表名查询表记录。

试着去删除

SQL> purge index cdr."BIN$Du34GVECb4zgVAAfKQ3k2w==$0";
purge index cdr."BIN$Du34GVECb4zgVAAfKQ3k2w==$0"
*
ERROR at line 1:
ORA-38307: object not in RECYCLE BIN

SQL> drop table cdr."BIN$Du34GVEDb4zgVAAfKQ3k2w==$0";
drop table cdr."BIN$Du34GVEDb4zgVAAfKQ3k2w==$0"
*
ERROR at line 1:
ORA-38301: can not perform DDL/DML over objects in Recycle Bin
解决方法:

SQL> ALTER SESSION SET RECYCLEBIN=OFF;
Session altered.

SQL> drop table cdr."BIN$Du34GVEDb4zgVAAfKQ3k2w==$0";
Table dropped.
如果session级关闭recyclebin不可以,可以尝试在实例级关闭或重启实例后再次尝试删除,本次清理释放了2T的空间。

O对删除大分区表时的最佳实践:
Demantra Large Table Partitions and Using the Flashback Recycle bin, recyclebin, dba_recyclebin and sys.RECYCLEBIN$ Purge Best Practice (文档 ID 1962730.1)

Invalid segment BIN$xxx and dba_recyclebin was empty (回收站空,释放无效的BIN$xx空间)的更多相关文章

  1. ORA-10635: Invalid segment or tablespace type

    上周星期天在迁移数据时,碰到了ORA-10635: Invalid segment or tablespace type 错误,当时的操作环境如下: 操作系统版本: [oracle@xxxxx scr ...

  2. django报错解决:Invalid HTTP_HOST header: 'xxx.com'. You may need to add u'xxx.com' to ALLOWED_HOSTS.

    django版本:1.11.15 使用uwsgi+nginx运行django程序,出现报错,报错为:Invalid HTTP_HOST header: 'xxx.com:82'. You may ne ...

  3. Invalid HTTP_HOST header: 'xxx.xx.xxx.xxx:8000'. You may need to add 'xxx.xx' to ALLOWED_HOSTS

    Invalid HTTP_HOST header: 'xxx.xx.xxx.xxx:8000'. You may need to add 'xxx.xx' to ALLOWED_HOSTS - buk ...

  4. Invalid HTTP_HOST header: 'xxx.xxx:8000'. You may need to add 'xxx.xx' to ALLOWED_HOSTS

    用python3 manage.py runserver 0.0.0.0:8000命令运行django程序后,通过浏览器访问服务器网址的8000端口,出现访问错误,报错为 Invalid HTTP_H ...

  5. Error: Invalid CSS after "xxx": expected 1 selector or at-rule, was "{}"

    在VSCode中编译sass文件时,出现报错:Error: Invalid CSS after "xxx": expected 1 selector or at-rule, was ...

  6. empty视为空的条件

    /** * empty视为空的条件: * (1)."" (空字符串) * (2).0 (作为整数的0) * (3).0.0 (作为浮点数的0) * (4)."0" ...

  7. Spring Scheduled定时任务报错 java.lang.IllegalStateException: Encountered invalid @Scheduled method 'xxx': For input string: "2S"

    报错信息如下: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ding ...

  8. java——解决"java.io.StreamCorruptedException: invalid stream header: xxx"

    这个错误是由序列化引起的,可能的原因以及解决方法: 1.kryo对于集合(比如 Map)的反序列化会失效,报这个错误,解决办法比较暴力,不用kryo了,直接用java原生方法. 2.使用Java原生方 ...

  9. eclipse中的Invalid text string (xxx).

    这个是说明在eclipse中引用HTML的时候,语法出现了不规范的错误 可以到https://www.w3school.com.cn/index.html里面找找对应对象的问题 我之前就是option ...

随机推荐

  1. 详谈easyui datagrid增删改查操作

    转自:http://blog.csdn.net/abauch_d/article/details/7734395 前几天我把easyui dadtagrid的增删改查的实现代码贴了出来,发现访问量达到 ...

  2. Asp.net--Ajax前后台数据交互

    转自:http://www.cnblogs.com/guolebin7/archive/2011/02/22/1961737.html 代码由前后台两部分组成: 前台:(新建一个Default.asp ...

  3. [置顶]VC2013的一个bug

    [置顶]VC2013的一个bug 前段时间在尝试使用一个C++的GUI库nana.这个库最大的特点在于使用现代C++风格去编写GUI程序,而不需要使用大量的比较丑陋的代码(如MFC中的各种宏),或者其 ...

  4. BZOJP1003 [ZJOI2006]物流运输trans

    BZOJP1003 [ZJOI2006]物流运输trans 1003: [ZJOI2006]物流运输trans Time Limit: 10 Sec  Memory Limit: 162 MB Sub ...

  5. Bzoj 1726: [Usaco2006 Nov]Roadblocks第二短路 dijkstra,堆,A*,次短路

    1726: [Usaco2006 Nov]Roadblocks第二短路 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 969  Solved: 468[S ...

  6. Android 播放视频并获取指定时间的帧画面

    最近做的项目要求既能播放视频(类似于视频播放器),又能每隔1s左右获取一帧视频画面,然后对图片进行处理,调查了一周,也被折磨了一周,总算找到了大致符合要求的方法.首先对调查过程中涉及到的方法进行简单介 ...

  7. Jackson中的那些坑

    不符合驼峰规范的变量 “驼峰命名法”请自行百度.简单的来说就是变量的第一个单词以小写字母开始其他单词首字母大写,或者全部单词首字母都大写,分别称为“小驼峰”和“大驼峰” 比如一个符合驼峰规范命名的实体 ...

  8. 【转】谁说Vim不是IDE?(三)

    谁说Vim不是IDE?(三)   常用插件 之所以说Vim形成了自己的生态环境,就是因为Vim具备开放的插件体系,开发者为了提升开发效率,为Vim编写了数以万计的插件,我们可以根据需要任意选择,也可以 ...

  9. 【Java重构系列】重构31式之搬移方法

    重构第二式:搬移方法 (Refactoring 2: Move Method) 毋容置疑,搬移方法(Move Method)应该是最常用的重构手段之一,正因为太常用而且较为简单,以至于很多人并不认为它 ...

  10. postgresql9.4新特性jsonb学习-update更新操作

    先科普下概念:PgSQL9.4 新增 JSONB 数据类型, JSONB 同时属于 JSON (JavaScript Object Notation) 数据类型,jsonb 和 json 的输入数据几 ...