开通数据库代理

RDS MySQL数据库代理支持读写分离、连接保持、就近访问、事务拆分、连接池、SSL加密等功能,能够降低主实例负载,提高实例可用性和安全性。本文介绍通过RDS控制台和API接口开通RDS MySQL数据库代理的方法以及推荐代理规格的计算方式。

前提条件

主实例需满足以下条件:

  • 版本:

    数据库引擎及版本

    实例系列

    内核小版本

    MySQL 8.0

    高可用系列

    20190915或以上

    集群系列

    无要求

    MySQL 5.7

    高可用系列

    20190925或以上

    集群系列

    无要求

    MySQL 5.6

    高可用系列

    20200229或以上

  • 地域:实例不处于华东1(杭州)可用区C和D。

说明

您可以前往实例基本信息页面查看以上信息。如果配置信息区域有升级内核小版本按钮,您可以单击按钮查看当前版本;如果没有按钮,表示已经是最新版。详情请参见升级内核小版本

费用说明

使用限制

数据库代理暂不支持压缩协议。

注意事项

  • 对于集群系列实例,您可以直接使用实例的主备节点搭建读写分离结构。

  • 开通数据库代理后,不建议迁移RDS主实例可用区。如果迁移主实例可用区,将会导致主实例与数据库代理不在同一可用区,从而使数据库访问延迟增高,响应变慢。

    说明

    如果因业务故障导致RDS实例主备切换,您可以手动切换主备实例迁移代理可用区,使RDS主实例主可用区与代理可用区保持一致,降低访问延迟。

操作步骤

说明

本节介绍如何在实例详情页开启或关闭数据库代理服务,您也可以在创建只读实例的同时开启数据库代理服务,详情请参见创建MySQL只读实例

开启数据库代理

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。

  2. 在左侧导航栏,单击数据库代理

  3. 在目标代理类型下方,单击立即开通

  4. 开通数据库代理弹窗页面,配置以下代理信息。

    参数

    说明

    代理类型

    分为通用型和独享型,详情请参见代理类型介绍

    部署方案

    支持双可用区部署和单可用区部署,详情请参见代理部署架构

    说明

    建议您开启双可用区部署的数据库代理,以具备跨可用区容灾能力,进一步提升系统可用性。

    节点总个数

    1个数据库代理实例包含多个代理节点,支持:

    • 2个:单可用区部署、双可用区部署

    • 4个:双可用区部署

    可用区

    代理节点所在的可用区,建议数据库代理可用区和RDS实例的可用区保持一致。

    单节点代理规格CPU(核)

    重要
    • 同一可用区内的代理节点规格必须一致。

    • 双可用区部署,且代理节点总个数为2时,两个节点规格必须一致。

    • 通用型:1~8核。

    • 独享型:1~16核。

    您可以参考下述说明内容选择合适的单节点代理规格。

    代理连接地址可用区

    开通代理时,会默认为您创建1个代理连接地址,您需要指定代理连接地址网络可用区,建议和RDS主实例的主可用区保持一致。

    如何选择合适的单节点代理规格

    推荐单个代理节点规格计算方式如下:

    代理类型

    高可用系列实例

    集群系列实例

    通用型

    (主实例CPU核数+该主实例下所有只读实例CPU核数)/4(向上取整)。

    (主节点CPU核数+该主节点下所有备节点CPU核数)/4(向上取整)。

    独享型

    (主实例CPU核数+该主实例下所有只读实例CPU核数)/8(向上取整)。

    (主节点CPU核数+该主节点下所有备节点CPU数)/8(向上取整)。

    例如,RDS高可用系列实例:主实例为8核CPU,该实例下有1个4核CPU只读节点和1个6核CPU只读节点,推荐单个代理节点规格为(8+4+6)/8=3核。

  5. 单击确定

    开启数据库代理后,您可以在数据库代理页签看到数据库代理的基本信息和连接信息。

    类别

    参数

    说明

    基本信息

    主实例

    RDS MySQL实例ID。

    代理实例状态

    代理实例的运行状态。

    代理类型

    代理类型,分为通用型和独享型。通用型代理和独享型代理的差异,请参见代理类型介绍

    可用区

    代理实例的可用区信息,与主实例的主可用区相同。

    代理规格

    当前代理规格。

    • 代理规格和代理单节点规格的关系:代理规格 = 所有代理节点规格求和

    • 代理个数和代理规格的关系:代理个数 = 代理规格 / 单位代理规格

    代理小版本

    代理的内核小版本。

    说明

    各小版本的更新详情,请参见数据库代理小版本发布记录。若您需要升级数据库代理小版本,请参见升级数据库代理内核小版本

    代理节点

    节点ID

    代理节点ID。

    可用区

    代理节点所在可用区。

    代理节点规格CPU(核)

    单个代理节点规格。

    连接信息

    代理连接地址(终端)ID

    • 每个RDS MySQL数据库实例支持申请1~7个代理连接地址,每个代理连接地址都可以申请1个内网地址和1个外网地址,支持为每个代理连接地址配置不同的访问策略。

    • 开通时系统会自动分配1个代理连接地址,您可以直接使用。如需修改配置,请参见配置数据库代理连接地址访问策略

    读写属性

    • 读写(读写分离)(默认):同时连接主实例和只读实例,可以接受写请求。

    • 只读(不连接主实例,无法接受写请求):仅连接只读实例,不接受写请求。

    更多信息,请参见设置读写属性和读权重

    就近访问

    仅双可用区4代理节点的部署形式支持就近访问,详情请参见设置就近访问

    网络信息

    代理的可用区、VPC及交换机信息。

    支持切换交换机。切换交换机前,请先了解切换交换机的影响。单击切换交换机,选择目标交换机变更时间,并单击确定

    内网地址/端口

    外网地址/端口

    代理外网连接地址和端口。

    通过该地址可以从外网连接RDS MySQL数据库实例,使用数据库代理功能。

    说明
    • 数据库代理默认提供内网连接地址,您可以申请外网地址。

    • 申请外网地址后,您可以单击连接地址右侧的image.png按钮,修改连接地址前缀和端口号。更多信息,请参见设置数据库代理连接地址

