增加或删除计算节点

当业务读流量增长导致数据库响应变慢时,可通过增加只读节点来水平扩展集群的读取能力,提升吞吐量并降低主节点负载。反之,业务进入低谷期时,可删除闲置的只读节点以节省成本。PolarDB的集群地址会自动将读请求负载均衡到只读节点,简化应用端的连接管理。

增删节点影响评估

执行增加或删除节点前,需评估其对业务的潜在影响,以制定变更计划。

服务影响

  • 新增节点:增加一个只读节点预计耗时5分钟,同时添加多个只读节点时将进行并行处理,具体所需时间受集群负载、库表数量等因素的影响。在增加节点的过程中,集群无任何影响。

  • 删除节点:在删除节点时,该节点上的连接会发生闪断,但其他节点不受影响。建议在业务低峰期进行此操作,并确保应用程序具备自动重连机制。如果您的应用连接的是集群地址,PolarDB将自动屏蔽被删除的节点,因此无需修改应用配置。

节点数量限制

  • 企业版

    • 集群版:最多支持15个只读节点,且需保留至少一个只读节点,以确保集群的高可用性。因此,无法删除最后一个只读节点。

    • 多主集群(Limitless):最多支持63个读写节点和15个只读节点(即全局只读节点)。

  • 标准版:最多支持8个只读节点。

节点规格限制

为保证集群的稳定性和高可用性,主节点和只读节点的规格搭配存在以下限制:

  • 新增只读节点的内存不能小于主节点内存的一半。

  • 新增只读节点的CPU核数有最小规格要求。对应规则如下:

    主节点CPU规格

    允许只读节点最小CPU规格

    2

    2

    4

    4

    8

    4

    16

    8

    32

    16

    64

    32

    88

    64

    120

    64

说明

适用范围

操作前,请完成以下检查。

  • 计费类型:目标集群需为包年包月按量付费

  • 集群运行状态:目标集群需为运行中,即无正在进行的其他配置变更任务(例如,增加节点、删除节点或小版本升级等)。

增加节点

  1. 登录PolarDB控制台,在左侧导航栏单击集群列表,选择集群所在地域

  2. 您可以选择如下两种方式中的其中一种进入增删节点向导页面:

    • 单击目标集群操作栏中的增删节点image

    • 单击目标集群ID,进入目标集群基本信息页。在数据库节点区域,单击增删节点image

  3. 增删节点向导对话框中,根据业务需求,选择增加节点增加全局只读节点)、增加读写节点增加AI节点增加列存索引只读节点增加搜索节点选项,并单击确定

    说明
  4. 变配页面中,确认当前配置。单击image图标增加一个节点并选择节点规格。

    说明

    可多次单击此按钮以同时添加多个节点。

  5. 设置切换时间:选择希望变更配置的时间。

    • 立即切换:变配任务将立即生效。

    • 定时切换:选择未来24小时内的某个时间点,变配任务将在该时间点后的30分钟内完成。您可在定时计划任务页面查看或取消该任务。

  6. 阅读相关服务协议后,单击立即购买并完成支付。支付成功后,根据选择的切换时间等待任务执行。

  7. (可选)根据您添加的节点类型,可参考以下内容进行相关后续操作:

    • 读写节点:您可使用CREATE DATABASE <name> [POLARDB_WRITE_NODE master_id];语句在新节点上创建数据库。更多信息,请参见多主集群使用说明

    • AI节点:您可通过在SQL语句前添加/*polar4ai*/即可执行AI SQL。更多应用场景,请参见Data-Agent

    • 列存索引只读节点:您可通过在表或指定列的注释中添加COLUMNAR=1来创建列存索引。更多信息,请参见添加列存索引

    • 搜索节点:您可使用Elasticsearch兼容的REST API来创建索引与搜索数据。更多信息,请参见智能搜索使用说明

删除节点

注意事项

读写节点

删除多主集群读写节点前,需先将该节点上的所有数据库的访问点切换至其他可用的读写节点。更多信息,请参见多主集群使用说明

重要

若您未执行此操作,将导致这些数据库不可访问。如发生此情况,可通过重新指定这些数据库的读写节点来恢复访问,即ALTER DATABASE <name> POLARDB_WRITE_NODE <new_master_id>;

  1. 查询该读写节点上数据库的分布情况。

    SELECT * FROM INFORMATION_SCHEMA.INNODB_CC_GLOBAL_LOCK_INFO WHERE LOCK_MODE = 'SLS_X' AND MASTER_ID = <master_id>;
  2. 将上述语句列出的所有数据库或数据对象的访问点切换至其他读写节点。

    说明

    查询结果中可能会查询出名称为mysql/global_ddl_lockobject类型为Table的信息,这个是内部使用的信息,您无需切换这个对象。

    ALTER DATABASE <name> POLARDB_WRITE_NODE <new_master_id>;

