RDS SQL Server支持迁移可用区功能,您可以在同一地域内将实例跨VPC迁移至其它可用区。

前提条件

实例所在的地域有多个可用区。关于地域和可用区的详情,请参见地域和可用区

费用

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

影响

  • 迁移操作一旦开始,不能取消。
  • 迁移前后实例名称、访问端口、标签、数据库账号等原有设置均不发生变化。
  • 迁移过程将引起数据的搬迁,期间SQL Server实例可正常访问,业务不受影响。
  • 迁移所需时间与实例的数据量有关,一般从迁移开始大约20分钟。迁移过程内若有大量操作会延长该时间,请选择在合适的时间进行迁移。
  • 切换时实例可用性会受到短暂影响,请确保应用具有自动重连机制。
  • 迁移可用区会造成虚拟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");
  • 如果您的RDS实例挂载在PolarDB-X实例之下,VIP的变更会短暂影响到PolarDB-X的可用性,请及时在PolarDB-X控制台刷新并查看连接信息。
  • 如果有正在执行的DTS任务,可用区迁移后,需要重启相应的DTS任务。

使用限制

如果实例包含以下情况之一,暂不支持迁移可用区:
  • 共享实例。
  • BYOL实例。
  • 经典网络实例。
  • 加入AD域的实例。
  • 开启TDE、SSL、云盘加密功能的实例。
  • SQL Server 2017、2019集群版只读实例。
  • 开启快照备份的实例,您可提工单申请将实例回退到物理备份后进行迁移。
  • SQL Server 2017、2019集群版主实例若挂载了只读实例,主实例不支持迁移。所有的只读实例均不支持迁移。

迁移类型

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

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

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

操作步骤

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 基本信息区域单击迁移可用区迁移
  3. 在弹出的对话框中,选择目标可用区、专有网络VPC、虚拟交换机和迁移时间。
    说明
  4. 单击确定

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

    说明
    • 切换时会发生一次约30秒的闪断。请确保应用具有自动重连机制。若应用没有自动重连机制,需手动重连。
    • 由于客户端DNS缓存可能没有及时刷新,部分流量可能在10分钟后才进行切换,导致第二次闪断。

相关API

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