在 Aurora Global Database 中使用 RDS 代理 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在 Aurora Global Database 中使用 RDS 代理

Aurora Global Database 是跨多个 Amazon Web Services 区域的单一数据库,允许在发生任何区域级的中断时提供低延迟的全局读取和灾难恢复能力。它为您的部署提供了内置的容错功能,因为数据库实例不依赖于单个 Amazon Web Services 区域,而是依赖于多个区域和不同的可用区。有关更多信息,请参阅使用 Amazon Aurora Global Database

可以将 RDS 代理用于 Aurora Global Database 中的任何数据库集群。在开始一起使用这些功能之前,请确保您熟悉以下信息。

重要

如果数据库集群是开启写入转发的全局数据库的一部分,则按照分配给写入转发的限额来减小代理的 MaxConnectionsPercent 值。写入转发限额在数据库集群参数 aurora_fwd_writer_max_connections_pct 中设置。有关写入转发的信息,请参阅 在 Amazon Aurora Global Database 中使用写入转发

对全局数据库使用 RDS 代理的限制

当 Aurora 数据库集群开启写入转发时,RDS 代理不支持 aurora_replica_read_consistency 变量的 SESSION 值。设置此值可能导致意外行为。

RDS 代理端点如何与全局数据库配合使用

当您了解 RDS 代理端点如何与全局数据库配合使用时,您可以通过这两种功能更好地管理使用 Aurora 数据库的应用程序。

对于以全局数据库的主集群作为注册目标的代理,代理端点的工作方式与任何 Aurora 数据库集群的工作方式相同。代理的读/写端点会将所有请求发送到集群的写入器实例。代理的只读端点将所有请求发送到读取器实例。如果在连接打开时读取器变得不可用,RDS 代理会将连接上的后续查询重定向到另一个读取器实例。对于以辅助集群作为已注册目标的代理,发送到代理的只读端点的请求也会发送到读取器实例。由于集群没有写入器实例,因此发送到读/写端点的请求会失败并显示错误“The target group doesn't have any associated read/write instances”。

全球数据库切换和失效转移操作均涉及主数据库集群和其中一个辅助数据库集群之间的角色切换。当选定的辅助集群成为新的主集群时,其一个读取器实例将提升为写入器。此数据库实例现在是全局集群的新写入器实例。请确保将应用程序的写入操作重定向到与新的主集群关联的代理的相应读/写端点。此代理端点可能是原定设置端点或自定义读/写端点。

RDS 代理通过读/写端点对所有请求进行排队,并在新的主集群可用后立即将它们发送到此集群的写入器实例。无论切换或失效转移操作是否完成,它都会这样做。在切换或失效转移期间,旧主集群的代理的原定设置端点仍接受写入操作。但是,一旦该集群成为辅助集群,所有写入操作都会失败。要了解如何以及何时执行特定的全球切换或失效转移任务,请参阅以下主题: