您可以将RDS实例迁移至同一地域内的其它可用区。迁移可用区后,实例的所有属性、配置和连接地址都不会改变。迁移所需时间跟实例的数据量有关,通常为几个小时。

前提条件

  • 根据实例的存储类型、版本、系列及规格族,该功能的支持情况如下:
    存储类型 实例版本 系列 规格族 是否支持
    云盘 RDS PostgreSQL 14、13、12、11、10 高可用版 独享型 所有规格均支持
    通用型 支持的规格有:
    • pg.n2.medium.2c
    • pg.n2.small.2c
    说明 上述规格已停止售卖。
    新通用型 不支持
    基础版 通用型 支持
    新通用型 不支持
    本地盘 RDS PostgreSQL 10 高可用版 通用型 所有规格均支持
    RDS PostgreSQL 9.4 高可用版 独享型
    通用型
  • 实例所在的地域有多个可用区时,才支持迁移可用区功能。关于地域和可用区的详情,请参见地域和可用区
  • 实例为主实例,不是只读实例,且主实例下未创建只读实例。

注意事项

  • 云盘实例不支持在保持主可用区不变的情况下迁移备可用区,例如:
    • 不支持将新加坡 可用区A(主) + 可用区B(备)迁移至新加坡 可用区A(主) + 可用区C(备)
    • 支持将新加坡 可用区A(主) + 可用区B(备)迁移至新加坡 可用区C(主) + 可用区A(备)
  • 本地盘实例只支持迁移主可用区。

费用

迁移可用区功能免费。即使将实例从单可用区迁移至多个可用区,也不收取费用。

影响

  • 切换时实例可用性会受到短暂影响,请确保应用具有自动重连机制。
  • 迁移可用区会造成虚拟IP(VIP)的变更,请尽量在您的应用程序中使用连接地址进行连接,不要使用IP地址。
  • 请及时清理客户端DNS缓存。客户端采用JVM的应用,建议将JVM配置中的TTL设置为不超过60秒,可确保在连接地址的VIP地址发生变更时,应用程序可以通过重新查询DNS来接收和使用资源的新VIP地址。
    说明 下列JVM中设置TTL的方法可供参考:
    • 为所有使用JVM的应用程序设置TTL:将$JAVA_HOME/jre/lib/security/java.security文件中的networkaddress.cache.ttl参数值设置为60。
    • 仅为本地应用程序设置TTL:在首次调用InetAddress.getByName()前,即建立任何网络连接之前,在应用程序的初始化代码中设置networkaddress.cache.ttl java.security.Security.setProperty("networkaddress.cache.ttl" , "60");
  • 如果有正在执行的DTS任务,可用区迁移后,需要重启相应的DTS任务。

迁移类型

迁移类型 场景
从一个可用区迁移至另一个可用区 实例所在可用区出现满负载或者其它影响实例性能的情况。
从一个可用区迁移至多个可用区 提高实例的容灾能力,实现跨机房容灾。主备实例分别位于不同的可用区。

相对于单可用区实例,多可用区实例可以承受更高级别的灾难。例如,单可用区实例可以承受服务器和机架级别的故障,而多可用区实例可以承受机房级别的故障。

从多个可用区迁移至一个可用区 为了满足特定功能的要求。

操作步骤

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 基本信息区域单击迁移可用区
  3. 在弹出的对话框中,选择需要迁移的主备可用区及交换机,然后单击确定
    迁移可用区

    主要参数及配置规则

    参数 配置规则
    迁移至主可用区 选择新的主可用区备可用区
    • 如果实例存储类型为本地盘,只支持迁移主可用区,不支持迁移备可用区。
    • 如果实例存储类型为云盘,支持同时迁移主可用区和备可用区,不支持主可用区不变,只迁移备可用区。
      说明 以当前可用区为新加坡 可用区A(主) + 可用区B(备)为例,如果需要实现主可用区不变,只迁移备可用区(即迁移后为新加坡 可用区A(主) + 可用区C(备)),需要按如下步骤迁移:
      1. 新加坡 可用区A(主) + 可用区B(备)迁移为新加坡 可用区C(主) + 可用区A(备)
      2. 使用主备切换,将新加坡 可用区C(主) + 可用区A(备)切换为新加坡 可用区A(主) + 可用区C(备),具体请参见自动或手动主备切换
    迁移至备可用区
    主可用区交换机 选择主、备可用区对应的虚拟交换机。如果当前可用区无虚拟交换机,请参见创建交换机
    备可用区交换机
    切换时间
    • 立即切换:配置后立即切换。
    • 在设置时间段内切换:单击修改,选择切换可用区的时间段。

    单击确定后,底层开始拷贝数据到目标可用区,不影响实例运行。拷贝完成后,将按您指定的切换时间(立即切换在可维护时间段内切换),把流量切换到新链路。

    说明
    • 切换时会发生连接闪断。请确保应用具有自动重连机制。若应用没有自动重连机制,需手动重连。
    • 由于客户端DNS缓存可能没有及时刷新,部分流量可能在10分钟后才进行切换,导致第二次闪断。客户端采用JVM的应用,建议将JVM配置中的TTL设置为不超过60秒,可确保在连接地址的VIP地址发生变更时,应用程序可以通过重新查询DNS来接收和使用资源的新VIP地址。设置方法请参见本文的影响章节。

相关API

API 描述
迁移可用区 迁移RDS实例可用区。