Amazon RDS Read Replicas

Amazon RDS Read Replicas 可增强 Amazon RDS 数据库(DB)实例的性能和持久性。它们可以轻松实现弹性横向扩展,超越单个数据库实例的容量限制,满足读取密集型数据库工作负载的需求。您可以为给定的源数据库实例创建一个或多个副本,利用多份数据副本满足大量应用程序读取流量需求,以此增加总读取吞吐量。只读副本在需要时还能升级成独立的数据库实例。Amazon RDS for MySQLMariaDBPostgreSQLOracleSQL Server 以及 Amazon Aurora 均可提供只读副本。

对于 MySQL、MariaDB、PostgreSQL、Oracle 和 SQL Server 数据库引擎,Amazon RDS 使用源数据库实例快照创建第二个数据库实例。然后在源数据库实例发生更改时,使用引擎的原生异步复制功能更新只读副本。只读副本是仅允许只读连接的数据库实例;应用程序可按其连接到任何数据库实例的方式连接到只读副本。Amazon RDS 可复制源数据库实例中的所有数据库。

Amazon Aurora 通过部署专为数据库工作负载构建的 SSD 支持虚拟存储层进一步扩展了只读副本的优势。Amazon Aurora 副本与源实例共用同一个底层存储,从而降低成本并消除将数据复制到副本节点的需求。如需了解有关使用 Amazon Aurora 进行复制的更多信息,请参阅在线文档

读取扩展和灾难恢复

设置

使用 AWS 管理控制台,您可以轻松地将只读副本添加到现有数据库实例。在 AWS 管理控制台中,使用与您的数据库实例对应的“创建只读副本”选项。借助 Amazon RDS for MySQL、MariaDB 和 PostgreSQL,您可以向每个数据库实例添加多达 15 个只读副本。借助 Amazon RDS for Oracle 和 Amazon RDS for SQL Server,您可以向每个数据库实例添加最多 5 个只读副本。

Amazon RDS for MySQL、MariaDB、PostgreSQL 和 Oracle 为您提供两种基于 SSD 的数据库存储方案:通用型和预调配 IOPS。这些引擎的只读副本不需要与其主数据库实例使用相同的存储类型。您可以通过为只读副本选择一个备用存储类型来优化性能或费用。 如需了解更多信息,请参阅适用于 Amazon RDS for MySQLMariaDBPostgreSQLOracleSQL Server 以及 Amazon Aurora 的只读副本文档。

只读副本、多可用区部署和多区域部署

Amazon RDS 只读副本是对多可用区部署的补充。虽然这两项功能均能保留数据的第二个副本,但两者有所不同:

多可用区部署

多区域部署

只读副本

主要目的是高可用性

主要目的是灾难恢复和本地性能

主要目的是可扩展性

非 Aurora:同步复制;Aurora:同步复制

异步复制

异步复制

非 Aurora:只有主实例活跃;Aurora:所有实例都活跃

所有区域均可访问且可用于读取

所有只读副本均可访问且可用于读取扩展

非 Aurora:从备用实例自动备份;Aurora:从共享存储层自动备份

自动备份可在每个区域中进行

默认不配置备份

始终跨单个区域中的至少两个可用区

每个区域中均可有多可用区部署

可以在一个可用区,也可以跨可用区或区域

非 Aurora:数据库引擎版本升级发生在主实例上;Aurora:所有实例一起更新

非 Aurora:每个区域中的数据库引擎版本升级独立进行;Aurora:所有实例一起更新

非 Aurora:数据库引擎版本升级从源实例独立进行;Aurora:所有实例一起更新

检测到问题时自动失效转移到备用(非 Aurora)或只读副本(Aurora)

Aurora 允许将辅助区域升级为主区域

可手动升级到独立的数据库实例(非 Aurora)或主实例(Aurora)

您可以组合使用只读副本与其他 Amazon RDS 功能以获得它们各自的优势。例如,您可以用多可用区部署的方式配置源数据库以实现高可用性,并创建只读副本(在单可用区中)以实现读取可扩展性。或者,您也可以使用 Aurora Global Database 将数据从您的多可用区 Aurora 部署复制到其他区域中。

借助 RDS for MySQL、MariaDB、PostgreSQL 和 Oracle,您还可以用多可用区部署的方式设置只读副本,从而将只读副本用作灾难恢复目标。将只读副本升级到独立的数据库时,便已启用多可用区部署。