GaussDB(for MySQL)读写分离

GaussDB(for MySQL)读写分离简介

GaussDB(for MySQL)读写分离是指通过一个读写分离的连接地址实现读写请求的自动转发。创建实例后,您可以开通读写分离功能,通过GaussDB(for MySQL)的读写分离连接地址,写请求自动访问主节点,读请求按照读权重设置自动访问各个节点。目前支持创建4个代理实例,多个代理实例适用于有隔离需求的复杂业务,根据业务需要使用对应的连接地址连接到实例。

数据库代理服务暂不收费,后续收费会提前告知日期。

开通读写分离时,需选择加入代理的节点(包括主节点和只读节点)。

各业务可以通过代理实例的读写分离地址连接实例。且读请求会分别发往连接的代理实例。您也可以对代理实例添加或移除节点。

同一个节点(包括主节点和只读节点)可以同时被多个代理实例选择,并设置不同的读权重配比。权重分配具体操作请参见设置读写分离权重

读写模式的代理实例,可代理读、写请求,其中,写请求全部路由给主节点,读请求根据读权重配比分发到各个节点。

只读模式的代理实例,只能代理读请求,读请求根据读权重配比分发到各个只读节点。不会分发到主节点,即使主节点被选为服务节点且已配置读权重,也不会生效。

GaussDB(for MySQL)开通读写分离

GaussDB(for MySQL)业务场景

GaussDB(for MySQL)读写分离是指通过一个读写分离的连接地址实现读写请求的自动转发。通过GaussDB(for MySQL)的读写分离连接地址,写请求自动访问主节点,应用直连即可实现自动读写分离。本文将介绍如何开通读写分离功能。

GaussDB(for MySQL)约束限制

GaussDB(for MySQL)数据库代理实例的内核版本同时符合以下条件,不允许开通读写分离。

1、代理实例内核版本大于等于2.0.26.2

2、代理实例内核版本小于2.0.28.4或内核版本等于2.0.29.1

GaussDB(for MySQL)操作步骤

步骤 1登录管理控制台

步骤 2单击管理控制台左上角的,选择区域和项目。

步骤 3在页面左上角单击,选择“数据库 > 云数据库 GaussDB(for MySQL)”。

步骤 4在实例列表中,单击目标实例的名称,进入实例的“基本信息”页面。

步骤 5在左侧导航栏中,单击“数据库代理”。

步骤 6在申请页面单击“新增代理”。

步骤 7在弹出的对话框中,设置代理实例名称、代理模式、一致性级别、代理实例规格、代理实例节点数量,选择数据库节点并设置读权重后,单击“确定”,开启实例的读写分离功能。在已有一个代理实例后,还需创建新的代理实例并开通读写分离功能,请单击“新增代理”进行设置。

GaussDB(for MySQL)代理实例名称:长度在4个到64个字符之间,必须以字母开头,区分大小写,可以包含字母、数字、中划线或下划线,不能包含其他特殊字符。

GaussDB(for MySQL)代理模式:支持读写模式和只读模式。

说明:读写模式:所有写请求只发往主节点,所有读请求按照读权重配比分发到已选节点。主节点的读权重值默认为100。

只读模式:所有读请求按照读权重配比分发到已选只读节点,不会分发到主节点,即使主节点被选为服务节点且已配置读权重,也不会生效。

只读模式仅支持读请求业务,写业务请求会有异常提示。

该功能降低了主节点负载。

在只读模式下,不支持DDL、DML操作和临时表操作。

GaussDB(for MySQL)一致性级别:目前支持最终一致性、会话一致性和全局一致性,详情请参见一致性级别

说明:如果需要减轻主节点压力,让尽量多的读请求路由到只读节点,您可以选择最终一致性。

一致性级别需要数据库内核小版本为8.0.22.28.1及以上。

开启会话一致性还需您的数据库代理引擎版本为2.7.4.0及以上。

开启全局一致性还需您的数据库代理引擎版本为2.23.02.000及以上。

GaussDB(for MySQL)代理实例规格:2 vCPUs | 4 GB ( 鲲鹏通用计算增强型 )、4 vCPUs | 8GB ( 鲲鹏通用计算增强型 )、8 vCPUs | 16 GB ( 鲲鹏通用计算增强型 )、2 vCPUs | 4 GB ( 通用增强型 )、4 vCPUs | 8 GB ( 通用增强型 )、8 vCPUs | 16 GB ( 通用增强型 ),根据实际需要选择代理实例规格。

代理实例节点数量:默认为2个节点。最小支持2个节点,最大支持32个节点。推荐代理实例节点数量 =(主节点CPU核数+所有只读节点CPU核数总和)/(4*代理实例CPU核数),计算结果向上取整。

读权重分配:对于开启读写分离功能的实例,您可以添加或移除节点,并设置其主节点和只读节点的读权重。实例以配置的读权重比例分发读请求。例如代理实例已选择1个主节点和2个只读节点,读权重配置为100、200、200。在读写模式下,主节点和2个只读节点将按照1:2:2的比例处理读请求。即主节点处理20%的请求,2个只读节点分别处理40%的请求,写请求自动发往主节点。而在只读模式下,主节点权重在进行读请求处理分配时不生效,由2个只读节点分别处理50%的请求。具体操作请参见设置读写分离权重

----结束

GaussDB(for MySQL)常见问题解答

