本文提供了针对Azure Database for PostgreSQL灵活服务器弹性群集执行水平缩放操作的分步说明。
Azure Database for PostgreSQL 弹性群集通过向群集添加更多工作器节点来提供水平缩放。 缩放 PostgreSQL 弹性群集时,可以通过为数据库提供更多资源或更多节点来处理增长,以便进行并行查询处理。 通过最短的停机时间和内置的分片管理,可以获得所有这些优势。
横向扩展方法
若要将工作器节点添加到弹性群集,请使用多种方法之一,包括Azure门户、Azure CLI或通过 ARM 模板和 API 实现自动化。 选择最适合工作流和自动化需求的方法。 以下部分提供了门户和 CLI 的分步指南,并解释了缩放后的重新平衡工作。
使用 Azure 门户:
打开该资源:在 Azure 门户中,转到你的 Azure Database for PostgreSQL - Flexible Server 弹性群集。
转到“计算 + 存储:在”设置“部分下,选择” 计算 + 存储”。 此页显示群集节点的当前配置。
调整节点计数:查找 “节点计数 ”字段。 将数字增加到所需的总节点数(对于 GA 中的大多数群集,介于 2 到 20 之间)。 例如,若要将四个节点群集加倍到八个节点,请将滑块增加到 8。 Azure预配额外的工作器节点以达到此计数。
应用更改:选择“ 保存”。 在提示时确认执行横向扩展操作。 Azure开始向群集添加节点。 此操作联机运行,通常不会中断现有连接或查询。 部署可能需要几分钟。 可以在门户通知中监视进度。 完成后,群集的节点计数会显示新值。
注释
您必须显式触发分片再平衡的后台进程,才能将现有数据重新分布到所有节点之间。 此操作不会中断数据的读取和写入。
重新平衡
将节点添加到群集后,新数据修改和新添加的分布式表使用所有可用节点。 现有数据分片保留在原始位置,直到重新分发。 在线再平衡可确保在移动数据时,应用程序的读取和写入操作能持续进行,并且中断最小。
横向扩展弹性群集时,重新均衡群集可确保现有数据完全分布,并且数据库使用所有可用节点。 使用 citus_rebalance_start 函数启动重新平衡过程。 此操作在所有节点上均匀分配现有数据。
SELECT citus_rebalance_start();
并行重新均衡
默认重新均衡操作按顺序执行多个分片移动。 在某些情况下,你可能希望以牺牲使用更多资源(例如计算、内存和网络带宽)来更快地平衡。 在这些情况下,可以配置重新平衡操作以并行方式执行多个分片移动。
citus.max_background_task_executors_per_node 参数允许分片重新均衡等任务并行运行。 可以根据需要增加默认值(1),以提高并行度。
ALTER SYSTEM SET citus.max_background_task_executors_per_node = 2;
SELECT pg_reload_conf();
此外,还可以配置 citus_rebalance_start 函数,以便根据不同的策略重新平衡分片,以最好地匹配数据库工作负荷。 添加额外的后台任务执行器后,下面是使用并行工作者重新均衡分片的示例:
SELECT citus_rebalance_start(parallel_transfer_colocated_shards := true, parallel_transfer_reference_tables := true);
注意事项
缩放后监视群集:在 Azure 门户的“监视”图表上检查弹性群集的 CPU 使用率、内存使用情况和 IO 消耗量。 横向扩展操作后,验证添加节点是否反映了吞吐量和响应时间指标的改进,这取决于您的工作负荷。 如有必要,请进一步调整。
调整弹性集群的规模使成本随资源呈线性变化。 添加节点将计算和存储成本乘以节点数。 例如,一个包含两个 vCore 的四节点群集的成本大约是单个双 vCore 服务器成本的四倍,因为你运行的是四台服务器。 始终在门户中查看定价影响。 在保存之前更改配置时,Azure 门户中会更新预估成本,以确保其符合您的预算。
高可用性:如果群集启用了区域冗余的高可用性,扩展操作还会为任何新节点配置备用资源。 Azure 服务会自动处理此问题。 预期横向扩展需要稍长一些时间,因为它为每个添加的节点设置 HA 副本。 对于主对和备用对,该过程和停机时间特征几乎相同。
只读副本:如果将群集配置为使用只读副本,则必须按照特定作顺序将节点添加到群集。 首先,将节点数添加到主群集并保存更改。 成功完成后,对只读副本环境进行相应的更改并保存更改。 在主环境和只读副本环境更新和同步之前,主群集上的新节点不符合进行群集操作的条件。
注释
无法从弹性群集(横向扩展)中删除节点。
使用上述缩放技术,Azure Database for PostgreSQL 弹性群集可以灵活地在需求增加时无缝启动和扩展数据库。 您可以享受到单个终结点的简便性以及分布式 Postgres 基础设施的强大功能。 继续监视 Azure 的文档,以获取有关弹性群集功能和缩放最佳做法的最新更新。