为确保运维操作(如主备切换、变更配置等)期间数据库连接的可用和稳定性,veDB MySQL 提供连接保持功能。该功能可以确保在操作过程中连接不会主动断开,从而提高业务系统的稳定性。
连接保持目前为白名单功能,如需使用,请提交工单联系技术支持。
主节点切换
在计划内的主节点切换场景下,如升降配置、手动主备切换、变更实例版本时,数据库代理会在旧主节点切换到新主节点的过程中,暂停将连接的请求路由到旧主节点上。若新主节点的写入能力在 60 秒内恢复,数据库代理到新主节点的连接将会重建,连接的状态(如字符集编码、用户变量)与主节点切换前保持一致,被暂停的请求将被路由到新主节点,在此过程中应用程序的连接不会闪断也不会报错。若新主节点未能在 60 秒内恢复写入,则数据库代理会断开与应用程序的连接。
只读节点下线
在减少只读节点个数和变更只读节点规格场景下,数据库代理感知到只读节点下线后,不会将新请求路由到该只读节点。只读节点上正在执行的请求,需要在 60s 内完成,否则连接将会报错。
数据库代理配置变更
在变更实例节点规格或只读节点数量时,数据库代理会根据一定的规则自动调整自身规格和副本数,通过保留旧的数据库代理副本,保证存量连接不会立即闪断,新连接将路由到新的数据库代理副本。
部分场景下,连接无法保持。对于无法保持连接的情况,将在运维操作时断开该连接,详情如下:
存在 Binlog 传输。
连接上使用 LOAD DATA 语句。
存在临时表。
存在长时间未提交的事务,断开连接后,未提交事务进行回滚。
此外,对于一些特殊场景,执行运维操作时连接不会断开,但会导致信息缺失,例如若上一次执行结果存在 warning 信息,这种场景下可以保持连接,但 show warnings
结果可能为空。
不同类型的连接地址对连接保持的支持情况如下:
连接地址类型 | 是否支持连接保持 |
---|---|
主节点地址 | 支持 |
默认地址 | 支持 |
自定义只读地址 | 支持 说明 若自定义只读终端仅关联了一个只读节点,则不支持连接保持。 |
自定义读写地址 | 支持 |
HTAP 连接地址 | 支持 说明 分析节点的节点个数和规格变更,不支持连接保持。 |
veDB MySQL 变更实例配置时,连接的保持状态和变更影响如下表所示:
变更场景 | 连接保持 | QPS 是否跌零 | 开启连接保持功能影响 | 未开启连接保持功能影响 |
---|---|---|---|---|
减少只读节点个数 | 是 | 否 | 在数据库代理配置变更冷静期(24 小时)内保持连接,超出冷静期后,数据库可能会出现连接闪断。 | 在变更配置期间,数据库可能会出现连接闪断。因此,建议在业务低峰期执行变配操作,并确保应用具备自动重连机制。 |
增加只读节点个数 | 是 | 否 | 在数据库代理配置变更冷静期(24 小时)内保持连接,超出冷静期后,数据库可能会出现连接闪断。 | 在变更配置期间,数据库可能会出现连接闪断。因此,建议在业务低峰期执行变配操作,并确保应用具备自动重连机制。 |
升级节点规格 | 是 | 是,持续 10s~20s | 在数据库代理配置变更冷静期(24 小时)内保持连接,超出冷静期后,数据库可能会出现连接闪断。 | 在变更配置期间,数据库可能会出现连接闪断。因此,建议在业务低峰期执行变配操作,并确保应用具备自动重连机制。 |
降低节点规格 | 是 | 是,持续 10s~20s | 在数据库代理配置变更冷静期(24 小时)内保持连接,超出冷静期后,数据库可能会出现连接闪断。 | 在变更配置期间,数据库可能会出现连接闪断。因此,建议在业务低峰期执行变配操作,并确保应用具备自动重连机制。 |
变更存储空间大小 | 是 | 否 | 无 | 无 |
创建分析节点 | 是 | 否 | 无 | 无 |
增加分析节点个数 | 是 | 否 | 无 | 无 |
变更分析节点规格 | 是 | 否 | 连接正常,但 AP 请求可能会报错。 | 连接正常,但 AP 请求可能会报错。 |
减少分析节点个数 | 是 | 否 | 连接正常,但 AP 请求可能会报错。 | 连接正常,但 AP 请求可能会报错。 |
删除所有分析节点 | 是 | 否 | 连接正常,AP 请求报错。 | 连接正常,AP 请求报错。 |
重启实例 | 否 | 是 | 实例重启会造成连接中断,重启前请做好业务安排。建议在业务低峰期执行重启操作,并确保应用具备自动重连机制。 | 实例重启会造成连接中断,重启前请做好业务安排。建议在业务低峰期执行重启操作,并确保应用具备自动重连机制。 |
主动切换主节点 | 是 | 是,持续 10s~20s | 连接正常,但写请求会有 10s~20s 阻塞情况。 | 切换主节点期间数据库可能会有 1~2 次闪断,请确保您的应用程序具有自动重连机制,以降低数据库连接闪断对业务的影响。 |
变更实例版本 | 是 | 是 ,持续 10s~20s | 连接正常,但写请求会有 10s~20s 阻塞情况。 | 变更实例版本期间数据库可能会有 1~2 次闪断,请确保您的应用程序具有自动重连机制,以降低数据库连接闪断对业务的影响。 |