GaussDB(for MySQL)常见问题解答

  • GaussDB(for MySQL)如何找回误删除数据库和数据表?

    您可以通过GaussDB(for MySQL)的备份恢复功能,通过备份文件恢复误删除的数据,具体请参见将备份恢复至实例

  • GaussDB(for MySQL)如何将本地数据库迁移上云?

    使用数据复制服务(Data Replication Service,简称DRS)将本地数据库迁移到云数据库GaussDB(for MySQL),可以实现应用不停服的情况下,平滑完成数据库的迁移工作。具体迁移操作,请参见《数据复制服务用户指南》的“在线迁移”内容。

    说明:

    当前支持MySQL->GaussDB(for MySQL)、Oracle->GaussDB(for MySQL)的迁移。

    源库为GaussDB(for MySQL)时,可使用MySQL->GaussDB(for MySQL)进行数据迁移。具体操作请参见MySQL->GaussDB(for MySQL)

    云数据库 GaussDB(for MySQL)默认表名大小写不敏感。

  • GaussDB(for MySQL)冷热数据问题导致SQL执行速度慢?

    场景描述:从自建MySQL或友商MySQL迁移到云上GaussDB(for MySQL)实例,发现同一条SQL语句执行性能远差于原数据库。

    原因分析:同一条SQL语句在数据库中执行第一次和第二次可能会性能差异巨大,这是由数据库的buffer_pool机制决定的:

    第一次执行时,数据在磁盘上,称之为冷数据,读取需要一定的耗时。

    读取完,数据会被存放于内存的buffer_pool中,称为热数据,读取迅速;对于热数据的访问速度极大的超过冷数据,所以当数据是热数据时,SQL语句的执行速度会远快于冷数据。

    该场景中,源端数据库中常用的数据一般是热数据,所以访问时速度极快。当数据迁移到云上GaussDB(for MySQL)时,第一次执行同样的SQL语句,很可能是冷数据,就会访问较慢,但再次访问速度就会得到提升。

    解决方案:该场景是正常现象,在同一个数据库中,我们经常会遇到第一次执行一条语句时很慢,但再次执行就很快,也是因为受到了buffer_pool的冷热数据原理的影响。

  • GaussDB(for MySQL)如何将GaussDB(for MySQL)数据库备份到弹性云服务器上?

    您可以通过导出SQL语句的方式将数据库备份到弹性云服务器上。弹性云服务器不限制存放哪些数据,但是数据必须符合国家法律法规。您可以在弹性云服务器上存放数据库备份,但不建议将弹性云服务器作为数据库备份空间使用。

    强烈推荐使用云数据库GaussDB(for MySQL)的自动备份和手动备份将备份数据存放到专业的对象存储服务上,以获得更高的数据可靠性和服务保障。

  • GaussDB(for MySQL)为什么自动备份会失败?

    出现自动备份失败可能有以下原因:

    1.网络环境稳定性不足。如网络延时、中断,系统会识别并延时半小时再次执行备份,您也可以及时进行一次手动备份。

    2.系统多任务执行复杂性。如任务等待、中止,系统会识别并延时半小时再次执行备份,您也可以及时进行一次手动备份。

    3.实例状态异常。如实例故障、状态变更中,系统会识别并在状态恢复正常后再次执行备份,您也可以及时进行一次手动备份。

    4.参数修改异常。如修改参数并关联实例后导致实例故障,您可以对比参数修改前后的值是否正确、修改的参数是否存在关联参数需要一并修改、或者尝试恢复默认参数重启实例。

    5.导入数据异常。

    如导入数据不当导致系统表记录丢失,您可以参考使用DRS迁移到GaussDB(for MySQL)数据

    6.如果以上操作仍无法解决问题,请联系技术支持。

  • GaussDB(for MySQL)的备份是如何收费的?

    云数据库GaussDB(for MySQL)的备份文件存储在对象存储服务上,不占用用户购买实例的存储空间,GaussDB(for MySQL)提供了和实例磁盘大小相同的免费存储空间,用于存放您的备份数据。

    自动备份的生命周期和实例的生命周期相同。如果实例删除,那么自动备份也会同时被删除,如果您有手动备份,手动备份不会自动删除,详情请参见删除手动备份

    举个例子,假如用户购买实例时,存储空间选择了200GB,那么所有的备份空间合计,只有超过200GB才开始计费,前200GB是免费的。对于超过免费容量的存储空间,目前仅支持按需计费,用多少收取多少费用,具体收费请参见计费说明

    说明:免费的存储空间是在收取了数据盘的存储空间费用后赠送的,数据盘存储空间冻结以后不再收费,因此不再享受备份赠送空间。

    用户实例冻结后,将没有免费的存储空间,会导致实例原有自动备份收费。

    l如果选择解冻实例,将恢复免费的存储空间。

    l如果直接删除冻结的实例,原有的自动备份将会同时被删除,备份空间不会继续收费。

专题内容推荐

活动规则

活动对象:华为云电销客户及渠道伙伴客户可参与消费满送活动,其他客户参与前请咨询客户经理

活动时间: 2020年8月12日-2020年9月11日

活动期间,华为云用户通过活动页面购买云服务,或使用上云礼包优惠券在华为云官网新购云服务,累计新购实付付费金额达到一定额度,可兑换相应的实物礼品。活动优惠券可在本活动页面中“上云礼包”等方式获取,在华为云官网直接购买(未使用年中云钜惠活动优惠券)或参与其他活动的订单付费金额不计入统计范围内;