文章目录

  • 问题描述
  • 解决步骤
  • 相关知识
    • CLOB 数据类型
    • NCLOB 数据类型
    • BLOB 数据类型
    • BFILE 数据类型

问题描述

开发环境中做测试时,发现某个tablespace空间不足,再根据下面的sql定位到是其中一个LOBSEGMENT数据库对象占很大的空间(在我们系统中对应的字段类型是BLOB),故要做清理操作,以减少空间占有。
注意,下面sql中的表空间名字,用ZZZ代替,需根据实际情况替换。

SELECT OWNER, TABLESPACE_NAME, SEGMENT_NAME, SEGMENT_TYPE, PARTITION_NAME, ROUND(BYTES/(1024*1024),2) SIZE_MB
FROM DBA_SEGMENTS
WHERE SEGMENT_TYPE IN ('TABLE', 'TABLE PARTITION', 'TABLE SUBPARTITION','INDEX', 'INDEX PARTITION', 'INDEX SUBPARTITION', 'TEMPORARY', 'LOBINDEX', 'LOBSEGMENT', 'LOB PARTITION')
AND TABLESPACE_NAME = 'ZZZ'
ORDER BY BYTES DESC;

注意,SEGMENT_NAME, SEGMENT_TYPE这两个字段。
SEGMENT_TYPE = LOBSEGMENT
LOBSEGMENT的系统命名规则是
SYS_LOB(10 digit object_id)C(5 digit col#)$$

解决步骤

利用下面的2条sql查出该对象的相关信息:
注意下面值的不同;

select object_name,status from dba_objects where object_id='xxxxxxxxxx';
## object_id 这里写LOBSEGMENT名字里SYS_LOB后的10位数字。SELECT owner, table_name, column_name
FROM dba_lobs
WHERE segment_name = 'SYS_LOB<<identifier>>$$';

确定好该LOBSEGMENT对象来自于哪个table的哪个字段,然后做一个清理操作。

  1. 将该表导出
  2. 删除表,删除表要使用truncate,truncate table xxxxx;
  3. 再导入,没有释放空间,则需要情况一下回收站,执行 purge table xxxx;
    或者清空一下回收站
    purge recyclebin;

相关知识

LOB类型

oracle中内置的LOB数据类型包括BLOB、CLOB、NCLOB、BFILE(外部存储)的大型化和非结构化数据,如文本、图像、视屏、空间数据存储。

CLOB 数据类型

它存储单字节和多字节字符数据。支持固定宽度和可变宽度的字符集。CLOB对象可以存储最多 (4 gigabytes-1) * (database block size) 大小的字符

NCLOB 数据类型

它存储UNICODE类型的数据,支持固定宽度和可变宽度的字符集,NCLOB对象可以存储最多(4 gigabytes-1) * (database block size)大小的文本数据。

BLOB 数据类型

它存储非结构化的二进制数据大对象,它可以被认为是没有字符集语义的比特流,一般是图像、声音、视频等文件。BLOB对象最多存储(4 gigabytes-1) * (database block size)的二进制数据。

BFILE 数据类型

二进制文件,存储在数据库外的系统文件,只读的,数据库会将该文件当二进制文件处理。

Oracle中清理LOBSEGMENT对象相关推荐

  1. php对象持久化,在 Oracle 中完成 PHP5 对象的持久

    在 Oracle 中完成 PHP5 对象的持久 作者:Barry McKay 在数据库驱动的 Web 应用程序中实现 PHP5 对象的持久,朝着完全面向对象的 Web 应用程序开发迈进重要的一步. 2 ...

  2. oracle中的数据对象

    oracle中的数据对象有表.视图.索引.序列等 表的相关操作 1.创建表 方式一: 方式二:create table person( create table person1 id number(1 ...

  3. oracle失效对象是什么意思,Oracle中无效数据库对象的处理方法

    Oracle中无效数据库对象的处理方法 Oracle总是会尝试自动重编译无效的PL/SQL对象和视图,但是可能不会成功.虽然Oracle可能建议手动地进行编译,不过我们并非必须进行这个操作.通常无效对 ...

  4. C#创建Oracle中的几何对象:点、线、面

    最初写这个程序是应老大的要求解决"更新Oracle中的空间数据时会因为wkt字符串太长而报错"这个问题,之前的更新都是在程序中插入一条SQL语句来进行更新,由于SQL语句本身的一些 ...

  5. Oracle中的数据库对象

    原文地址:https://www.cnblogs.com/linhuide/p/5804878.html 参考地址:http://www.cnblogs.com/lovemoon714/archive ...

  6. Oracle中的sequence对象

    Oracle中提供了sequence对象,由系统提供自增长的序列号,通常用于生成数据库数据记录的自增长主键或序号的地方.下面就主要介绍一下关于sequence对象的生成,修改,删除等常用的操作: 1. ...

  7. oracle中的几大对象,oracle 4个大对象(lobs)类型介绍

    oracle 4个大对象(lobs)类型介绍 在oracle中,有4个大对象(lobs)类型可用,分别是blob,clob,bfile,nclob. 下面是对lob数据类型的简单介绍. blob:二进 ...

  8. Oracle中备份用户对象的两种方法

    方法1: 执行步骤: exp userid=用户名/密码@数据库名 file=c:\emp.dmp 使用当前用户导出 exp userid=sys/sys@数据库名 file=c:\emp.dmp o ...

  9. oracle中prad函数_等保测评2.0:Oracle身份鉴别

    一.说明 本篇文章主要说一说oracle数据库中身份鉴别控制点中测评项a的相关内容和理解. 二.测评项a a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换 ...

最新文章

  1. Java多线程(三):使用ThreadPoolExecutor创建线程池
  2. Android开发,你应该知道的
  3. linux 内核高端内存意义,Linux内核高端内存管理
  4. Linux signal 那些事儿 (3)
  5. 地图上导出坐标html文件,如何将标签的坐标、海拔等属性导出到TXT文本中
  6. vs2010 c++项目创建简易教程
  7. STM32 使用SPI读写FLASH(W25Q64型号)
  8. matlab中diamond,my-DIAMOND 经典的莫泰识别分析软件 ,在matlab平台下 238万源代码下载- www.pudn.com...
  9. 7 Babylonjs基础入门 动画
  10. Oracle隐含参数查看
  11. Unity3d将资源打包成AssetBundle 读取后材质球丢失的问题
  12. Android Studio 高版本无法执行Java main方法的问题
  13. 101128 ~ 101204
  14. Vue3 - 组件通信(父传子)
  15. 045孙悟空和独角大王对话
  16. android button的美化
  17. 计算机基础考点笔记-1
  18. kali Linux 介绍
  19. 解决vue/es6语法低版本安卓手机显示白屏的兼容性问题
  20. 二分类交叉熵损失函数python_【深度学习基础】第二课:softmax分类器和交叉熵损失函数...

热门文章

  1. Android中获取唯一的id
  2. JSP教师辅助办公软件教学进程管理系统yeclipse开发mysql数据库bs框架java编程jdbc详细设计
  3. 基于 xterm + websocket + vue 实现网页版终端 terminal
  4. 【32最小系统板】pid循迹小车(铁丝循迹)
  5. js实现chrome浏览器copy复制功能
  6. buuctf crypto page 2
  7. two-pointer双指针法
  8. VC开发环境 路径宏
  9. 7个月后再测「小度在家」,已然超出音箱属性的未来新物种
  10. 自己初步了解python数据爬虫