操作指南

API 文档

开通数据库代理读写分离

最近更新时间:2022-02-16 14:12:10

通过 数据库代理读写分离 功能,在应用程序中配置数据库代理地址,就可以使写请求自动转发到主实例,读请求自动转发到各个只读实例。

本文为您介绍如何开通/关闭云数据库 MySQL 读写分离功能。

前提条件

开通读写分离

  1. 登录 MySQL 控制台
  2. 在上方选择地域,单击实例 ID或操作列的管理,进入实例管理页。
  3. 在实例管理页的数据库代理页,选择读写分离页,单击立即开启
  4. 在弹出的对话框,选择相关配置,单击确定
    注意:

    • 仅状态为运行中的主实例和只读实例,才能加入数据库代理中。
    • 目前异地 RO 和延迟 RO 不允许挂载到数据库代理下。
    • 只读实例延迟剔除:是否启动剔除策略。当只读实例发生复制异常(复制延迟、复制中断)时,数据库代理会将只读实例暂时移出读写分离。延迟剔除阈值默认为10秒、只读实例最小保留数为1个。
      说明:

      只读实例剔除设置阈值和实例最小保留数后,仅对新连接生效。

    • 延迟剔除阈值:只读实例同步主实例数据时允许的最长延迟时间。若一个只读实例的延迟时间超过该阈值,则不论该只读实例的权重是多少,读请求都不会转发至该只读实例。取值范围为大于或等于1的整数。
      • 若只读实例延迟超过阈值时,则会被剔除,被剔除的实例权重自动设置为0,且系统会向用户发出告警(须先订阅“数据库代理挂载节点剔除”告警,配置请参见 告警功能)。
      • 当只读实例延迟小于阈值时,会重新加入到数据库代理中。同时,不管是否启用延迟剔除功能,只读实例故障被剔除后,待实例修复也会重新加入到数据库代理中。
      • 通过设置只读最小保留数,数据库代理发现当前路由中的只读实例小于设定的值时,将会把异常的只读实例加回读写分离,直至参与读写分离的只读实例个数满足最小保留数。
        注意:

        当只读库发生致命故障(如宕机)时,最小保留数无法作用于致命故障的实例。

    • 只读实例最小保留数:需要保证的实例下限数,若现有只读实例数小于等于此下限且延迟时间超过阈值,现有只读实例均不被剔除。
    • 读权重分配:为实例分配读权重,可选择系统自动分配或自定义,权重分配范围为0 - 100的整数。读权重分配配置后,会立即对所有连接生效。
      • 数据库代理将按照权重设置分配读请求的流量,如,两个只读库的权重分别为10和20,那么他们的读请求流量将按照1:2的比例分配。
      • 权重仅为读请求权重,写请求会直接路由到主库,不参与权重的计算。如,客户端发送了10条写语句和10条读语句,主库和只读库的权重比为1:1,这时主库会收到10条写语句和5条读语句,只读库收到5条读语句。
      • 选择系统自动分配权重时,系统会根据实例的 CPU 和内存规格来自动分配权重,此时仅能设置主实例的权重。
      • 如果只读实例的权重为0,则数据库代理不会对该只读实例建连,如果只读实例的权重从0改为非0,权重无法立即生效,只能对新连接生效。
    • 故障转移:设置是否开启,推荐开启,当只读实例异常时,数据库代理会将读请求发送至主实例。
      说明:

      故障转移配置后,仅对新连接生效。

    • 自动添加只读实例:设置是否开启,开启后,若您购买新的只读实例,会自动添加到数据库代理中。
      • 当读权重为系统自动分配时,新购只读实例按照规格大小默认权重分配。
      • 当读权重为自定义时,新购只读实例默认加入时权重为0,可通过数据库代理读写分离的调整配置修改。

页面展示

数据库代理读写分离功能开启后,您可在读写分离页查看基本信息和读写分离架构图,右侧按钮可重新调整配置和关闭读写分离功能。

关闭读写分离

  1. 登录 MySQL 控制台
  2. 在上方选择地域,单击实例 ID 或操作列的管理,进入实例管理页。
  3. 在实例管理页的数据库代理页,选择读写分离页,在右侧单击关闭读写分离