21

我们正在使用 Amazon RDS,并且我们有一个 MASTER 复制到一个 SLAVE。

我们想创建一个新的从属服务器,它只会从主服务器复制特定的数据库或表。

默认情况下,RDS 只是将整个主数据库复制到从数据库。但我们只想做特定的表。我知道这通常在 MySQL 中是可能的,但我不确定 RDS,我在任何地方都找不到答案。

这些设置存在于 MySQL 中,除非我遗漏了什么,否则我在 RDS 的自定义参数设置中看不到它们。

--replicate-ignore-db=db_name
--replicate-ignore-table=db_name.tbl_name
4

4 回答 4

14

这对于 RDS 是不可能的。

您可以通过将不想复制的表转换为 Engine=Blackhole 来“伪造”它,但是您必须编辑参数组并将“只读”设置为 0,而不是默认的“{TrueIfReplica}”。

或者,您需要在 EC2 上运行自己的从属服务器,并将 RDS 服务器作为主服务器(如果您在 RDS 上运行 MySQL 5.6,但不是 5.5 或更低版本,则可以这样做),但是设置起来非常复杂。

于 2013-09-18T21:10:00.873 回答
3

AWS RDS 已更改,现在支持它。数据库复制与实例复制的 rds 参数:

于 2021-05-03T10:38:39.613 回答
2

Amazon RDS for MySQL 和 MariaDB 支持复制过滤

发表于:2021 年 2 月 12 日

Amazon Relational Database Service (Amazon RDS) 现在支持 MySQL 和 MariaDB 实例的复制过滤器。复制过滤器指定在只读副本中复制哪些数据库和表。客户为每个副本创建要包含或排除的数据库和表的列表。

要了解有关复制过滤以及如何将其应用于您的实例的更多信息,请参阅MySQLMariaDB的 Amazon RDS 用户指南。

要配置复制过滤器,请在只读副本上设置以下复制过滤参数:

  • replicate-do-db
  • replicate-ignore-db
  • replicate-do-table
  • replicate-ignore-table
  • replicate-wild-do-table
  • replicate-wild-ignore-table

这些参数按照它们列出的顺序进行评估。有关这些参数如何工作的更多信息,请参阅 MySQL 文档。

于 2021-06-11T18:42:50.933 回答
0

我的答案现在已经过时了。我建议阅读其他可以确认的答案。

正如 Kat 所说,不,他们不提供该功能。

我也不指望它,因为我们可以用它来打破他们的即服务封装,这需要复制某些表才能使主要功能起作用。

我正在考虑的一种解决方法是在复制链中的主从之间创建一个基于 EC2 的 MySQL 实例(使用外部复制功能),应用这些过滤器,并且黑洞引擎预先为所有桌子设置,只是为了让事情变得简单。

一个额外的优势是,RDS 从站需要解析的二进制日志数据较少,因为它是预先过滤的。

于 2017-06-08T02:43:36.613 回答