将级联只读副本用于 RDS for PostgreSQL - Amazon Relational Database Service

将级联只读副本用于 RDS for PostgreSQL

自版本 14.1 开始,RDS for PostgreSQL 支持级联只读副本。使用级联只读副本,您可以扩展读取操作,而不会增加源 RDS for PostgreSQL 数据库实例的开销。源数据库实例不会将 WAL 日志的更新发送到每个只读副本。相反,级联系列中的每个只读副本都将 WAL 日志更新发送到该系列中的下一个只读副本。这将减轻源数据库实例的负担。

使用级联只读副本,您的 RDS for PostgreSQL 数据库实例会将 WAL 数据发送到链中的第一个只读副本。然后,该只读副本将 WAL 数据发送到链中的第二个副本,依此类推。最终结果是,链中的所有只读副本都具有 RDS for PostgreSQL 数据库实例中的更改,但不会只在源数据库实例上产生开销。

您可以从源 RDS for PostgreSQL 数据库实例在链中创建最多三个只读副本。例如,假设您具有 RDS for PostgreSQL 14.1 数据库实例 rpg-db-main。您可执行以下操作:

  • rpg-db-main 开始,创建链中的第一个只读副本 read-replica-1

  • 接下来,从 read-replica-1,创建链中的下一个只读副本 read-replica-2

  • 最后,从 read-replica-2,创建链中的第三个只读副本 read-replica-3

除了 rpg-db-main 系列中的第三个级联只读副本之外,您无法创建另一个只读副本。从 RDS for PostgreSQL 源数据库实例到一系列级联只读副本末尾的完整实例系列最多可以包含四个数据库实例。

要使级联只读副本正常工作,请在 RDS for PostgreSQL 上启用自动备份。首先创建只读副本,然后在 RDS for PostgreSQL 数据库实例上启用自动备份。此过程与其他 Amazon RDS 数据库引擎相同。有关更多信息,请参阅 创建只读副本

与任何只读副本一样,您可以升级属于级联一部分的只读副本。从只读副本链中升级只读副本将从链中移除该副本。例如,假设您希望将一些工作负载从 rpg-db-main 数据库实例转移到新实例,以便仅供会计部门使用。假设该示例中的链有三个只读副本,您决定升级 read-replica-2。该链受到如下影响:

  • 升级 read-replica-2 会将其从复制链中移除。

    • 现在它是一个完全读/写数据库实例。

    • 它继续复制到 read-replica-3,就像在升级之前那样。

  • 您的 rpg-db-main 继续复制到 read-replica-1

有关升级只读副本的更多信息,请参阅将只读副本提升为独立的数据库实例

注意
  • RDS for PostgreSQL 不支持对级联副本进行主要版本升级。在执行主要版本升级之前,您需要删除级联副本。在完成对源数据库实例和一级副本的升级后,可以重新创建这些副本。

  • 对于级联只读副本,RDS for PostgreSQL 在第一复制级别为每个源数据库实例支持 15 个只读副本,在第二和第三复制级别为每个源数据库实例支持 5 个只读副本。