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

oracle 表空间超过最大限度,清理数据释放内存

目录

一、扩容:参考 https://blog.csdn.net/weixin_40841731/article/details/134931289

二、清理数据

1、查询文件大小情况(管理员账号)

2、查询表的大小(使用该表空间的用户)

3、清理数据(使用该表空间的用户)


报错:

1、0RA-01653:表aaa.xxx无法通过1024(在表空间aaa中)扩展

2、ORA-01144:文件大小(4352000块)超出4194303块的最大数

处理方式:

一、扩容:参考 https://blog.csdn.net/weixin_40841731/article/details/134931289

二、清理数据

1、查询文件大小情况(管理员账号)

select dbf.tablespace_name,
dbf.totalspace "总量(M)",
dbf.totalblocks as 总块数,
dfs.freespace "剩余总量(M)",
dfs.freeblocks "剩余块数",
(dfs.freespace / dbf.totalspace) * 100 "空闲比例"
from (select t.tablespace_name,
sum(t.bytes) / 1024 / 1024 totalspace,
sum(t.blocks) totalblocks
from dba_data_files t
group by t.tablespace_name) dbf,
(select tt.tablespace_name,
sum(tt.bytes) / 1024 / 1024 freespace,
sum(tt.blocks) freeblocks
from dba_free_space tt
group by tt.tablespace_name) dfs
where trim(dbf.tablespace_name) = trim(dfs.tablespace_name) and dfs.tablespace_name='aaa'

2、查询表的大小(使用该表空间的用户)

select segment_name, bytes  / 1024 / 1024
from user_segments 
where segment_type = 'TABLE' order by bytes desc; 

3、清理数据(使用该表空间的用户)

a.重建表
创建一个新表,将旧表的数据插入到新表中,再删除旧表,这种方法可以彻底释放空间,但如果表空间不足以创建新表再插入数据时,这种方法是不可行的。

CREATE TABLE new_table AS SELECT * FROM your_table WHERE 1=0;
INSERT INTO new_table SELECT * FROM your_table;
DROP TABLE your_table;
ALTER TABLE new_table RENAME TO your_table;

b.使用TRUNCATE命令
如果你只是想删除表中的所有数据而不是结构本身,可以使用TRUNCATE命令。这将会删除表中的所有数据,并且会释放占用的空间:

TRUNCATE TABLE your_table;

c、删除表数据

Oracle数据库使用了一种可称为“可变长记录”的存储结构,这意味着即使删了表数据,原来的空间也仍然被保留以供将来可能相同记录的大小使用。这种方式是为了提高数据库操作的效率,避免频繁的释放存储空间。

通过shrink space收缩表,释放空间

--删除数据 
delete from table_aa  where ab='xx';--打开行移动
alter table table_aa enable row movement;
--下调HWM
alter table table_aa shrink space;
--关闭行移动
alter table table_aa disable row movement;

http://www.xdnf.cn/news/13639.html

相关文章:

  • apple苹果商务管理联合验证使用自定义身份提供方
  • uniapp——input 禁止输入 ,但是可以点击(禁用、可点击)
  • 每日算法刷题Day29 6.12:leetcode二分答案4道题,用时1h10min
  • 给Markdown渲染网页增加一个目录组件(Vite+Vditor+Handlebars)(上)
  • 《TCP/IP协议卷1》TCP协议TCP连接建立和释放
  • IDEA2025(2025.1.1)都更新了什么???
  • Golang实现分布式Masscan任务调度系统
  • 力扣hot100-lc34在排序数组中查找元素的第一个和最后一个位置/lc153寻找旋转排序数组中的最小值/lc33搜索旋转排序数组
  • 岗位竞聘竞选报告个人简历PPT模版分享
  • 基于GeoTools的道路相交多个点容差冗余计算实战
  • MediaPipe如何训练自己的手势数据
  • Java异步编程:提升性能的实战秘籍
  • TruBit Pro:深化全球布局,拓展战略合作
  • (十三)计算机视觉中的深度学习:特征表示、模型架构与视觉认知原理
  • node-red的http-request组件调研三方接口请求参数为form-data解决方案
  • 数据分析入门初解
  • AbMole| Angiotensin II human(M6240;血管紧张素Ⅱ)
  • Vue.js 中 “require is not defined“
  • 大模型面试题:多模态处理多分辨率输入有哪些方法?
  • SpringMVC与Struts2对比教学
  • DeepSeek 助力 Vue3 开发:打造丝滑的日历(Calendar),日历_学习计划日历示例(CalendarView01_20)
  • 【React】常用的状态管理库比对
  • 短剧系统开发:打造高效、创新的短视频娱乐平台 - 从0到1的完整解决方案
  • [行为型模式]观察者模式
  • 【苍穹外卖项目】Day01
  • Django(自用)
  • Redis:渐进式遍历
  • ArkUI-X构建Android平台AAR及使用
  • ROS2 工作空间中, CMakeLists.txt, setup.py和 package.xml的作用分别是?
  • 【编译原理】题目合集(一)