## 概述
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;
~~~
再次查看狀態:

**恢復同步**
~~~
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%');
~~~
- 【mysql的編程專題①】流程控制與其他語法
- 【mysql的編程專題②】觸發器
- 【mysql的編程專題③】內置函數
- 【mysql的編程專題④】存儲過程
- 【mysql的編程專題⑤】自定義函數
- 【mysql的編程專題⑥】視圖
- 【mysql的設計與優化專題(1)】ER圖,數據建模與數據字典
- 【mysql的設計與優化專題(2)】數據中設計中的范式與反范式
- 【mysql的設計與優化專題(3)】字段類型與合理的選擇字段類型
- 【mysql的設計與優化專題(4)】表的垂直拆分和水平拆分
- 【mysql的設計與優化專題(5)】慢查詢詳解
- 【mysql的設計與優化專題(6)】mysql索引攻略
- 【Mysql問題集錦(1)】mysql不能使用innodb存儲引擎
- 【Mysql進階技巧(2)】利用mysql生成唯一序號
- 【Mysql進階技巧(1)】MySQL的多表關聯與自連接
- 【Mysql高可用架構(1)】基于日志點的主從復制
- 【Mysql高可用架構(2)】主從管理的系統視圖
- 【Mysql高可用架構(3)】基于GTID的主從復制
- 【Mysql高可用架構(4)】在線變更復制類型
- 【Mysql高可用架構(5)】多源復制(多主一從)
- 【Mysql高可用架構(6)】多線程復制
- 【Mysql高可用架構(7)】在線設置復制過濾
- 【Mysql高可用架構(8)】解決主從不一致
- 【Mysql高可用架構(9)】初識mycat以及制作mycat鏡像
- 【Mysql高可用架構(10)】mycat配置mysql讀寫分離
- MyCat 集群部署(HAProxy + MyCat)
- 常用復雜sql語句整理