是否可以在 RDS 中创建多源只读副本

Is it possible to create a multi source read replica in RDS

我们使用具有微服务架构的 RDS MySQL。每个服务都有自己的数据库,我们一直在慢慢地将它们移动到自己的实例中以进行负载管理等。

我们有一个副本仍然附加到主实例(大多数数据库仍然驻留),但它缺少在它们自己的实例上的数据库。我们希望有一个从所有实例获取数据的只读副本,这样我们就可以 运行 对数据进行完整性检查,而无需在实例之间移动数据。

RDS 是否支持多源只读副本?还是我们需要管理自己的 MySQL 安装才能完成此操作?

据我所知,您必须自己在 EC2 上操作 MySQL 才能获得多源复制功能。您可能想联系您的 AWS 支持代表以确认这一点。

AWS RDS 不支持多源复制。从外部主服务器配置复制是有限的,因为您必须使用 AWS 提供的存储过程来配置它。它不支持配置多个复制通道。每个副本只有一个主人。

AWS Aurora 2.x(API-与 MySQL 5.7 兼容)也不支持多源复制。从 Aurora 2.07.x 开始,他们在不支持的 MySQL 5.7 功能中列出了多源复制。参见 https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.2070.html

AWS Aurora 1.x(API-与 MySQL 5.6 兼容)有一个他们称之为多主集群的东西,集群中的所有节点都可以是写入器。这个我没用过,不知道可信度如何。有关详细信息,请参阅 https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-multi-master.html

奇怪的是,它们似乎在 Aurora 1.x 和 2.x 之间失去了功能。我的理解是,它们有点 "started over" 与 Aurora 2.x,并且一些功能尚未在新版本中实现。

这是我截至2019年12月的理解,当然以后的版本可能会增加这样的功能。