Mysql5.7多源復制,過濾復制一段時間後增加復制一個庫的實現方法
阿新 • • 發佈:2017-08-17
ble sta 增加 replicate 修改 html 並且 table convert 多源復制如果是整個實例級別的復制,那不存在下面描述的情況。
如果是對其中一個或多個主實例都是過濾復制,並且運行一段時間後,想在這個源上再增加一個庫怎麽實現?
主1:192.168.1.10 3306 db1 db2
主2:192.168.1.20 3306 db3
從: 192.168.1.30 3306
假如之前實現的是過濾復制,復制的是主1的db1 和 主2的db3,已經運行一段時間了。現在想增加主1上的db2,該如何實現?
具體實現方法如下:
1. 使用mysqldump 導出 db2(記錄pos1),並導入多源從庫。
2. 停止多源從庫的sql線程( ),並記錄此刻同步到主1的位置pos2。
3. 使用mysqlbinlog 將pos1 到 pos2 的變更應用到從庫。(mysqlbinlog --start-position=pos1 --stop-position=pos2 -d db2 xxx.log | mysql -u -p -h -P )
4. 在線修改多源從庫的過濾條件(CHANGE REPLICATION FILTER Replicate_Wild_Do_Table = (‘db1.%‘,‘db2.%‘,‘db3.%‘);)
5. 將過濾條件同步到參數文件。
另外有一個想法,是否可以針對新增庫db2單獨增加一個channel? 也就是同一個實例裏的2個庫使用不同的2個channel。
STOP SLAVE SQL_THREAD
Mysql5.7多源復制,過濾復制一段時間後增加復制一個庫的實現方法