gpshrink
Apache Cloudberry 通过 gpshrink 系统工具缩容集群。集群资源空闲时,例如磁盘空间占用长期低于 20%、CPU 或内存占用率持续较低,则可以使用 gpshrink 来实现集群的缩容,从而节省服务器资源。用户可以通过 gpshrink 工具删除多余服务器上的 segment,从而实现集群缩容。
gpshrink 在执行时分为两阶段:
- 在准备阶段,会收集数据库中所有需要重分布的用户表信息。
- 在数据重分布阶段,会将数据库集群中的所 有表进行数据重分布,即将现有的数据库集群中的数据重新分布到扩容或缩容后的数据库中。
使用 gpshrink 缩容集群
-
创建一个三节点的集群。
make create-demo-cluster
-
创建测试表 test 并查看缩容前的状态。
-- 建表并插入数据
CREATE TABLE test(a INT);
INSERT INTO test SELECT i FROM generate_series(1,100) i;
-- 查看 test 表的数据分布
SELECT gp_segment_id, COUNT(*) FROM test GROUP BY gp_segment_id;
-- 查看元数据状态
SELECT * FROM gp_distribution_policy;
SELECT * FROM gp_segment_configuration;