云数据库 MySQL 防闪断功能

这篇说说腾讯云数据库MySQL数据库代理的防闪断能力,可在实例有损切换时保持连接与事务不中断,测试中主备切换等场景保活率达100%。 实现原理:基于MySQL session track功能,将会话变量转移至新连接实现无损切换。 注意事项:临时表、预编译语句及部分接收报文场景下无法保持连接。

相关产品
云数据库 MySQL 产品页,含版本规格、价格与购买入口。

这篇说说云数据库 MySQL 数据库代理的防闪断能力。

一、支持实例架构

MySQL 双节点(高可用版)、MySQL 三节点。

二、背景信息

数据库实例在运维过程中,总会根据需要,进行相应的调整,如变更配置、计划内 HA 切换、计划内重启等,这些行为可能会中断用户会话,导致连接闪断、新建连接短暂失败等问题。云数据库 MySQL 数据库代理提供防闪断能力,在数据库实例进行有损切换、转移时,可以提供无损的应用连续性,避免连接和事务的中断。

三、实现原理

防闪断能力,使用了 MySQL 的 session track 功能,当感知到计划内的有损行为时,数据库代理会与切换前的主节点断开连接,将客户端到数据库代理上的连接,恢复至切换后主节点的连接上,通过 session track 能力将会话相关的系统变量、用户变量、字符集编码信息转移至新的后端连接上,实现对应用程序端无损切换。

四、注意事项

·当语句中使用了临时表(因临时表和每个会话相关联),会无法恢复连接,直接报错。

·数据库代理具备防闪断能力,需要更新数据库代理内核版本至1.3.1或以上。

·防闪断能力会自动将超过3秒的事务中止。

·当连接切换时,如果数据库代理正在从数据库接收结果报文,但是主备切换导致报文仅传输了部分数据,此时,防闪断无法继续保持连接。

·如果在防闪断期间有正在使用的预编译语句(Prepared Statement),则防闪断无法保持连接。

五、性能测试

以下为你介绍云数据库 MySQL 数据库代理防闪断能力的性能测试。

六、测试环境

·地域/可用区:北京 – 北京七区。

·客户端:S5.8XLARGE64(标准型S5,32核64GB)。

·客户端操作系统:CentOS 8.2 64位。

·网络:云服务器 CVM 和云数据库 MySQL 实例网络类型均为私有网络(VPC)且在同一子网。

测试的云数据库 MySQL 实例信息如下。

·存储类型:本地 SSD 盘。

·实例类型:通用型。

·参数模板:高性能模板。

七、测试工具

本次性能测试的工具为 sysbench。sysbench 是一个跨平台且支持多线程的模块化基准测试工具,用于评估系统在运行高负载的数据库时相关核心参数的性能表现。可绕过复杂的数据库基准设置,甚至在没有安装数据库的前提下,快速了解数据库系统的性能。

八、测试方法

在不同运维操作场景中,测试高可用 MySQL 实例的连接防闪断的连接保活率(即执行运维操作前后连接未闪断的比例)。

九、测试结果

在以下运维操作场景中,高可用 MySQL 实例通过数据库代理的防闪断能力保持了100%的连接保活率。

运维场景 保活率
主备切换 100%
内核小版本升级 100%
调整实例规格 100%
赞 (0)
上一篇 4天前
下一篇 4天前