您可以将RDS实例迁移至同一地域内的其它可用区。迁移所需时间跟实例的数据量有关,通常为几个小时。
前提条件
- 实例系列为高可用版或基础版。
- 实例状态为运行中。
- 如果为云盘实例,内核小版本不可低于20201031。如何升级内核小版本,请参见升级内核小版本。
- 实例所在的地域需要有多个可用区,才支持迁移可用区功能。关于地域和可用区的详情,请参见地域和可用区。
- 实例已升级网络链路。详细说明请参见【重要】RDS网络链路升级说明。
- 实例规格不能是历史规格。如需变更实例规格,请参见变更配置。
其他引擎迁移可用区请参见:
费用
迁移可用区功能免费。即使将实例从单可用区迁移至多个可用区,也不收取费用。
影响
- 切换时实例可用性会受到短暂影响,请确保应用具有自动重连机制。
- 迁移可用区会造成虚拟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 MySQL实例挂载在PolarDB-X实例之下,VIP的变更会影响到RDS实例与PolarDB-X实例之间的连通性,请及时手动修复。更多信息,请参见修复分库连接。
- 如果有正在执行的DTS任务,可用区迁移后,需要重启相应的DTS任务。
迁移类型
迁移类型 | 场景 |
---|---|
从一个可用区迁移至另一个可用区 | 实例所在可用区出现满负载或者其它影响实例性能的情况。 |
从一个可用区迁移至多个可用区 | 提高实例的容灾能力,实现跨机房容灾。主备实例分别位于不同的可用区。
相对于单可用区实例,多可用区实例可以承受更高级别的灾难。例如,单可用区实例可以承受服务器和机架级别的故障,而多可用区实例可以承受机房级别的故障。 |
从多个可用区迁移至一个可用区 | 为了满足特定功能的要求。 |
操作步骤
相关API
API | 描述 |
---|---|
迁移可用区 | 迁移RDS实例可用区。 |
常见问题
- Q:可用区迁移过程中新写入的数据,切换后对原数据是否有影响?新数据是否会保留?
A:可用区切换后,原有数据不会有影响;迁移过程中新写入的数据会保留。需注意,迁移过程实例是可用的,但切换时会发生连接闪断,请确保应用具有自动重连机制。若应用没有自动重连机制,需手动重连。
- Q:实例可用区迁移时间与什么有关?
A:与数据量成正比,数据量越大迁移时间越长。