數據同步canal服務端配置mysql多主


canal服務端HA模式,本人並未使用過,為保證文章的完整性,從以下地址摘抄該部分內容,待以后驗證及使用

https://github.com/alibaba/canal/wiki/AdminGuide

1、mysql機器准備

准備兩台mysql機器,配置為M-M模式,比如ip為:10.20.144.25:3306,10.20.144.29:3306

1 [mysqld] 
2 xxxxx ##其他正常master/slave配置
3 log_slave_updates=true ##這個配置一定要打開

2、canal instance配置

1 # position info
2 canal.instance.master.address = 10.20.144.25:3306
3 canal.instance.master.journal.name = 
4 canal.instance.master.position = 
5 canal.instance.master.timestamp = 
6 canal.instance.standby.address = 10.20.144.29:3306
7 canal.instance.standby.journal.name =
8 canal.instance.standby.position =
9 canal.instance.standby.timestamp =

detecing config

1 canal.instance.detecting.enable = true ## 需要開啟心跳檢查
2 canal.instance.detecting.sql = insert into retl.xdual values(1,now()) on duplicate key update x=now() ##心跳檢查sql,也可以選擇類似select 1的query語句
3 canal.instance.detecting.interval.time = 3 ##心跳檢查頻率
4 canal.instance.detecting.retry.threshold = 3  ## 心跳檢查失敗次數閥值,超過該閥值后會觸發mysql鏈接切換,比如切換到standby機器上繼續消費binlog
5 canal.instance.detecting.heartbeatHaEnable = true ## 心跳檢查超過失敗次數閥值后,是否開啟master/standby的切換.

注意:

a. 填寫master/standby的地址和各自的起始binlog位置,目前配置只支持一個standby配置.

b. 發生master/standby的切換的條件:(heartbeatHaEnable = true) && (失敗次數>=retry.threshold).

c. 多引入一個heartbeatHaEnable的考慮:開啟心跳sql有時候是為client檢測canal server是否正常工作,如果定時收到了心跳語句,那說明整個canal server工作正常

3、啟動 & 測試

比如關閉一台機器的mysql , /etc/init.d/mysql stop 。在經歷大概 interval.time * retry.threshold時間后,就會切換到standby機器上


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM