tencent cloud

文档反馈

防闪断功能

最后更新时间:2023-11-13 14:43:31

    本文介绍云数据库 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%
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持