RDS MySQL数据库代理支持读写分离、连接保持、就近访问、事务拆分、连接池、SSL加密等功能,能够降低主实例负载,提高实例可用性和安全性。本文介绍通过RDS控制台和API接口开通RDS MySQL数据库代理的方法以及推荐代理规格的计算方式。
前提条件
主实例需满足以下条件:
版本:
数据库引擎及版本
实例系列
内核小版本
MySQL 8.0
高可用系列
20190915或以上
集群系列
无要求
MySQL 5.7
高可用系列
20190925或以上
集群系列
无要求
MySQL 5.6
高可用系列
20200229或以上
地域:实例不处于华东1(杭州)可用区C和D。
您可以前往实例基本信息页面查看以上信息。如果配置信息区域有升级内核小版本按钮,您可以单击按钮查看当前版本;如果没有按钮,表示已经是最新版。详情请参见升级内核小版本。
费用说明
通用型代理免费。
独享型代理按量计费,请参见数据库代理费用说明。
使用限制
数据库代理暂不支持压缩协议。
注意事项
对于集群系列实例,您可以直接使用实例的主备节点搭建读写分离结构。
开通数据库代理后,不建议迁移RDS主实例可用区。如果迁移主实例可用区,将会导致主实例与数据库代理不在同一可用区,从而使数据库访问延迟增高,响应变慢。
操作步骤
本节介绍如何在实例详情页开启或关闭数据库代理服务,您也可以在创建只读实例的同时开启数据库代理服务,详情请参见创建MySQL只读实例。
开启数据库代理
访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在左侧导航栏,单击数据库代理。
在目标代理类型下方,单击立即开通。
在开通数据库代理弹窗页面,配置以下代理信息。
参数
说明
代理类型
分为通用型和独享型,详情请参见代理类型介绍。
部署方案
支持双可用区部署和单可用区部署,详情请参见代理部署架构。
说明建议您开启双可用区部署的数据库代理,以具备跨可用区容灾能力,进一步提升系统可用性。
节点总个数
1个数据库代理实例包含多个代理节点,支持:
2个:单可用区部署、双可用区部署
4个:双可用区部署
可用区
代理节点所在的可用区,建议数据库代理可用区和RDS实例的可用区保持一致。
单节点代理规格CPU(核)
重要同一可用区内的代理节点规格必须一致。
双可用区部署,且代理节点总个数为2时,两个节点规格必须一致。
通用型:1~8核。
独享型:1~16核。
您可以参考下述说明内容选择合适的单节点代理规格。
代理连接地址可用区
开通代理时,会默认为您创建1个代理连接地址,您需要指定代理连接地址网络可用区,建议和RDS主实例的主可用区保持一致。
单击确定。
开启数据库代理后,您可以在数据库代理页签看到数据库代理的基本信息和连接信息。
类别
参数
说明
基本信息
主实例
RDS MySQL实例ID。
代理实例状态
代理实例的运行状态。
代理类型
代理类型,分为通用型和独享型。通用型代理和独享型代理的差异,请参见代理类型介绍。
可用区
代理实例的可用区信息,与主实例的主可用区相同。
代理规格
当前代理规格。
代理规格和代理单节点规格的关系:
代理规格 = 所有代理节点规格求和
。代理个数和代理规格的关系:
代理个数 = 代理规格 / 单位代理规格
代理小版本
代理的内核小版本。
说明各小版本的更新详情,请参见数据库代理小版本发布记录。若您需要升级数据库代理小版本,请参见升级数据库代理内核小版本。
代理节点
节点ID
代理节点ID。
可用区
代理节点所在可用区。
代理节点规格CPU(核)
单个代理节点规格。
连接信息
代理连接地址(终端)ID
每个RDS MySQL数据库实例支持申请1~7个代理连接地址,每个代理连接地址都可以申请1个内网地址和1个外网地址,支持为每个代理连接地址配置不同的访问策略。
开通时系统会自动分配1个代理连接地址,您可以直接使用。如需修改配置,请参见配置数据库代理连接地址访问策略。
读写属性
读写(读写分离)(默认):同时连接主实例和只读实例,可以接受写请求。
只读(不连接主实例,无法接受写请求):仅连接只读实例,不接受写请求。
更多信息,请参见设置读写属性和读权重。
就近访问
仅双可用区4代理节点的部署形式支持就近访问,详情请参见设置就近访问。
网络信息
代理的可用区、VPC及交换机信息。
支持切换交换机。切换交换机前,请先了解切换交换机的影响。单击切换交换机,选择目标交换机及变更时间,并单击确定。
内网地址/端口
该内网地址和代理连接地址ID绑定,通过该地址可以从内网连接RDS MySQL数据库实例,使用数据库代理功能,详情请参见配置数据库代理连接地址访问策略。
您可以单击连接地址右侧的按钮,修改连接地址前缀和端口号。更多信息,请参见设置数据库代理连接地址。
外网地址/端口
代理外网连接地址和端口。
通过该地址可以从外网连接RDS MySQL数据库实例,使用数据库代理功能。
说明数据库代理默认提供内网连接地址,您可以申请外网地址。
申请外网地址后,您可以单击连接地址右侧的按钮,修改连接地址前缀和端口号。更多信息,请参见设置数据库代理连接地址。
(可选)关闭数据库代理
注意事项
关闭数据库代理可能产生以下影响:
读写分离失效:如您通过数据库代理实现读写分离,关闭代理后,应用程序将无法区分并路由读请求至只读实例,所有请求都将发送至主实例,引起主实例负载过高,影响数据库性能和稳定性。
连接失效:如您通过数据库代理连接数据库,关闭代理后,通过代理地址访问数据库的应用程序将会断开。
连接管理问题:阿里云数据库代理提供连接池管理、长连接保持等功能。关闭代理后,需在应用侧新建程序管理数据库连接,可能会增加连接创建和销毁的开销,影响性能。
安全风险:数据库代理作为一道安全屏障,提供访问控制、安全策略等功能。关闭代理可能直接暴露数据库实例,增加被攻击的风险。
运维复杂度增加:代理通常提供监控、日志收集、故障检测等功能,关闭后这些功能可能需要通过其他手段实现,增加了运维的复杂度和工作量。
性能影响:虽然直接连接数据库可以减少一次网络跳转,提高局部通信效率,但失去代理的优化能力,如查询缓存、连接复用等,在高并发场景下对性能产生负面影响。
兼容性问题:如果应用程序依赖于代理提供的特殊功能或协议转换,直接连接可能导致兼容性问题。
故障切换和高可用性:数据库代理在一些场景中可能参与故障检测和自动故障转移。关闭代理则需要手动处理这些情况,影响服务的高可用性。
数据库连接:关闭数据库代理会释放代理连接地址(原代理终端),应用程序将不能通过内网或外网代理连接地址连接数据库实例,已存在连接将会断开。RDS MySQL实例地址不受影响。
关闭后如果再次开通,代理连接地址会改变。
操作步骤
访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在左侧导航栏,单击数据库代理。
在页面右上角,单击关闭代理服务。
单击确定。
相关API
API | 描述 |
开启RDS MySQL实例的数据库代理功能时,您需要将ConfigDBProxyService参数设置为Startup,其他参数请按需配置。 | |
查询RDS MySQL实例的数据库代理详情。 |