如何使用 pg_shard 进行动态缩放

How to do dynamic scaling using pg_shard

我正在使用 postgresql 进行数据库扩展。 目前我正在使用 pg_shard 进行扩展并能够进行分片和复制。我已经测试了 pg_shard 的自述文件中提到的示例。 但是我需要在添加新机器或旧机器时动态扩展集群 retired.I 我正在使用 google 云 VM 来设置数据库。所以一旦一个 VM 充满了数据,我想用相同的设置新实例配置。 即,如果当前机器大小为 4GB 并且内存不足,那么它应该再创建一个 4GB 大小的 VM,并且下一个条目应该出现在那里。 我已经完成了 http://slideplayer.com/slide/4896815/,在阅读完这篇文章后,我明白这是可以做到的,但在任何地方都没有提到这些步骤。 如何使用 pg_shard?

实现此目的

我自己得到了答案。 我们可以为此使用 CitusDB。 CitusDB 安装了一个名为 "shard_rebalancer" 的扩展,它可以帮助您在向集群添加新节点时四处移动分片。为此,您需要按照 CitusDB 的安装说明进行操作。

在此文档中,您可以找到有关分片重新平衡器函数(即 rebalance_table_shards 和 replicate_table_shards)的相关信息

简单的话,必须按照以下步骤进行: 将 CitusDB 节点添加到集群 将 IP(或主机名)添加到 pg_worker_list.conf 重新加载主节点配置,以便主节点知道新的工作节点 运行 "SELECT rebalance_table_shards('tablename')" 在主节点上。