我有 MySQL 服务器 A、B、C 和 D。服务器 A 是接收写入流量的 MySQL 主服务器,我的应用程序查看 B + C 以进行读取(当前从服务器)。我有复制转发所有数据库事件,从 A --> B,然后从 B ---> C。服务器 B 是 A 的从服务器,但也是 C 的“主服务器”。bin-log 中跟踪了大约 14 个数据库。因此,我想设置到 AWS Aurora(未来的 D 服务器)的复制,但我只想从服务器 C 复制一个数据库到它。所以我的设置理想情况下应该是这样的:
A ----> B ----> C ----> D(带有 1 个数据库的 aws aurora)
我如何告诉服务器 C 成为复制主服务器并仅将一个数据库复制到服务器 D(aws aurora)?我希望这是有意义的。
答案1
为了回答这个问题,您需要复制数据库mydb
步骤 01:添加复制过滤器至my.cnf
ServerD
[mysqld]
replication-do-db=mydb
步骤 02:停止 ServerD 上的复制
mysql> STOP SLAVE;
mysql> FLUSH TABLES;
mysql> FLUSH LOGS;
mysql> SET GLOBAL innodb_fast_shutdown = 0;
步骤 03:在 ServerD 上重新启动 MySQL
service mysql restart
步骤 04:在 ServerD 上启动复制
mysql> START SLAVE;
mysql> SHOW SLAVE STATUS\G
完成步骤 04 后,复制过滤器应出现在SHOW SLAVE STATUS\G
ServerD中