AI节点

  • 在删除最后一个AI节点后,系统会立即清除该节点及其关联的数据(例如向量表等)。此后,发送至集群的AI SQL语句将不会得到响应,而除此以外的其他SQL语句将不受影响。

  • 为避免数据丢失,建议在删除节点之前务必完成必要的数据备份操作,以确保数据的安全性与可恢复性。

列存索引只读节点

  • 在删除最后一个列存索引只读节点后,集群将无法提供列存查询的加速能力。如果您希望重新利用列存索引以提升性能,需要再次添加列存节点,并等待列存索引的自动重建。

  • 通过使用集群地址,可以自动屏蔽失效节点,因而无需修改应用配置。

搜索节点

  • 在删除所有搜索节点后,系统会立即清除该节点及其关联的数据。此后,发送至集群的REST API将不会得到响应,而除此以外的其他SQL语句将不受影响。

  • 为避免数据丢失,建议在删除节点之前务必完成必要的数据备份操作,以确保数据的安全性与可恢复性。

操作步骤

  1. 登录PolarDB控制台,在左侧导航栏单击集群列表,选择集群所在地域

  2. 您可以选择如下两种方式中的其中一种进入增删节点向导页面:

    1. 单击目标集群操作栏中的增删节点image

    2. 单击目标集群ID,进入目标集群基本信息页。在数据库节点区域,单击增删节点image

  3. 增删节点向导对话框中,根据业务需求,选择删除节点删除全局只读节点)、删除读写节点删除AI节点删除列存索引只读节点删除搜索节点选项,并单击确定

  4. 变配页面中,确认当前配置。单击目标节点名称前的减号图标减号图标以删除该节点。

    说明

    可同时选择删除多个节点。

  5. 设置切换时间:选择希望变更配置的时间。

    • 立即切换:变配任务将立即生效。

    • 定时切换:选择未来24小时内的某个时间点,变配任务将在该时间点后的30分钟内完成。您可在定时计划任务页面查看或取消该任务。

  6. 阅读相关服务协议后,单击立即购买并完成支付。支付成功后,根据选择的切换时间等待任务执行。

计费说明

增加或删除节点仅影响计算节点费用,存储空间等费用不受影响。

  • 按量付费

    • 新增节点按小时计费,从创建成功开始,到释放为止。

    • 可随时删除节点以停止计费。

  • 包年包月

    • 新增节点时,需一次性支付从当前时间至集群到期日之间的费用。

    • 删除节点时,系统会自动计算剩余价值并退款。更多信息,请参见退款金额计算

说明

若您的业务量波动较大且频繁,建议您结合资源包一起使用,当集群配置发生调整时,资源包能根据当前规格自动进行抵扣。

相关文档

相关API

API

描述

CreateDBNodes

增加PolarDB集群节点。

DeleteDBNodes

删除PolarDB集群节点。

常见问题

增加节点时,提示资源不足应如何处理?

若在增加节点过程中,系统提示资源不足,请您更换地域或可用区后再试。这是由于所选目标规格在当前可用区已售罄。建议:

  1. 选择相近规格:尝试选择略低的其他规格。

  2. 更换可用区:建议手动更换可用区,以避免后续进行变配时再次出现资源不足的情况。

PolarDB集群是否支持添加读写节点?

读写节点仅支持多主集群(Limitless)集群添加,其余产品系列不支持添加。请确认您的集群是否为多主集群(Limitless)。

增加或删除节点时,提示无规格变更应如何处理?

您当前尚未进行增加或删除任何节点。请根据页面操作,单击image增加一个节点或单击目标节点名称前的减号图标减号图标以删除该节点。

删除节点时,提示The number of DB nodes is incorrect.应如何处理?

为保障集群的高可用性(HA)和自动故障切换能力,PolarDB集群版系列要求至少保留一个只读节点。

删除节点时,是否可以只保留一个主节点和一个列存索引只读节点?

不可以。添加与保留列存索引只读节点的前提是必须至少存在一个只读节点。

业务写压力大,增加只读节点能解决问题吗?

不能。只读节点仅处理读(SELECT)请求,所有写操作(INSERT/UPDATE/DELETE)仍然全部由主节点处理。如果瓶颈在写入性能,应考虑升级主节点的规格,而不是增加只读节点。