复制过滤器:
仅复制有限一个或几个数据库相关的数据,而非所有;由复制过滤器进行;
有两种实现思路:
(1) 主服务器
主服务器仅向二进制日志中记录有关特定数据库相关的写操作;
问题:其它库的time-point recovery将无从实现;
binlog_do_db= #白名单
binlog_ignore_db= #黑名单
(最好只是用一种,不要同时设定)
(2) 从服务器
从服务器的SQL THREAD仅重放关注的数据库或表相关的事件,并将其应用于本地;
问题:网络IO和磁盘IO;
Replicate_Do_DB= #白名单
Replicate_Ignore_DB= #黑名单
Replicate_Do_Table= (必须明确的给出表名)
Replicate_Ignore_Table= (表级别的黑白名单)
Replicate_Wild_Do_Table= (wild表示通配之意,可以使用通配符使用的是glob的通配符)
Replicate_Wild_Ignore_Table=
实验:
接着之前的半同步复制的两台机器做的
先停掉之前的复制
MariaDB [(none)]> stop slave;
设置黑名单不同步mydb
MariaDB [(none)]> set @@global.replicate_ignore_db=mydb;
然后在启动之前的复制
MariaDB [(none)]> start slave;
然后复制过滤器就是基于这个原理实现的
(这些都是在命令行中定义的,要想永久有效,还是要写入配置文件中)