RDS SQL Server提供迁移可用区功能,您可以将RDS实例迁移至同一地域内的其它可用区。迁移可用区后,实例的所有属性、配置和连接地址都不会改变。迁移所需时间跟实例的数据量有关,通常为半小时左右。
前提条件
实例所在的地域需要有多个可用区,才支持迁移可用区功能。关于地域和可用区的详情,请参见地域和可用区。
实例为主实例,不是只读实例,且主实例下未创建只读实例。
主实例状态需为运行中。
费用
迁移可用区功能免费。即使将实例从单可用区迁移至多个可用区,也不收取费用。
影响
迁移操作一旦开始,不能取消。
迁移前后实例名称、访问端口、标签、数据库账号等原有设置均不发生变化。
迁移过程将引起数据的搬迁,期间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");
。
如果有正在执行的DTS任务,可用区迁移后,需要重启相应的DTS任务。
使用限制
符合以下情况的实例暂不支持迁移可用区:
共享规格实例。
Serverless实例。
经典网络类型实例。
加入AD域的实例。
只读实例以及挂载了只读实例的集群系列主实例。
迁移类型
迁移类型 | 场景 |
从一个可用区迁移至另一个可用区 | 实例所在可用区出现满负载或者其它影响实例性能的情况。 |
从一个可用区迁移至多个可用区 | 迁移后的主备实例分别位于不同的可用区,实现跨机房容灾。 相对于单可用区实例,多可用区实例可以承受更高级别的灾难。例如,单可用区实例可以承受服务器和机架级别的故障,而多可用区实例可以承受机房级别的故障。 说明 对于包含主备节点的实例,建议迁移至多个可用区,实现实例的跨可用区容灾。 |
从多个可用区迁移至一个可用区 | 为了满足特定功能的要求。 |
操作步骤
访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在基本信息区域单击迁移可用区。
在弹出的对话框中,选择目标可用区、专有网络VPC、虚拟交换机和迁移时间。
单击确定。
单击确定后,底层开始拷贝数据到目标可用区,不影响实例运行。拷贝完成后,将按您指定的切换时间(立即切换或在可维护时间段内进行切换),把流量切换到新链路。
重要切换时实例会有几分钟不可用,实例可用性会受到短暂影响,请确保应用具有自动重连机制。
常见问题
Q:Web版本(基础系列)的RDS SQL Server实例能否直接升级或修改可用区为多可用区?并实现主备在不同可用区?
A:不能。Web版本(基础系列)的RDS实例为单可用区,无法修改为多可用区。您可以先升级Web版本(基础系列)到标准版(高可用系列),再将备可用区迁移到其他可用区。
RDS SQL Server高可用系列的实例为一主一备架构。更多详情,请参见高可用系列。
相关API
API | 描述 |
迁移RDS实例可用区。 |