为避免共享代理的稳定性、可扩展性和性能问题,阿里云RDS MySQL推出独享代理功能,已开启共享代理的实例可以升级为独享代理。

前提条件

  • 主实例与只读实例为如下版本:
    说明
    • MySQL 5.6三节点企业版暂时不支持升级。
    • 如果升级时出现如下图报错,表示您需要先升级内核小版本
    报错
  • 实例已开启共享代理。 您可以在数据库代理页面查看是否为共享代理。共享代理

背景信息

RDS MySQL的读写分离功能基于代理实现。部分存量MySQL 5.6、5.7实例的读写分离功能基于共享代理实现,存在稳定性风险,建议升级为独享代理。相比共享代理,独享代理有以下优势:

  • 稳定性和隔离性更好。
  • 性能更高。例如在数据库不是瓶颈时,使用SysBench在OLTP场景测试,一个独享代理能够提供20,000 QPS。
  • 独享代理数量可扩展,方便扩容业务。
  • 独享代理的性能可监控,您可以根据监控及业务规划调整相应的独享代理个数,实时生效。
  • 提供独享代理连接地址,应用使用该地址后不用反复变更应用内的地址,减少维护成本,只要不释放代理,代理连接地址可以永远使用。例如您在大促时期开启读写分离,大促结束后释放只读实例,关闭读写分离,也不用变更应用内的连接地址。
  • 基于独享代理连接地址可以实现读写分离、短连接优化、事务拆分等功能。

独享代理的详情请参见数据库独享代理

共享独享对比

下文将介绍如何将存量的共享代理升级为独享代理。

费用

升级为独享代理时,系统会根据RDS实例(主实例及其只读实例)总规格,计算出独享代理个数。系统提供优惠,优惠以外的独享代理按小时付费。具体价格请参见独享代理计费

  • 如果您的实例是按量付费实例:

    所有独享代理都需付费。

    例如:系统计算出独享代理数量为6个,那么需为6个代理付费。

  • 如果您的实例为包年包月实例:
    • 系统计算出的所有独享代理在实例到期前免费。实例到期后,所有独享代理需付费。

      例如:RDS实例在2021.04.01升级为独享代理,当时的到期时间为2021.04.30,系统计算出6个独享代理,那么这6个在2021.04.01-2021.04.30期间免费。

      说明 如果升级独享代理后通过续费延长了实例到期时间,仍然以升级时的实例到期时间为准。
    • 如果在实例到期前,您调整了独享代理数量,那么只有超过优惠数量的独享代理才需要付费。

      例如:RDS实例在2021.04.01升级为独享代理,当时的到期时间为2021.04.30,系统计算出6个独享代理,您在2021.04.30前调整为5个,然后再调整为6个,也不需要支付额外费用,如果调整为8个,那么需为其中2个付费。

    • 如果在实例到期前,您关闭了独享代理,那么再次开启独享代理需为所有独享代理付费。

      例如:RDS实例在2021.04.01升级为独享代理,当时的到期时间为2021.04.30。您在2021.04.15关闭独享代理,在2021.04.20再次开通独享代理,系统计算出8个独享代理,那么需要从2021.04.20起为8个独享代理付费。

注意事项

  • 独享代理的连接模型是1:N(即您的一个连接会后端连接到主实例和所有只读实例),建议开通独享代理后,主实例和只读实例的连接数规格尽量一致,否则业务的连接数会受限于最小规格的实例连接数限制。
  • 切换到独享代理后,新增只读实例或只读实例重启,只有新的连接的请求才会路由到新的只读实例或重启的只读实例,老的连接请求不会路由过去。
  • 主实例与只读实例的参数max_prepared_stmt_count需要一致。
  • 更多注意事项请参见数据库独享代理

影响

升级过程会影响主实例连接地址、只读实例连接地址和读写分离连接地址的可用性,其中主实例连接地址、只读实例连接地址会出现30秒的闪断,读写分离连接地址会出现30秒的不可用。

操作步骤

  1. 登录RDS管理控制台
  2. 在左侧单击实例列表,然后在上方选择实例所在地域。
    选择地域
  3. 找到目标实例,单击实例ID。
  4. 在左侧导航栏中单击数据库代理
  5. 在右侧单击升级到独享代理
    说明 请耐心等待升级完成。
    升级到独享代理