RDS MySQL支持迁移数据库代理实例的可用区,您可以将数据库代理服务迁移至同一地域内的其他可用区。建议数据库代理可用区和RDS MySQL主实例的主可用区保持一致。
关于RDS数据库代理的使用问题和更多相关信息,欢迎加入用户钉钉群(106730000316)进行咨询、反馈和交流 。
前提条件
RDS实例需满足以下条件:
引擎:RDS MySQL
实例系列:高可用系列、集群系列
存储类型:云盘版
服务:已开通数据库代理服务
实例运行状态:运行中
说明主实例、只读实例以及代理实例状态均为运行中。
RDS实例需存在专有网络类型的连接地址,且不支持存在经典网络类型的代理实例做可用区迁移。如何查看和管理实例连接地址,请参见查看和管理实例连接地址和端口。
费用
数据库代理迁移可用区功能免费。
影响
迁移代理可用区时,数据库代理连接会出现约30秒的闪断。
针对高可用系列实例,通过主实例连接地址、只读实例连接地址的业务不受影响;
针对集群系列实例,通过集群读写地址、集群只读地址、节点直连地址的业务不受影响。
说明建议将业务切换到上述不受影响的连接地址中,并在业务低峰期进行可用区迁移。
请确保应用有自动重连机制。
说明若应用无自动重连机制,请手动进行应用与数据库的重连。
迁移代理可用区会造成虚拟IP(VIP)的变更,请尽量在您的应用程序中使用连接地址进行连接,不要使用IP地址。
请及时清理客户端DNS缓存。客户端采用JVM的应用,建议将JVM配置中的TTL设置为不超过60秒,可确保在连接地址的VIP地址发生变更时,应用程序可以通过重新查询DNS来接收和使用资源的新VIP地址。
说明JVM中设置TTL的方法请参见JDK官方文档:Class InetAddress。
如果迁移的目标可用区资源不足,则可能迁移可用区失败。
迁移可用区可能会导致就近访问失效:
迁移可用区后,默认可就近访问新可用区,原可用区的就近访问失效。若修改了代理连接地址的目标可用区,使其与默认可用区不一致,则对应可用区的就近访问失效。示例场景如下:
场景
原代理信息
目标代理信息
代理实例当前可用区
代理地址
就近访问
代理实例目标可用区
代理地址默认可用区
代理地址目标可用区
就近访问
场景1:
可用区A + 可用区B
迁移至可用区A + 可用区C
可用区A
代理地址a
可用区A
可用区A
可用区A
可用区A
可用区A
可用区C
失效
可用区B
代理地址b
可用区B
可用区C
可用区C
可用区C
可用区C
可用区D
失效
场景2:
可用区A + 可用区B
迁移至可用区C + 可用区D
可用区A
代理地址a
可用区A
可用区C
可用区C
可用区C
可用区C
可用区E
失效
可用区B
代理地址b
可用区B
可用区D
可用区D
可用区D
可用区D
可用区E
失效
如果代理与主实例不在同一可用区,通过数据库代理连接时,写入性能可能会下降,建议代理实例与主实例的VPC、vSwitch保持一致。
操作步骤
相关API
API | 描述 |
通过指定VSwitchIds参数迁移代理实例至目标可用区 |
常见问题
Q:迁移代理可用区会对主实例连接有影响吗?
A:迁移代理可用区只会影响使用数据库代理连接地址的业务连接,通过主实例连接地址、只读实例连接地址或者集群读写地址、集群只读地址、节点直连地址的业务不受影响。建议将业务切换到不受影响的连接地址中,并在业务低峰期进行可用区迁移。
Q:迁移代理可用区的影响是什么?
A:迁移代理可用区时,数据库代理连接会出现约30秒的闪断。影响时长跟业务实际使用有关,建议将业务切换到不受影响的连接地址中,并在业务低峰期进行可用区迁移。具体影响,可参见本文影响章节。