云数据库RDS for MySQL读写分离简介

读写分离是指通过一个读写分离的连接地址实现读写请求的自动转发。

云数据库MySQL支持开通单Proxy或多个Proxy功能,其中,多个Proxy功能支持创建多个Proxy实例并设置只读权重,适用于需要业务隔离的场景。

开通读写分离功能后,如果无只读实例,通过RDS的读写分离连接地址,读写请求均会自动访问主实例。

开通读写分离功能后,如果存在只读实例,通过RDS的读写分离连接地址,写请求均会自动访问主实例,读请求按照读权重设置自动访问各个实例。

Proxy负载均衡基于负载的自动调度策略,实现多个只读节点间的负载均衡。

适用场景

-在对数据库有少量写请求,但有大量读请求的应用场景下,单个实例可能无法抵抗读取压力,甚至对主业务产生影响。为了实现读取能力的弹性扩展,分担数据库压力,您可以在某个区域中创建一个或多个只读实例,利用只读实例满足大量的数据库读取需求,以此增加应用的吞吐量。

-相比在应用程序内手动做读写分离,扩容灵活,维护成本低。客户端读请求按权重分发至后端只读节点,数据库实例整体负载更加均衡,提升资源利用率。

-客户端读请求按权重分发至后端只读节点,数据库实例整体负载更加均衡,提升资源利用率。

-通过代理将指定业务的读请求路由到选定的只读实例上,实现业务隔离,避免多个业务之间相互影响。

开通单Proxy和多Proxy的区别

单proxy,即一个MySQL实例下只有1个Proxy实例,通过一个读写分离的连接地址实现读写请求的自动转发,写请求自动访问主实例,读请求按照读权重设置自动访问各个实例。

多proxy,一个MySQL实例下可以创建多个Proxy实例,最多支持创建4个,主要适用于业务隔离场景。

读写模式:代理连接主实例,可以在主实例上配置读权重,写请求自动发往主实例。

只读模式:代理不连接主实例,读请求无法分配到主实例上,写请求报错。

不同的应用服务通过连接不同的代理,代理连接指定的只读实例,实现不同应用服务之间的读请求最终转发到不同的只读实例上,保证相互之间无影响,实现业务隔离。

一个MySQL只读实例可以被不同代理连接,但通常建议只有一个代理分配流量到该只读实例上。

云数据库RDS for MySQL开通读写分离

开启单Proxy

操作步骤

步骤 1登录管理控制台

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

步骤 3单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。

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

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

您还可以在实例的“基本信息”页面,单击“连接信息”模块“读写分离地址”后的“申请”,跳转到“数据库代理”页面。

步骤 6在“数据库代理”页面单击“创建数据库代理”。

步骤 7在开启数据库代理页面,设置以下参数,单击“下一步”。

读写分离具备连接保持、读写分离能力。开启读写分离后,将新增1个读写分离连接地址,请将应用连接切换到新地址。

读写分离地址:通过读写分离地址连接数据库,可实现读写分离功能。

该读写分离地址与实例的内网IP地址处于同一VPC和子网,且与实例的内网IP地址并存,互不影响。

延时阈值:对于成功开启读写分离功能的实例,您可以设置其延时阈值。具体操作请参见设置延时阈值和路由模式

负载均衡实例选择:对于成功开启读写分离功能的实例,您可以选择负载均衡实例。

步骤 8信息确认无误,单击“提交”,下发创建数据库代理请求。

步骤 9创建完成后,可以在“数据库代理”页面查看并管理代理服务信息。

在“基本信息”页面查看读写分离地址,通过读写分离地址连接数据库,可实现读写分离功能。

该读写分离地址与实例的内网IP地址处于同一VPC和子网,且与实例的内网IP地址并存,互不影响。

----结束

开启多Proxy

操作步骤

步骤 1登录管理控制台

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

步骤 3单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。

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

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

您还可以在实例的“基本信息”页面,单击“连接信息”模块“读写分离地址”后的“申请”,跳转到“数据库代理”页面。

步骤 6在“数据库代理”页面单击“创建数据库代理”。

步骤 7在“开启数据库代理服务”页面,填选如下信息后,单击“下一步”。


步骤 8信息确认无误,单击“提交”,下发创建数据库代理请求。

步骤 9创建完成后,可以在“数据库代理”页面查看并管理代理服务信息。

在“基本信息”页面查看读写分离地址,通过读写分离地址连接数据库,可实现读写分离功能。

该读写分离地址与实例的内网IP地址处于同一VPC和子网,且与实例的内网IP地址并存,互不影响。

----结束

云数据库RDS for MySQL常见问题

云数据库RDS for MySQL常见问题

  • RDS for MySQL支持分库分表及读写分离的业务功能吗?

    RDS支持分库分表及读写分离功能,具体如下:

    分库分表功能依赖于所使用的分布式数据库中间件(Distributed Database Middleware,简称DDM),用于解决存储空间或者性能拓展的问题。

    1个RDS for MySQL类型主备实例(或者单机实例)最多可以创建5个只读实例,只读实例和主备实例(或者单机实例)使用独立的IP连接地址。

    如果想使用统一的读写分离地址,请首先开启读写分离

  • RDS for MySQL支持申请多个读写分离地址吗?

    支持。

    开启单Proxy功能后,将自动新增1个读写分离连接地址。通过读写分离连接地址,写请求均会自动访问主实例,读请求按照读权重设置自动访问各个实例。

    开启多个proxy功能后,支持创建多个数据库代理。不同的应用服务通过连接不同的代理,代理连接指定的只读实例,实现不同应用服务之间的读请求最终转发到不同的只读实例上,保证相互之间无影响,实现业务隔离。

  • 如何将本地数据库备份恢复到云数据库RDS?

    可以使用DRS迁移功能,将本地数据库备份恢复到云上数据库。具体请参见入云迁移

    更多备份恢复方案,请参见恢复方案概览。

  • RDS for MySQL是否支持表级备份到指定OBS?

    RDS for MySQL暂不支持表级备份到指定OBS。

    云数据库RDS支持全量备份和增量备份(Binlog备份),无论是全量备份还是增量备份,都存储在对象存储服务上。

  • RDS实例删除后,备份是否会保留?

    云数据库实例删除后,手动备份默认为您保留,需要手动删除,并按照备份空间计费标准收取相应的费用。实例冻结后,备份不会收取费用。

    自动备份、binlog备份及相关的备份文件会自动删除。

专题内容推荐

活动规则

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

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

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