添加Multi-AZ DB Clusters类型的Read replica

Multi-AZ DB Cluster介绍

Multi-AZ DB Cluster是具有两个可读数据库实例的RDS 的高可用性部署模式。 Multi-AZ DB CLuster在同一区域的三个独立AZ中具有一个writer和两个reader。 与Multi-AZ DB Instance相比,Multi-AZ DB Cluster可提供高可用性、更高的读取工作负载容量以及更低的写入延迟。 此外,它的故障转移时间也更快。

下图显示了多可用区数据库集群的架构:

TAZ

借助Multi-AZ DB Cluster,RDS使用数据库引擎的复制功能将数据从writer实例复制到两个reader实例。 当对writer进行更改时,它将发送到每个reader。 提交更改需要至少一个reader的确认。

reader既充当自动故障转移目标,又提供读取功能以提高应用程序读取吞吐量。 如果写入器数据库实例发生中断,RDS 会故障转移到其中一个reader。

优点

  • 与在 EBS 卷之间使用同步复制的Multi-AZ DB Instance不同,Multi-AZ DB Cluster使用本地连接的 SSD 来存储事务日志,并使用数据库引擎的异步复制, 这会改善提交延迟。

  • 此外,Multi-AZ DB Cluster故障转移到reader的速度比Multi-AZ DB Instance更快,通常在 35 秒内。


在第一节我们创建RDS数据库时,看到有三个部署方式:

image-20231105071151998

  1. Single DB Instance:最简单的方式,只部署一个数据库实例
  2. Multi-AZ DB Instance: 除了创建primary库,还会创建一个standby库,这个standby库平时不抗流量,仅在primary库发生故障时自动failover(后面章节会详细介绍它)
  3. Multi-AZ DB Cluster:本节我们先为rds-pg-labs数据库添加这种类型的read replica

进入rds-pg-labs集群,点击create read replica:

image-20231104094806052

read replica命名为rds-pg-multi-az-read:

image-20231104094845592

选择Multi-AZ DB Cluster:

image-20231104095543025

点击Create read replica。等待大概十分钟后它创建完成,它页面上它隶属于rds-pg-labs,并作为Multi-AZ DB replica cluster

image-20231104101941100

关于Multi-AZ DB replica cluster,可这样理解:

  • 从部署方式上来看,上面介绍有三种。它作为Multi-AZ DB Cluster这种方式
  • 从功能上来看,它做为read replica, 还不是primary

进入这个rds-pg-multi-az-read节点中,它的endpoints跟普通的read replica也不一样,普通的read replica只有一个reader URL,而它有两个(一个reader 一个writer):

image-20231104102144373

Replication部分能看到它正在跟primary节点之间保持同步数据。


使用上面的endpoint登录上去,并执行命令检查复制延迟:

image-20231104102315304

将read replica cluster提升为独立集群

我们也可以将这个read replica cluster提升为独立的集群,点击Promote

image-20231104102358361

大概等1-2分钟提升完成。现在它变成独立的Multi-AZ DB Cluster存在了:

image-20231104144917629