链接复制成功!
开通数据库代理实现读写分离
创建TaurusDB实例后,您可以开通数据库代理,通过代理地址实现读写请求的自动转发。写请求自动访问主节点,读请求按照数据库代理的路由模式分发到各个节点,降低主节点的负载。
本章节介绍使用数据库代理实现读写分离的过程,主要流程如下:
操作步骤
步骤1:开通数据库代理
- 登录TaurusDB管理控制台。
- 单击管理控制台左上角的
,选择区域和项目。 - 在实例管理页面,选择目标TaurusDB实例,单击实例名称,进入实例概览页面。
- 在左侧导航栏中,单击“数据库代理”,进入数据库代理页面。
- 单击“新增代理”。
- 在新增代理页面,设置以下参数,单击“立即购买”。图1 新增代理

表1 数据库代理参数 参数名称
说明
代理实例名称
长度在4个到64个字符之间,必须以字母开头,区分大小写,可以包含字母、数字、中划线或下划线,不能包含其他特殊字符。
代理模式
TaurusDB数据库代理支持读写、TP只读和AP只读三种代理模式,可根据业务需要选择合适的代理模式。
- 读写模式:所有写请求只发往主节点,所有读请求按照读权重配比或者活跃连接数情况分发到已选节点。节点的读权重值默认为100。
- TP只读模式:不接收写请求。所有读请求按照读权重配比或者活跃连接数情况分发到已选只读节点,不会转发到主节点,即使主节点被选为服务节点。
- TP只读模式仅支持读请求业务,写业务请求会有异常提示。
- 在TP只读模式下,不支持DDL、DML操作和临时表操作。
- AP只读模式:不接收写请求。所有读请求按照读权重配比分发到已选节点。目前是公测阶段,如需使用,请提交工单。
- 路由模式只支持权重负载,AP节点权重不能全部为0。
- 不支持Binlog拉取功能。
- 不支持会话一致性,仅支持最终一致性。
- 不支持事务拆分。
- 不支持行列自动分流。
- 不支持会话连接池。
- 不支持ALT。
- 不支持新节点自动加入。
- 多主实例不支持AP只读模式。
一致性级别
TaurusDB实例的内核版本为2.0.28.1及以上时支持设置一致性级别。内核版本的查询方法请参见如何查看云数据库 TaurusDB实例的版本号。
数据库代理支持如下一致性级别:
- 最终一致性
开启数据库代理后,同一会话内,连续多次SELECT请求会根据权重配比,路由到不同的数据库节点,由于主节点与读节点之前存在复制时延,并且各个读节点的复制时延大小不一定完全相同,可能会导致每次SELECT请求得到的结果存在差异,因此默认情况下,数据库代理只能保证数据的最终一致。
如果需要减轻主节点压力,让尽量多的读请求路由到只读节点,您可以选择最终一致性。
- 会话一致性
由于最终一致性可能会导致多次SELECT请求的结果存在差异,数据库代理进一步提供了会话级别的数据一致性,保证了在同一会话内,每次SELECT请求都可以获取到上一次写入操作后,数据库的最新数据。
开启会话一致性需要数据库代理的内核版本为2.7.4.0及以上。
- 全局一致性
全局级别的数据一致性保证在不同会话内,数据一致,即写入数据后,立即执行查询类操作,能够准确查到修改后的数据。
建议在业务读多写少的场景下选择全局一致性。
全局一致性需要TaurusDB实例内核版本为2.0.57.240900及以上,还需要数据库代理内核版本为2.25.06.000及以上。
更多关于一致性级别的内容请参见修改TaurusDB代理的一致性级别。
路由模式
数据库代理支持如下路由模式:
- 权重负载:根据您设置的读权重比例分发读请求。
- 负载均衡:根据数据库节点的活跃连接数情况进行读请求分发,将读请求分发到活跃连接数较少的节点上。
更多关于路由模式的内容请参见修改TaurusDB代理的路由模式。
代理实例规格
根据实际需要选择代理实例规格。
- 鲲鹏通用计算增强型:2 vCPUs | 4 GB、4 vCPUs | 8GB、8 vCPUs | 16 GB
- 通用增强型:2 vCPUs | 4 GB、4 vCPUs | 8 GB、8 vCPUs | 16 GB
子网
该功能当前是公测状态,如需使用,请提交工单。
开通数据库代理时可指定代理实例子网。如果TaurusDB实例所在子网为扩展网段,则不支持跨子网开启数据库代理,需要与TaurusDB实例在同一子网。
IP分配方式
支持自动分配和手动分配IPv4地址。
- 自动分配:开通数据库代理时TaurusDB会自动为您配置IPv4代理地址。
- 手动分配:您可以输入子网号段内未使用的IPv4地址,作为TaurusDB实例的代理地址。您可以单击“查看已使用IP地址”,查看已被使用的IP地址。
代理实例节点数量
默认为2个节点。最小支持2个节点,最大支持16个节点。
推荐代理实例节点数量 =(主节点CPU核数+所有只读节点CPU核数总和)/(4*代理实例CPU核数),计算结果向上取整。
新节点自动加入
开启新节点自动加入开关后,新增的只读节点会自动添加到该数据库代理实例中。
新节点权重
当路由模式为权重负载时,需要设置新节点的读权重。节点的读权重默认为100,读权重越高,处理的读请求越多。
行存/列存自动引流
自动分流功能开启后,数据库代理基于业务流入的SQL语句的实际执行代价来实现自动分流,从而实现SQL查询的最大性能。详细使用及约束请参见使用行列分流实现OLAP的复杂查询。
选择数据库节点
勾选需要加入到数据库代理中处理读请求的节点,列表中展示的节点包含TaurusDB节点(主节点、只读节点)和HTAP节点(BE节点、FE节点)。
- 确认数据库代理信息。
- 如果需要重新选择,单击“上一步”,修改基本信息。
- 信息确认无误,单击“提交”,下发创建数据库代理请求。
- 查看代理实例及关联的数据库节点。
数据库代理开通后,在数据库代理页面可查看到已创建成功的代理实例。
图2 查看创建成功的代理实例
单击左侧导航栏中“实例概览”,进入TaurusDB实例概览页面。单击页面右上方
,选择“查看实例拓扑图”,在实例拓扑图中可查看对应代理实例关联的数据库节点。将鼠标悬浮在节点信息处,可查看该节点的详细信息。图3 查看代理实例关联节点信息
步骤2:进行用户认证
在使用数据库代理连接TaurusDB实例前,需要确保当前数据库账号具有访问数据库代理地址的权限,否则将无法通过数据库代理连接到TaurusDB实例。
您可以通过以下步骤来检查权限并授权该账号访问数据库代理地址的权限。
- 推荐您使用DAS连接TaurusDB实例。
- 在“实例管理”页面,选择目标实例,单击操作列的“登录”,进入数据管理服务实例登录界面。
您也可以在“实例管理”页面,单击目标实例名称,进入“实例概览”页面。在页面右上角,单击“登录”,进入数据管理服务实例登录界面。
- 正确输入数据库用户名和密码,单击“测试连接”。
其他连接方式请参见连接TaurusDB实例方式介绍。
- 在“实例管理”页面,选择目标实例,单击操作列的“登录”,进入数据管理服务实例登录界面。
- 实例连接成功后,执行SQL语句,查看当前数据库账号的host是否包含数据库代理地址。
代理地址获取方式:单击目标TaurusDB实例,进入基本信息页面。在左侧导航栏单击“数据库代理”,在代理实例列表中查看数据库代理地址。
SELECT user,host FROM mysql.user;

