【达梦数据库】达梦表空间清理-磁盘清理
·
达梦数据库在长时间使用后,经过反复的增加数据,删除数据,会导致表空间持续增加,即使将数据删除后,表空间不会自动收缩,导致占用了很大空间,但实际使用空间很小,磁盘大量浪费;
所以咱们需要定期的收缩表空间;
-- 首先,你需要连接到数据库,查看哪个表空间占用了大量空间。
SELECT
t.TABLESPACE_NAME,
t.TOTAL_MB as "总占用空间(M)",
f.FREE_MB as "空闲空间(M)",
t.TOTAL_MB - f.FREE_MB AS "已使用空间",
ROUND((t.TOTAL_MB - f.FREE_MB) / t.TOTAL_MB * 100, 2) AS "空间使用占比"
FROM
(SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / 1024 / 1024) TOTAL_MB FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) t,
(SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / 1024 / 1024) FREE_MB FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) f
WHERE
t.TABLESPACE_NAME = f.TABLESPACE_NAME
ORDER BY "空间使用占比" DESC;
如下,BFI占用了290G空间,但是实际只使用了577M;大量浪费;

-- 首先将数据文件切换到手动扩展模式(如果不是的话)
-- JHXT_XIONGAN:表空间名称
-- '/data/dm8data/DAMENG/JHXT_XIONGAN.DBF' :表空间存储目录
ALTER TABLESPACE JHXT_XIONGAN DATAFILE '/data/dm8data/DAMENG/JHXT_XIONGAN.DBF' AUTOEXTEND OFF;
-- 收缩数据文件到指定大小 (例如 5000M)
-- 这个值必须大于当前表空间已使用的空间总量,否则会报错
ALTER TABLESPACE JHXT_XIONGAN RESIZE DATAFILE '/data/dm8data/DAMENG/JHXT_XIONGAN.DBF' TO 5000;
-- 将数据文件切换到自动扩展模式(如果不是的话)
ALTER TABLESPACE JHXT_XIONGAN DATAFILE '/data/dm8data/DAMENG/JHXT_XIONGAN.DBF' AUTOEXTEND ON;
更多推荐
所有评论(0)