1、服務器分配
IP | 類型 | 端口號 | 其它 | 版本號 |
10.200.48.67 | Zookeeper | 2181 | ||
10.200.48.68 | ||||
10.200.48.69 | ||||
10.200.48.70 | ||||
10.200.48.70 | mysql | 3306 | Db:zlz_test | |
10.200.48.70 | canal | v1.0.24 | ||
10.200.48.71 |
2、下載canal
https://github.com/alibaba/canal/releases ,使用版本v1.0.24
下載canal.deployer-1.0.24.tar.gz
Linux上執行如下命令:
wget https://github.com/alibaba/canal/releases/download/canal-1.0.24/canal.deployer-1.0.24.tar.gz
3、mysql初始化
a. canal的原理是基於mysql binlog技術,所以這裏一定需要開啓mysql的binlog寫入功能,建議配置binlog模式爲row.
[mysqld]
log-bin=mysql-bin #添加這一行就ok
binlog-format=ROW #選擇row模式
server_id=1 #配置mysql replaction需要定義,不能和canal的slaveId重複
重啓mysql
systemctl restart mariadb
b. Canal的原理是模擬自已爲mysql slave,所以這裏一定需要做爲mysql slave的相關權限。
CREATE USER canal IDENTIFIED BY ‘canal’;
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘canal’@’%’;
– GRANT ALL PRIVILEGES ON . TO ‘canal’@’%’ ;
FLUSH PRIVILEGES;
4、70服務器安裝canal(單機版)
步驟1:解壓縮
mkdir /tmp/canal
tar zxvf canal.deployer-1.0.24.tar.gz -C /tmp/canal
步驟2:創建canal instance
mkdir conf/canal_bj/ #連接業務庫mysql
cp …/example/instance.properties ./ #複製example目錄下的instance.properties文件到本地
步驟3:配置修改
應用參數:
vi conf/canal_bj/instance.properties
#################################################
## mysql serverId
canal.instance.mysql.slaveId = 1235
# position info
canal.instance.master.address = 10.200.48.70:3306
canal.instance.master.journal.name =
canal.instance.master.position =
canal.instance.master.timestamp =
#canal.instance.standby.address =
#canal.instance.standby.journal.name =
#canal.instance.standby.position =
#canal.instance.standby.timestamp =
# username/password
canal.instance.dbUsername = canal
canal.instance.dbPassword = canal
canal.instance.defaultDatabaseName = zlz_test
canal.instance.connectionCharset = UTF-8
# table regex
canal.instance.filter.regex = .\…
# table black regex
canal.instance.filter.black.regex =
#################################################
步驟4:準備啓動
sh bin/startup.sh
步驟5:查看日誌
Canal運行日誌
tail -f logs/canal/canal.log
具體instance的日誌:
tail -f logs/canal_bj/canal_bj.log
步驟6:關閉
sh bin/stop.sh
5、Canal HA配置
步驟1:按【4】配置71服務器
vi conf/canal_bj/instance.properties
以下參數要進行調整
## mysql serverId
canal.instance.mysql.slaveId = 1236
步驟2:70,71兩臺服務器都需要修改canal.properties,加上zookeeper配置
下圖中標紅的兩個位置都需要調整
注意: 兩臺機器上的instance目錄的名字需要保證完全一致,HA模式是依賴於instance name進行管理,同時必須都選擇default-instance.xml配置。
步驟3:啓動兩臺機器的canal
-----------
ssh 10.200.48.70
sh bin/startup.sh
-----------
ssh 10.200.48.71
sh bin/startup.sh
啓動後,你可以查看logs/canal_bj/canal_bj.log,只會看到一臺機器上出現了啓動或成功的日誌。