达梦默认表空间数据文件是可以自动扩展,且上限64TB,所以在没有限制的情况下,某些表的异常写入可能导致表空间扩展到很大,占用过多的磁盘空间,即使表数据清除后,磁盘空间无法回收。
新版本支持resize 数据文件变小了
测试过程:
创建表空间,测试表
插入数据后,数据文件拓展到了1516MB,剩余可用空间115MB
此时删除表t3数据,可用空间变成247MB,即使用1269MB
尝试收缩表空间到1300MB
收缩成功。收缩后free会变大
此时truncate 变,free不会变化
重新插入数据,还是使用1269MB
此时truncate t1;使用为848MB
想缩小到1200MB,报错无法回收簇
再truncate t2;还是无法回收,此时free的为873MB
继续truncate t3;可以收缩成功
此时只有5MB在使用
尝试收缩到初始300MB,报错无效的大小
继续drop掉3个表,再收缩,依然报错无效的大小;
总结:
resize表空间变小,目前还只能回收最后分配的空间,并不能回收数据文件上的全部free空间。
实际中碰到数据文件很大的情况,还是得导出或者迁移数据后,删除并重建表空间。
文章
阅读量
获赞