(可选)关闭数据库代理

注意事项

关闭数据库代理可能产生以下影响:

  • 读写分离失效:如您通过数据库代理实现读写分离,关闭代理后,应用程序将无法区分并路由读请求至只读实例,所有请求都将发送至主实例,引起主实例负载过高,影响数据库性能和稳定性。

  • 连接失效:如您通过数据库代理连接数据库,关闭代理后,通过代理地址访问数据库的应用程序将会断开。

  • 连接管理问题:阿里云数据库代理提供连接池管理、长连接保持等功能。关闭代理后,需在应用侧新建程序管理数据库连接,可能会增加连接创建和销毁的开销,影响性能。

  • 安全风险:数据库代理作为一道安全屏障,提供访问控制、安全策略等功能。关闭代理可能直接暴露数据库实例,增加被攻击的风险。

  • 运维复杂度增加:代理通常提供监控、日志收集、故障检测等功能,关闭后这些功能可能需要通过其他手段实现,增加了运维的复杂度和工作量。

  • 性能影响:虽然直接连接数据库可以减少一次网络跳转,提高局部通信效率,但失去代理的优化能力,如查询缓存、连接复用等,在高并发场景下对性能产生负面影响。

  • 兼容性问题:如果应用程序依赖于代理提供的特殊功能或协议转换,直接连接可能导致兼容性问题。

  • 故障切换和高可用性:数据库代理在一些场景中可能参与故障检测和自动故障转移。关闭代理则需要手动处理这些情况,影响服务的高可用性。

  • 数据库连接:关闭数据库代理会释放代理连接地址(原代理终端),应用程序将不能通过内网或外网代理连接地址连接数据库实例,已存在连接将会断开。RDS MySQL实例地址不受影响。

  • 关闭后如果再次开通,代理连接地址会改变。

操作步骤

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。

  2. 在左侧导航栏,单击数据库代理

  3. 在页面右上角,单击关闭代理服务

  4. 单击确定

相关API

API

描述

ModifyDBProxy

开启RDS MySQL实例的数据库代理功能时,您需要将ConfigDBProxyService参数设置为Startup,其他参数请按需配置。

DescribeDBProxy

查询RDS MySQL实例的数据库代理详情。