当前位置: 首页 > news >正文

oracle表空间增长异常或表空间占用过高问题分析

项目上反馈说业务表空间增长越来越快,上次新增的30G数据文件,不到一个月就提示表空间不足了,并且由于安全考虑,需要每天备份,导致备份异常缓慢,需要12h以上,表空间占用150G。

表空间占用高问题,只要定位到占用磁盘高的表或lob对象,处理掉就好了(根据业务实际情况处理)。

查询表空间情况

SELECT Upper(F.TABLESPACE_NAME)         "表空间名",

       D.TOT_GROOTTE_MB                 "表空间大小(M)",

       D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",

       To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99')

       || '%'                           "使用比",

       F.TOTAL_BYTES                    "空闲空间(M)",

       F.MAX_BYTES                      "最大块(M)"

FROM   (SELECT TABLESPACE_NAME,

               Round(Sum(BYTES) / ( 1024 * 1024 ), 2) TOTAL_BYTES,

               Round(Max(BYTES) / ( 1024 * 1024 ), 2) MAX_BYTES

        FROM   SYS.DBA_FREE_SPACE

        GROUP  BY TABLESPACE_NAME) F,

       (SELECT DD.TABLESPACE_NAME,

               Round(Sum(DD.BYTES) / ( 1024 * 1024 ), 2) TOT_GROOTTE_MB

        FROM   SYS.DBA_DATA_FILES DD

        GROUP  BY DD.TABLESPACE_NAME) D

WHERE  D.TABLESPACE_NAME = F.TABLESPACE_NAME

ORDER  BY 1;

发现业务表空间占用150G左右。

查看表及lob对象占用情况

在ORACLE数据库中,LOB(Large Objects —— 大对象)是用来存储大量的二进制和文本数据的一种数据类型(一个LOB字段可存储可多达4GB的数据)。

select owner,segment_name,segment_type,bytes from dba_segments order by bytes desc;

发现排在前5的均为lob对象,总占用在100G左右。一般的表占用空间不会太高,基本不会超过10G(表中的lob对象是单独存储)。某些项目上,出现较大的lob对象也是正常的。

查询lob字段属于哪张表

lob对象占用高不一定意味着异常,得看lob属于业务表还是其他情况。

select owner,table_name,column_name,segment_name from dba_lobs where segment_name='SYS_LOB0000112457C00002$$';

查询发现这些lob对象均属于SYS_EXPORT_SCHEMA%这种表,像SYS_EXPORT_SCHEMA_01,SYS_EXPORT_FULL_01这种表,基本都是expdp方式导出备份产生的,正常导出完毕,oracle会自动清除,如果没有自动清除的话,说明导出过程中出现了异常中断情况。

select * from dba_tables where table_name like 'SYS_EXPORT_SCHEMA%';

通过查询dba_tables表,LAST_ANALYZED字段的时间都是在晚上备份时间,客户也确认过出现过导出异常,可确认是中断所致。

清理相关表

接下来就好办了,drop掉就可以,这种就不要走回收站了。

drop table 'SYS_EXPORT_SCHEMA_01' PURGE;

如果lob对象所在的表为业务表或者不清楚是什么表,谨慎处理。

处理完表后,释放表空间

如果是drop操作,表空间就已经自动释放了。

如果是清理了下表数据(如删除行等),表空间不会自动释放,需要手动释放一下。

alter table GSPMETAVERSIONHISTORY move tablespace cwbase01 lob(content) store as (tablespace cwbase01);

其中GSPMETAVERSIONHISTORY 为业务表,cwbase01为表空间,content为lob所在的字段名。

转载于:https://www.cnblogs.com/Invokerr/p/6839889.html

相关文章:

  • 大前端推荐使用的前端开发工具
  • 5.求单链表中节点的个数
  • 第九天
  • fmod()函数和modf()函数
  • 读书笔记--Java核心技术--基础篇
  • velt-0.1.7开发: KernelConfig的问题
  • P1164 小A点菜
  • 新建虚拟机
  • OpenCV探索之路(五):图片缩放和图像金字塔
  • 99%的人都理解错了HTTP中GET与POST的区别
  • spring的定时任务
  • 利用QPainter绘制散点图
  • 创业经历
  • 黑客入门之单机游戏外挂
  • 如何在本地计算机打开网络文件夹(汇总)
  • 【翻译】babel对TC39装饰器草案的实现
  • css选择器
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • Java比较器对数组,集合排序
  • LeetCode算法系列_0891_子序列宽度之和
  • Quartz初级教程
  • Ruby 2.x 源代码分析:扩展 概述
  • TypeScript迭代器
  • uva 10370 Above Average
  • vue学习系列(二)vue-cli
  • 关于springcloud Gateway中的限流
  • 数据结构java版之冒泡排序及优化
  • 仓管云——企业云erp功能有哪些?
  • #ifdef 的技巧用法
  • #pragma once
  • #Z2294. 打印树的直径
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (一)VirtualBox安装增强功能
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)Sublime Text3配置Lua运行环境
  • (转)关于pipe()的详细解析
  • (转)人的集合论——移山之道
  • .Net core 6.0 升8.0
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .net 获取url的方法
  • .NET企业级应用架构设计系列之开场白
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • :O)修改linux硬件时间
  • @Controller和@RestController的区别?
  • [] 与 [[]], -gt 与 > 的比较
  • [20150707]外部表与rowid.txt
  • [BJDCTF2020]The mystery of ip
  • [CISCN2019 华东北赛区]Web2
  • [docker]docker网络-直接路由模式
  • [Google Guava] 1.1-使用和避免null
  • [HDU] 1054 Strategic Game 入门树形DP