我有一个循环复制的 MySQL 集群和一个正在迁移到的较新的 Percona XtraDB 实例集群。在迁移过程中,我们在旧集群上运行一些项目,在新集群上运行其他项目。
我希望将旧集群的更改复制到最多表格一特定数据库迁移到新集群。不幸的是,binlog 包含每个数据库的每个表的更改,而且似乎没有办法编译不同的 binlog 集。
有没有一种合理的方法可以只复制某些表,而不受预先存在的循环复制的影响?集群位于具有不同提供商的独立数据中心,因此当我只需要其中很小一部分时,我不想通过网络发送整个 binlog。
答案1
因此,我最终采取的方法相当复杂,主要基于http://www.jroller.com/dschneller/entry/mysql_replication_using_blackhole_engine。
我在旧集群的一台机器上(端口 3307)启动了第二个 MySQL 实例,运行的是 BLACKHOLE 引擎,而不是 InnoDB。它提取 binlog 并输出自己的 binlog,使用 、 和 进行过滤binlog-do-db
。replicate-ignore-table
然后replicate-do-db
,新集群中的一台服务器提取这些小得多的 binlog,一切正常。