非多AZ架构下能否无 downtime 对Aurora RDS集群进行升降配?
可行操作方案(无需开启多AZ,停机时间可控制在10秒以内)
前置准备
- 确保业务端使用 Aurora集群写入端点(Cluster Endpoint) 连接数据库,不要绑定单个实例的端点,切换后无需修改连接配置
- 提前为数据库连接池配置失败重试逻辑,连接超时时间设为15秒以上,避免切换瞬间的连接错误直接透传到业务层
- 切换前暂停非核心的批量写入任务,避免大事务拖慢故障转移恢复速度
操作步骤
手动触发故障转移,将instance_1切换为只读节点
直接在RDS控制台选中对应Aurora集群,依次点击「操作」→「故障转移」,选择instance_2作为待提升的写入节点,确认执行即可。
该操作的停机时间通常为5~10秒,完成后instance_2成为新的写入节点,业务流量自动切到instance_2。调整instance_1的实例规格
此时instance_1为只读节点,调整其规格不会影响核心写入流量。如果你的读请求走集群读取端点,Aurora会自动将读请求临时切到instance_2,仅会出现极短的读请求抖动,无业务中断风险。
等待instance_1规格调整完成、状态变为「可用」后再执行下一步。手动切回instance_1为写入节点
再次执行手动故障转移操作,选择instance_1作为待提升的写入节点即可,本次切换的停机时间同样可控制在10秒以内。
优化建议
- 每次手动触发故障转移前,先在数据库中执行
CHECKPOINT命令将内存脏页刷入磁盘,可进一步减少故障转移的恢复时间 - 所有操作尽量选择在业务低峰期执行,进一步降低对业务的影响
提示:上述所有操作均不会产生额外费用,无需开启多AZ部署,符合成本控制要求。
内容的提问来源于stack exchange,提问作者rzlvmp
相关产品推荐
相关产品推荐

