我们正在使用Amazon RDS,我们有一个MASTER复制到SLAVE。
我们想要创建一个新的slave,它只能从master中复制特定的数据库或表。
默认情况下,RDS只是将整个主数据库复制到从属数据库。但我们只想做特定的表格。我知道这在MySQL中是可能的,但我不确定RDS,我无法在任何地方找到答案。
这些设置存在于MySQL中,我没有在RDS的自定义参数设置中看到它们,除非我遗漏了什么。
--replicate-ignore-db=db_name
--replicate-ignore-table=db_name.tbl_name
答案 0 :(得分:13)
RDS无法做到这一点。
您可以通过将不希望复制的表转换为Engine = Blackhole来“伪造它”,但是您必须编辑参数组并将“只读”设置为0,而不是默认的“{TrueIfReplica” }”。
或者,您需要在EC2上运行您自己的从服务器,并将RDS服务器作为主服务器(如果您在RDS上运行MySQL 5.6,但不是5.5或更低版本,则可以这样做),但是设置起来非常复杂起来。
答案 1 :(得分:0)
正如Kat所说,不,他们没有提供这个功能。
我也不指望它,因为我们可以使用它来破坏它们的服务封装,这需要某些表复制以使主要功能起作用。
我正在考虑的解决方法是在复制链中的主服务器和从服务器之间创建基于EC2的MySQL实例(使用外部复制功能),应用这些过滤器,以及黑洞为所有表格预先设置的引擎,只是为了让事情变得简单。
一个额外的好处是,RDS从站具有较少的二进制日志数据来解析,因为它是预过滤的。
答案 2 :(得分:0)
AWS RDS 已更改,现已支持。 db 复制与实例复制的 rds 参数:
答案 3 :(得分:0)
Amazon RDS for MySQL and MariaDB support replication filtering
发布时间:2021 年 2 月 12 日
<块引用>Amazon Relational Database Service (Amazon RDS) 现在支持 MySQL 和 MariaDB 实例的复制过滤器。复制筛选器指定在只读副本中复制哪些数据库和表。客户为每个副本创建要包含或排除的数据库和表列表。
<块引用>要了解有关复制过滤以及如何将其应用于您的实例的更多信息,请参阅 MySQL 或 MariaDB 的 Amazon RDS 用户指南。
要配置复制过滤器,请在只读副本上设置以下复制过滤参数:
replicate-do-db
replicate-ignore-db
replicate-do-table
replicate-ignore-table
replicate-wild-do-table
replicate-wild-ignore-table
参数按照列出的顺序进行评估。有关这些参数如何工作的更多信息