通过可用区级和区域级复制保护您的数据

选择文档版本:

本页面介绍了 AlloyDB Omni 高级可用性参考架构,该架构包括使用区域内可用区级复制(高可用性)的数据保护,并添加了使用跨大型地理边界的异步流式传输的灾难恢复 (DR) 保护。

此参考架构最适合以下应用场景:

  • 对于任务关键型应用,除了可用区级保护之外,您还需要提供区域级保护。

此可用性参考架构在区域内纳入读取副本以实现高可用性,以及跨区域纳入读取副本以实现灾难恢复。这种多区域部署可防范重大中断,包括大范围停电和大规模自然灾害。

可用性参考架构注意事项

在评估此可用性参考架构时,请考虑以下因素:

  • 区域内和跨区域的网络延迟时间和带宽
  • 数据库和应用服务器的地理位置放置
  • 将只读工作负载分流到副本的策略
  • 在远程灾难恢复区域中部署高可用性

您可能需要只读负载均衡,尤其是在使用区域级应用服务器时,这样请求会转发到最近的数据库,以实现最快的响应速度。如需了解详情,请参阅请求路由到多区域传统应用负载均衡器

可能需要对跨区域复制进行额外监控,以确保复制延迟不会因事务负载或网络容量而开始增加。

为确保灾难恢复成功,请务必执行全面的灾难恢复测试。如果应用服务器和数据库之间存在任何高延迟网络连接,请务必测试应用功能和吞吐量。

区域内高可用性和跨区域灾难恢复架构

图 1 显示了一个建议的高可用性和灾难恢复配置,其中在三个可用区和两个区域中具有三个读取副本备用数据库。

支持备份和跨区域高可用性选项的 AlloyDB Omni

图 1. AlloyDB Omni,提供备份和跨区域高可用性选项。

如图 1 所示,同步流式复制到本地(同一区域内)副本可提供高可用性,而异步流式复制到地理位置分隔的远程副本可提供区域级灾难恢复保护。在整个配置中,只有主实例可以执行读写操作,而其他副本可以处理读取查询。

将从主实例到区域内副本的复制配置为同步模式,同时将到跨区域副本的复制配置为异步模式,以避免延迟时间影响主实例写入性能。如果发生区域级故障,此设置可能会导致 RPO 不为零。不过,此设置可在发生故障时实现更快的 RTO。这是因为主数据库无需等待远程备用数据库的确认即可提交事务。

您可以让其他跨区域备份从读取副本数据库中获取备份,从而为从主数据库中获取的备份增加冗余。

读取副本备份

如果您使用 Kubernetes 部署,则系统会自动设置备用区域中的辅助部署,并提供额外的备份。如果您使用非 Kubernetes 部署,可以选择部署备份以满足业务需求。请考虑以下事项:

  • 如果您的远程备份可能容易受到区域故障的影响,那么您需要在备用区域中启动额外的备份。
  • 如果您需要备份冗余,则需要进行区域级读取副本备份。

配置读取副本位置,以支持多可用区可用性

在非 Kubernetes 部署中,您可以选择特定的读取副本在主实例发生故障时承担主实例的角色。AlloyDB Omni Kubernetes 操作器会自动处理可用区中的节点放置以及应将 Pod 部署到哪些节点。在用于通过 AlloyDB Omni 操作器进行部署的数据库配置中,提供了一些会影响放置的配置选项,例如 Pod 亲和性和容忍。

从仅支持高可用性的架构迁移到同时支持高可用性和灾难恢复的架构

对于非 Kubernetes 部署,您需要在新区域中构建新的备用实例,并将此配置添加到 Patroni 集群配置中。对于 Kubernetes 部署,您需要构建新的区域级 Kubernetes 部署(称为次要数据库集群),并启用跨数据中心复制。

实现

选择可用性参考架构时,请注意以下优势、限制和选项。

优势

  • 防范可用区级和实例级故障
  • 防范区域级故障
  • 在数据库发生区域级故障时减少 RTO

限制

  • 您可以通过同步复制来减少区域级恢复的 RPO,但这种方法会在事务性能方面导致延迟时间增加。对于灾难恢复和远程区域复制,我们建议您仅使用异步复制。
  • 在同步模式下配置 PostgreSQL WAL 流式传输可在正常运行或典型故障切换期间实现零数据丢失 (RPO=0)。不过,此方法无法防范特定双重故障情况下的数据丢失,例如在所有备用实例都丢失或无法从主实例访问,且紧接着主实例重启时。

数据保护选项

后续步骤