南大通用GBase 8a 集群(gbase database)时常遇到线上节点磁盘使用率飙升至 95% 以上的告警,严重时会阻塞写入、影响业务正常运行。
今天分享两套解决方案,一套零硬件投入、从存量数据压缩 + 碎片清理入手,最大化节省磁盘,一套硬件扩容兜底,兼顾短期应急与长期业务发展。
适合历史归档表、低频查询、无实时写入的数据表,全量重建高压缩表可一次性最大化瘦身,预估释放近一半存储空间。
1、创建高压缩新表
CREATE TABLE "t1_bak" (
"a" int(11) DEFAULT NULL,
"b" varchar(10) DEFAULT NULL ) COMPRESS('HighZ', 0)
ENGINE=EXPRESS DEFAULT CHARSET=utf8 TABLESPACE='sys_tablespace';
2、全量迁移历史数据
INSERT INTO "t1_bak" SELECT * FROM "t1";
3、数据校验并替换原表
核对数据行数、关键字段,确认数据完整无误后切换表:
DROP TABLE "t1";RENAME TABLE "t1_bak" TO "t1";
4、验证磁盘释放效果
库内查看表存储大小:
SELECT table_name, data_length/1024/1024 AS table_size_mb FROM
information_schema.cluster_tables WHERE table_schema = '数据库名' and table_name='表名';
服务器侧查看磁盘整体占用:df -h
压缩优化注意事项
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69979120/viewspace-3181125/ ,如需转载,请注明出处,否则将追究法律责任。