您的位置:首页 > 数据库 > MySQL

mysql-复制过滤器

2017-11-22 19:44 351 查看
复制过滤器:

仅复制有限一个或几个数据库相关的数据,而非所有;由复制过滤器进行;

有两种实现思路:

(1) 主服务器

主服务器仅向二进制日志中记录有关特定数据库相关的写操作;

问题:其它库的time-point recovery将无从实现;

binlog_do_db=       #白名单
binlog_ignore_db=   #黑名单
(最好只是用一种,不要同时设定)


(2) 从服务器

从服务器的SQL THREAD仅重放关注的数据库或表相关的事件,并将其应用于本地;

问题:网络IO和磁盘IO;

Replicate_Do_DB=             #白名单
Replic
4000
ate_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;


然后复制过滤器就是基于这个原理实现的

(这些都是在命令行中定义的,要想永久有效,还是要写入配置文件中)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息