多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 概述 mysql从5.7开始可以在线设置复制过滤,但是还是得停复制,不过不用重启实例了。方便了DBA们进行临时性的调整。 > [mysql的复制配置参考](https://blog.csdn.net/zhouchang3/article/details/53470250),建议尽量配置在slave上。 ## 配置 **查看当前配置** ~~~ # 以下参数为空,代表还未配置复制过滤 mysql@slave> show slave status\G *************************** 1. row *************************** .... Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: .... ~~~ **配置同步m1** 现在主库上有m1,m2两个库,只想复制m1库 ~~~ # 先停止sql线程 mysql@slave> STOP SLAVE SQL_THREAD; # 只同步m1 mysql@slave> CHANGE REPLICATION FILTER REPLICATE_DO_DB = (m1); # 启动SQL线程 mysql@slave> start SLAVE SQL_THREAD; ~~~ 再次查看状态: ![](https://i.vgy.me/jqfNRE.png) **恢复同步** ~~~ mysql@slave> STOP SLAVE SQL_THREAD; mysql@slave> CHANGE REPLICATION FILTER REPLICATE_DO_DB = (); mysql@slave> start SLAVE SQL_THREAD; ~~~ **只同步某写表** 同步db1库以“t1”或者“t2”开头的表 ~~~ mysql@slave> CHANGE REPLICATION FILTER -> REPLICATE_WILD_DO_TABLE = ('db1.t1%'), -> REPLICATE_WILD_IGNORE_TABLE = ('db1.t2%'); ~~~ 同库过滤的话也可以这样写 ~~~ mysql@slave> CHANGE REPLICATION FILTER -> REPLICATE_WILD_DO_TABLE = ('db2.t1%','db2.t2%'); ~~~