如果地址为%,表示host包含全部网段。
- 如果查询的host不包含数据库代理所在网段,则需要赋予远程访问权限。
例如:使用root用户想要从192.168.0网段连接到TaurusDB实例,您可以在DAS用户管理界面将当前账号的主机设置为192.168.%。具体操作请参见编辑用户信息。
图4 设置主机IP
步骤3:检查安全组规则
确保入方向规则和出方向规则允许数据库代理地址访问,默认端口号为3306。
- 登录TaurusDB管理控制台。
- 单击管理控制台左上角的
,选择区域和项目。 - 在“实例管理”页面,选择目标实例,单击实例名称,进入实例概览页面。
- 在“网络信息”模块的“内网安全组”处,单击安全组名称,进入安全组页面。
- 在入方向规则页签下,默认允许3306端口访问。图5 放通3306端口

如果没有该条规则,单击“快速添加规则”,弹框页面中勾选“MySQL(3306)”,并设置入方向规则参数,单击“确定”。
图6 快速添加3306端口
表2 入方向规则参数说明 参数
说明
常见协议端口
选择“MySQL(3306)”。
类型
源地址支持的IP地址类型,如下:
- IPv4
- IPv6
源地址
在入方向规则中,用来匹配外部请求的源地址,支持以下格式:
- IP地址:表示源地址为某个固定的IP地址。当源地址选择IP地址时,您可以在一个框内同时输入或者粘贴多个IP地址,不同IP地址以“,”隔开。一个IP地址生成一条安全组规则。
- 安全组:表示源地址为另外一个安全组,您可以在下拉列表中,选择同一个区域内的其他安全组。当安全组A内有实例a,安全组B内有实例b,在安全组A的入方向规则中,放通源地址为安全组B的流量,则来自实例b的内网访问请求被允许进入实例a。
- IP地址组:表示源地址为一个IP地址组,IP地址组是一个或者多个IP地址的集合。您可以在下拉列表中,选择可用的IP地址组。对于安全策略相同的IP网段和IP地址,此处建议您使用IP地址组简化管理。
如果没有可用的IP地址组,请您参见创建IP地址组进行创建。
策略
安全组规则策略,支持的策略如下:- 如果“策略”设置为允许,表示允许源地址访问安全组内云服务器的指定端口。
- 如果“策略”设置为拒绝,表示拒绝源地址访问安全组内云服务器的指定端口。
安全组规则匹配流量时,首先按照优先级进行排序,其次按照策略排序,拒绝策略高于允许策略。
优先级
安全组规则优先级。
优先级可选范围为1-100,默认值为1,即最高优先级。优先级数字越小,规则优先级级别越高。
描述
安全组规则的描述信息,非必填项。
描述信息内容不能超过255个字符,且不能包含“<”和“>”。
步骤4:使用代理地址连接TaurusDB实例
- 在TaurusDB控制台查看代理地址和端口。
单击目标TaurusDB实例,进入实例概览页面。在左侧导航栏单击“数据库代理”,在代理实例列表中查看代理地址和端口号。
图7 查看代理地址和端口
- 登录弹性云服务器。
详细内容请参考《弹性云服务器用户指南》。
- 执行如下命令,通过代理地址连接TaurusDB实例。
mysql -h host -P port -u userName -p
示例:
mysql -h 192.168.0.61 -P 3306 -u root -p




