Amazon RDS 多可用区部署对 Amazon RDS for MySQL、MariaDB 和 PostgreSQL 的只读副本进行了补充。虽然这两项功能均能保留数据的第二个副本,但两者有所不同:
多可用区部署 | 只读副本 |
---|---|
同步复制 – 高持久性 | 异步复制 – 高可扩展性 |
仅主实例上的数据库引擎处于活跃状态 | 所有只读副本均可访问且可用于读取扩展 |
从备用实例自动备份 | 默认不配置备份 |
始终跨一个区域中的两个可用区 | 可以在一个可用区,也可以跨可用区或区域 |
数据库引擎版本升级发生在主实例上 | 数据库引擎版本升级独立于源实例 |
检测到问题后自动执行故障转移至备用实例 | 可手动提升到独立的数据库实例 |
您可以将多可用区部署和只读副本结合使用,以获得双方的优势。例如,您可以用多可用区部署的方式配置源数据库以实现高可用性,并创建只读副本(在一个可用区中)以实现读取可扩展性。
借助 RDS for MySQL 和 MariaDB,您还可以用多可用区部署的方式设置只读副本,从而将只读副本用作 DR 目标。将只读副本提升到独立的数据库时,便已启用多可用区部署。请注意,RDS for PostgreSQL 尚不支持这项功能。
故障转移条件
Amazon RDS 可检测多可用区域部署中最常见的故障并自动从中恢复过来,这样您可在无管理干预的情况下尽快恢复数据库操作。如果发生以下任何一种情况,Amazon RDS 将自动执行故障转移:
- 主可用区域的可用性受损
- 主区域的网络连接受损
- 主区域的计算设备出现故障
- 主区域的存储故障
适用于 MySQL、MariaDB、Oracle 和 PostgreSQL 引擎的多可用区部署采用同步物理复制,以便让备用数据与主数据保持同步。适用于 SQL Server 引擎的多可用区部署使用同步逻辑复制来获取与采用本地 SQL Server 镜像技术相同的结果。这两种方法均可以在数据库实例发生故障或丢失可用区时保护您的数据。
如果主实例上的存储卷在多可用区部署中发生故障,则 Amazon RDS 会自动故障转移至最新的备用实例中 (如果是 Amazon Aurora,则会故障转移至只读副本中)。将其与单可用区部署进行比较:如果单可用区数据库发生故障,将需要由用户启动 Point-in-time-restore 操作。此操作需要几个小时才能完成,而最近的可恢复时间后(一般为最近 5 分钟内)发生的任何更新均不可用。