多源複製若是是整個實例級別的複製,那不存在下面描述的狀況。
若是是對其中一個或多個主實例都是過濾複製,而且運行一段時間後,想在這個源上再增長一個庫怎麼實現?
主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),並導入多源從庫。
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。