不积跬步,无以至千里;不积小流,无以成江海。

mysql主从只同步部分库或表

原文:https://www.2cto.com/database/201708/674665.html

同步部分数据有两个思路,

1)master只发送需要的;
2)slave只接收想要的。

1.1 master端:

binlog-do-db 二进制日志记录的数据库(多数据库用逗号,隔开)

binlog-ignore-db 二进制日志中忽略数据库 (多数据库用逗号,隔开)

举例说明:


1)binlog-do-db=YYY 需要同步的数据库,不在内的不同步。(不添加这行表示同步所有)

这里主库只同步test1,test2库。


2)binlog-ignore-db = mysql 这是不记录binlog,来达到从库不同步mysql库,以确保各自权限

binlog-ignore-db = performance_schema

binlog-ignore-db = information_schema

这里向从库同步时忽略test1,test2库

1.2 slave端

replicate-do-db 设定需要复制的数据库(多数据库使用逗号,隔开)

replicate-ignore-db 设定需要忽略的复制数据库 (多数据库使用逗号,隔开)

replicate-do-table 设定需要复制的表(则只复制该表,其余不会复制,一条只能写一张表,逗号隔开无效)

例子:replicate-do-table=库名.表名1
      replicate-do-table=库名.表名2

replicate-ignore-table 设定需要忽略的复制表

replicate-wild-do-table 同replication-do-table功能一样,但是可以通配符

replicate-wild-ignore-table 同replication-ignore-table功能一样,但是可以加通配符

与上述对比,这里的replicate就很好理解了,下面简单说几点。

例如:


从库忽略复制数据库test3,但是需要说明的是,其实从库的relaylog中是从在关于test3的相关日志,只是从库没有使用罢了。

增加通配符的两个配置


replicate-wild-do-table=db_name.% 只复制哪个库的哪个表

replicate-wild-ignore-table=mysql.% 忽略哪个库的哪个表

【完】

posted @ 2021-12-08 16:53  |是吴啊|  阅读(634)  评论(0)    收藏  举报