写点什么

【YashanDB 数据库】YashanDB 如何回收表空间

作者:YashanDB
  • 2024-08-13
    广东
  • 本文字数:459 字

    阅读完需:约 2 分钟

确认表空间高水位线,是否有可回收空间


select a.tablespace_name,a.high_water_mark,b.user_bytes,b.total_bytes from(SELECT tablespace_name, max(header_block+blocks) * 8192 AS high_water_mark FROM dba_segments WHERE tablespace_name = 'USERS' GROUP BY tablespace_name) a,dba_tablespaces bwhere a.tablespace_name=b.tablespace_name ;
复制代码



如果 total_bytes 大于 high_water_mark,代表有可回收的空间为 total_bytes-high_water_mark,单位 byte。


确认回收前,表空间磁盘大小


! ls -l $YASDB_DATA/dbfiles
复制代码



回收空间


ALTER TABLESPACE USERS SHRINK SPACE KEEP 200M;
复制代码


这里的 200M 需大于高水位线,不然无法回收。


确认回收后的表空间大小


select a.tablespace_name,a.high_water_mark,b.user_bytes,b.total_bytes from(SELECT tablespace_name, max(header_block+blocks) * 8192 AS high_water_mark FROM dba_segments WHERE tablespace_name = 'USERS' GROUP BY tablespace_name) a,dba_tablespaces bwhere a.tablespace_name=b.tablespace_name ; ! ls -l $YASDB_DATA/dbfiles
复制代码



用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
【YashanDB数据库】YashanDB如何回收表空间_yashandb_YashanDB_InfoQ写作社区