本文介绍使用数据库代理的常见问题。
目录
-
什么是独享代理?
-
想实现读写分离,是使用独享代理地址还是读写分离地址?
-
使用独享代理地址连接时报超时错误怎么办?
-
独享代理的性能如何?读写压力大时,是否会影响业务访问?
-
独享代理的内网网络类型是否和主实例相同?
-
独享代理是否占用主实例的QPS或者TPS?
-
独享代理地址和常规地址是否是一个地址?
-
开通独享代理后,实例原来的地址和只读实例的地址是否会被收回?
-
多个代理会有多个代理地址吗?
-
独享代理是什么架构?有故障切换机制吗?
-
数据库独享代理对用户的连接数有限制吗?
-
主实例写的频率不高,能不能让读请求也发送给主实例?
-
读写分离支持hint语句吗?
-
只读实例不可用时,新连接会连接到正常的只读实例上,那已连接到故障只读实例的连接会自动切换到正常只读实例上吗?
-
为什么修改后的权重没有生效 ?
-
为什么各节点的负载不符合配置的读权重?
-
读写分离地址可以修改吗?
-
为什么查询时会出现乱码?
-
数据库代理中的连接池与应用程序中的连接池有什么区别,应该如何结合使用?
-
没有开通数据库代理服务,可以配置只读实例的业务分配权重吗?
-
开通数据库代理服务后,如何验证读写分离?
-
购买只读实例做读写分离后,主实例的历史数据是否会自动同步到只读实例?
-
DDL操作是否会自动从主库同步到从库?
什么是独享代理?
独享代理是位于数据库服务端和应用服务端之间的网络代理服务,用于转发应用服务端访问数据库时的所有请求,提供自动读写分离、事务拆分、连接池等高级功能,具有高可用、高性能、可运维、简单易用等特点。
5.7版本实例已经升级小版本了,为什么还是只有读写分离,没有独享代理功能?
升级后您需要关闭原有的读写分离,才能看到独享代理的开启页面。
想实现读写分离,是使用独享代理地址还是读写分离地址?
独享代理地址和读写分离地址相同,RDS是基于独享代理地址实现读写分离。
使用独享代理地址连接时报超时错误怎么办?
建议您将wait_timeout参数调大后再次尝试连接。如何调整实例参数,请参见设置实例参数。
独享代理的性能如何?读写压力大时,是否会影响业务访问?
独享代理是一个代理服务,负责实例负荷大时分发读写流量到不同的实例,减轻主实例的读写压力。不会影响业务访问。
独享代理的内网网络类型是否和主实例相同?
独享代理的内网网络类型统一为专有网络。
独享代理是否占用主实例的QPS或者TPS?
不会。
独享代理地址和常规地址是否是一个地址?
不是。
-
常规地址:正常的业务读写地址,通过该地址发送的所有请求只会路由到该实例。
-
独享代理地址:可根据用户的SQL请求,自动判断读请求或写请求,并分发到主实例或只读实例,实现读写分离,减轻主实例的压力。
开通独享代理后,实例原来的地址和只读实例的地址是否会被收回?
不会收回。
多个代理会有多个代理地址吗?
代理数量和代理地址数量没有关系,即使1个代理,也可以申请多个代理地址。
独享代理是什么架构?有故障切换机制吗?
独享代理也是高可用架构,拥有2个节点,并且出现故障时会自动切换到备节点。
数据库独享代理对用户的连接数有限制吗?
独享代理本身并没有最大连接数的限制,连接数的限制还是由数据库中计算节点的规格决定。
主实例写的频率不高,能不能让读请求也发送给主实例?
设置读权重分配时,为主实例也设置权重即可。如何为主实例设置权重,请参见开通并配置数据库代理服务。
读写分离支持hint语句吗?
您可以通过hint语句强制转发请求到主实例上执行。关于RDS读写分离支持的hint格式,请参见文档系统权重分配规则中的通过hint指定SQL发往主实例或只读实例部分。
只读实例不可用时,新连接会连接到正常的只读实例上,那已连接到故障只读实例的连接会自动切换到正常只读实例上吗?
不会自动切换,需要等待超时后重新连接到正常只读实例上。
为什么修改后的权重没有生效 ?
修改权重后,新建的连接才会根据新权重进行分配,已存在的连接不会断开重连。
为什么各节点的负载不符合配置的读权重?
若各节点的负载与配置的读权重不同,主要检查如下两个方面:
-
请求语句是否包含了事务。包含了事务的所有请求只会路由到主实例,开启事务拆分可以降低主实例负载。
-
是否只用了读写分离地址(独享代理地址)连接数据库。如果使用了主实例地址或者只读实例地址,这些地址收到的请求不会按权重分配。
读写分离地址可以修改吗?
读写分离地址(独享代理地址)可以修改,具体操作,请参见设置独享代理连接地址。
为什么查询时会出现乱码?
通过如下命令检查主实例和只读实例使用的字符集是否一致。
select
@@global.character_set_results,
@@global.character_set_client,
@@global.character_set_connection,
@@global.character_set_server;
如果不一致可能会出现乱码,您可以修改主实例或只读实例的字符集,确保两个实例使用的字符集一致。如何修改实例字符集,请参见RDS MySQL字符集相关说明。
数据库代理中的连接池与应用程序中的连接池有什么区别,应该如何结合使用?
RDS读写代理的连接池功能是指Proxy的连接池功能,不影响客户端的连接池功能。如果您的客户端已经支持连接池,则可以不使用Proxy的连接池功能。RDS读写代理的连接池功能详情,请参见设置连接池类型。
没有开通数据库代理服务,可以配置只读实例的业务分配权重吗?
没有开通数据库代理服务,无法配置只读实例的业务分配权重,您可以在不同的应用程序中配置不同的连接地址(只读实例或主实例连接地址),实现读写分离和负载均衡。
开通数据库代理服务后,如何验证读写分离?
读写分离的验证方法,请参见验证读写分离。
购买只读实例做读写分离后,主实例的历史数据是否会自动同步到只读实例?
开通数据库代理服务并完成读写分离的相关数据配置后,主实例的历史数据会自动同步到只读实例,无需手动同步。
DDL操作是否会自动从主库同步到从库?
所有DDL操作(创建表或库、删除表或库、变更表结构、权限等)会自动从主库同步到从库。
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/155071.html