有奖捉虫:云通信与企业服务文档专题,速来> HOT
本文介绍云数据库 MySQL 数据库代理的防闪断能力。

背景信息

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

实现原理

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



注意事项

当语句中使用了临时表(因临时表和每个会话相关联),会无法恢复连接,直接报错。
数据库代理具备防闪断能力,需要更新数据库代理内核版本至1.3.1或以上。
防闪断能力会自动将超过3秒的事务中止。
当连接切换时,如果数据库代理正在从数据库接收结果报文,但是主备切换导致报文仅传输了部分数据,此时,防闪断无法继续保持连接。

性能测试

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

测试环境

地域/可用区:北京 - 北京七区。
客户端:S5.8XLARGE64(标准型S5,32核64GB)。
客户端操作系统:CentOS 8.2 64位。
网络:云服务器 CVM 和云数据库 MySQL 实例网络类型均为私有网络(VPC)且在同一子网。
测试的云数据库 MySQL 实例信息如下。
存储类型:本地 SSD 盘。
实例类型:通用型。
参数模板:高性能模板。

测试工具

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

测试方法

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

测试结果

在以下运维操作场景中,高可用 MySQL 实例通过数据库代理的防闪断能力保持了100%的连接保活率。
运维场景
保活率
主备切换
100%
内核小版本升级
100%
调整实例规格
100%