操作场景
- 有读写分离需求的业务场景。
- 需要按照权重分发请求到后端只读实例的场景。
- 连接数过多导致主实例负载过高的场景。
- 一主多备,备节点支持可读的场景。
约束限制
- 数据库版本: 5.7,8.0。
- 实例类型为:单机、一主一备、一主两备。
- 开通数据库代理服务时,数据库状态为运行中才可以开启数据库代理服务。
- 开通数据库代理服务后,需要先设置代理服务和IP白名单。
- 配置代理服务时,需要满足的条件是MySQL主实例和数据库代理状态同时为运行中。
- 配置IP白名单时,需要满足的条件是MySQL主实例和数据库代理状态同时为运行中。
- 目前尚不支持绑定弹性公网IP访问。
说明如果控制台提示“您当前数据库实例对应的高可用组件版本暂不支持代理功能,如需使用代理功能请订购新的数据库实例”,是因为存量的实例(主要指2023年12月30日之前开通的实例)受底层高可用组件版本限制,如您需要使用代理功能请重新开通数据库实例。
步骤一:开启数据库代理
- 在天翼云官网首页的顶部菜单栏,选择产品 > 数据库 > 关系型数据库 > 关系数据库MySQL版,进入关系数据库MySQL产品页面。然后单击管理控制台,进入TeleDB数据库概览页面。
- 在左侧导航栏,选择MySQL > 实例管理,进入实例列表页面。然后在顶部菜单栏,选择区域和项目。
- 在实例列表中,单击目标实例名称,进入实例基本信息页面。
- 单击数据库代理,进入数据库代理页面。
- 单击立即开启代理,进入关系数据库MySQL版-数据库代理服务页面。
- 按需修改代理实例名称,勾选我已经阅读,理解并接受, 然后单击下一步。
- 确认配置信息, 单击立即创建。
- 等待服务开启完成。
步骤二:配置MySQL数据库代理服务
- 在天翼云官网首页的顶部菜单栏,选择产品 > 数据库 > 关系型数据库 > 关系数据库MySQL版,进入关系数据库MySQL产品页面。然后单击管理控制台,进入TeleDB数据库概览页面。
- 在左侧导航栏,选择MySQL > 实例管理,进入实例列表页面。然后在顶部菜单栏,选择区域和项目。
- 在实例列表中,单击目标实例名称,进入实例基本信息页面。
- 单击数据库代理,进入数据库代理页面。
- 在读写规则选项下,单击设置。
- 在对话框内,选择需要的选项进行设置。
- 单击确定,等待配置生效。
设置参数说明
参数 | 说明 |
---|---|
读写属性 | 设置读写方式。读写(读写分离)(默认):同时连接主实例和只读实例,可以接受写请求。 |
连接池 | 代理连接地址设置的连接池类型:事务级连接池:适用于总连接数比较多(如连接数上万)的场景。会话级连接池:适用于短连接场景。 |
延迟阈值 | 只读实例或备节点同步主实例数据时允许的最长延迟时间。若一个节点的延迟时间超过该阈值,读请求不会转发至该节点。 |
事务拆分 | 是否开启事务拆分功能。事务拆分能够将事务内的读请求转发到只读实例或者备节点,降低主实例负载。默认为关闭 。 |
读写分离权重分配 | 实例的读权重越高,处理的读请求越多。例如,假设主实例有3个只读实例,读权重分别为0、100、200和200,则表示主实例不处理请求(读写请求都拒绝),3个只读实例按照1:2:2的比例处理读请求。 系统分配:系统根据实例规格自动分配各个实例的读权重。后续该主实例下新增的只读实例不会自动设置权重,需要手动重新配置加入到读写分离链路中。更多信息请参见系统权重分配规则。 自定义:手动设置各个实例的读权重,范围为0至10000。后续该主实例下新增只读实例的读权重默认为0,需要您手动配置。说明:分配权重展示的是主实例和只读实例的节点,例如:一主两从,则展示三个节点,用于配置权重。 |
步骤三:配置IP白名单
- 在天翼云官网首页的顶部菜单栏,选择产品 > 数据库 > 关系型数据库 > 关系数据库MySQL版,进入关系数据库MySQL产品页面。然后单击管理控制台,进入TeleDB数据库概览页面。
- 在左侧导航栏,选择MySQL > 实例管理,进入实例列表页面。然后在顶部菜单栏,选择区域和项目。
- 在实例列表中,单击目标实例名称,进入实例基本信息页面。
- 单击IP白名单,进入白名单管理页面。
- 单击添加白名单或者修改已有分组。
- 修改或者添加IP,多个IP通过逗号分隔。
- 单击确认。
- 从源IP访问数据库确认是否有连接报错。
说明开启数据库代理后,若进行了系列升级、迁移可用区等导致实例的节点信息发生变更的操作,则需要在数据库代理页面重新设置节点权重,以刷新后端的节点信息。