简介 — Aurora 全球数据库故障转移
2023年8月,Aurora团队
注意 :我们将停用旧的托管计划内故障转移术语,并将从现在起使用全局数据库切换来指代相同的功能。
Aurora 全球数据库概述
全球数据库集群由多个区域数据库集群组成。 全球数据库集群在支持的区域中最多可以有六个区域数据库集群,例如 us-east-
1 和 us-west-
2 中的数据库集群。
在全球数据库拓扑中,只有一个区域是主区域,所有其他区域是次要区域。主区域包含唯一的写入器数据库实例,还包含唯一的活动写入器终端节点。写入器端点始终指向活动写入器节点。次要区域也有写入端点,但它们处于非活动状态。
每个区域数据库集群还有一个读取器终端节点。读取器终端节点平衡区域数据库集群中只读副本(如果有)的读取流量。全局数据库故障转移后,读取器端点不受影响。
在两种情况下,客户会更改其主要区域:对计划内事件(例如,区域轮换)的响应,或对计划外事件(例如区域停电)的响应。
计划外故障转移的挑战
当当前的主区域数据库集群遇到服务级别中断或主区域完全中断时,可能需要进行计划外故障转移。值得注意的是,这种情况很少见,因为亚马逊云科技区域架构具有很高的弹性;但是,不能完全排除这种情况。传统上,Aurora 全球数据库故障转移是通过手动分离其中一个幸存的辅助区域数据库集群并对其进行升级来实现的。这种方法效果很好,但也有一些挑战。
首先, 从全局设置中
全局数据库故障转移简介
随着新的全局数据库故障转移功能的推出,您现在可以管理计划外的 Aurora 全球数据库故障转移,例如区域服务中断。此功能可用于新的全球数据库部署,也可以追溯适用于现有的 Aurora 全球数据库部署。
要使用全局数据库故障转移功能,您无需更改配置。您可以 通过
例如,假设全球数据库是在美国东部 1、美国西部
2 和 欧洲
东部 1
地区创建的 ,而 us-west-2 正在经历服务中断
。 在这种情况下,可以从 us-east-1 或 eu
-east-1
区域启动全局数据库故障转移。
启动全局数据库故障转移后,将采取以下步骤:
- 用户选择的辅助数据库集群将其中一个只读副本提升为写入器,并在全局数据库拓扑中承担主数据库集群的角色。
- 如果全局数据库拓扑有其他辅助数据库集群,则会对其进行重建。
- Aurora 全球数据库服务继续监控旧主区域的可用性。当 Aurora 全球数据库恢复可用且运行正常时,通过恢复当前主区域数据库集群的快照,将该区域重新添加到全球数据库中。
-
将旧的主区域添加回全局数据库集群时,会尝试拍摄旧存储卷的快照,如果成功,则按照 rds:
unplanned-global-failoval-timestamp 命名惯例提供快照
全局数据库故障转移减少了手动升级区域数据库集群的运营开销,同时保留了全局数据库拓扑。故障转移完成后,您可以将应用程序指向新的主数据库集群的写入器终端节点,然后开始从新数据库集群读取和写入。如果您的应用程序和客户端位于其他幸存的辅助区域,则它们必须等到重建辅助数据库集群后才能开始读取这些区域数据库集群读取器终端节点。
最佳实践
在全局数据库故障转移期间,用户选择的辅助区域数据库集群被提升为主集群。但是,它不会自动继承主服务器的配置选项。为了减少配置不匹配,我们建议您创建 Aurora 数据库集群参数组并提前配置选项。我们还建议创建和配置监控工具,例如
有关更完整的建议列表,请参阅
执行全局数据库故障转移
当您创建具有至少 1 个包含至少一个实例的辅助区域数据库集群的 Aurora 全球数据库时,您可以选择执行全局数据库故障转移和全局数据库切换功能。要设置 Aurora 全球数据库,请参阅 A
在以下示例(图 1)中,我们创建了一个包含 2 个数据库集群的 Aurora 全球数据库。 主要区域位于
ap-southeast-1 区域,辅助区域位于 ap-
south-1 区域。

图 1 全局数据库集群
要使用控制台执行全局数据库故障转移,请完成以下步骤:
- 选择要进行故障转移的 Aurora 全球数据库集群。
- 在 “ 操作 ” 菜单上,选择 “ 切换” 或 “故障切换” 全局数据库 。
图 2 故障转移全局数据库集群
- 对于目标数据库集群,选择要升级为主集群的主动 Aurora 辅助数据库集群。
- 选择 故障转移(允许数据丢失) 作为故障转移原因。要确认故障转移, 请键入确认 并选择 确认 。
执行故障转移后,您可以看到数据库状态的变化。您可以关注数据库列表的状态列来监控故障转移过程。由于全局数据库复制的异步性质,在新的主数据库集群上进行故障转移后,可能会丢失一些数据。

图 4 正在进行故障转移
新的主区域数据库集群首先可用,设置从新的主数据库集群到新的辅助数据库集群的复制需要几分钟。根据数据库的大小,新的辅助区域集群可能需要几分钟到几小时才能完成设置。如果还有其他辅助区域数据库集群,则也会重新创建这些集群,然后重新建立复制。故障转移完成后,您可以看到主区域数据库集群和辅助区域数据库集群均可用。

图 5 故障转移已完成
要使用 亚马逊云科技 CLI 执行全局数据库故障转移,您可以使用与以下命令类似的命令:
结论
在这篇文章中,我们探讨了新推出的Aurora全球数据库故障转移功能及其优点。在计划外停机期间,您可以使用此功能快速恢复 Aurora 全球数据库集群的故障转移,同时减轻运营负担。要了解有关 Aurora 全球数据库的更多信息,请查看
作者简介
Aditya Samant 是关系数据库行业的资深人士,在使用商业和开源数据库方面拥有 20 多年的经验。多年来,他担任过许多职务,包括数据库顾问、专业支持、DBA 和数据库架构师。他目前在亚马逊网络服务担任高级数据库专家解决方案架构师。在他目前的职位上,他花时间与客户合作设计可扩展、安全和强大的云原生架构。Aditya还与服务团队紧密合作,合作设计和交付亚马逊旗舰关系数据库Amazon Aurora的新功能。
Surendar Munimohan 是亚马逊网络服务的高级数据库解决方案架构师。他在使用关系数据库和在 亚马逊云科技 中架构高度可扩展的应用程序方面拥有十多年的经验。在他目前的职位上,他与客户合作,在 亚马逊云科技 Cloud 中设计可扩展、高度可用、安全且经济实惠的解决方案。