mysql binlog 订阅_数据库binlog订阅和消费组件canal快速入门
一、什么是canal
1.定位
Canal是阿里巴巴開源的一款基于mysql數據庫binlog增量日志分析提供數據訂閱和消費功能的組件
2.原理
Canal模擬MySQL Slave協議,將自己偽裝成MySQL Slave,將Master發送dump協議
Master將binlog同步到Slave(這里是Canal)
Canal解析binlog,可以做相關的后續操作,如同步發送到MQ,或同步到其他存儲系統如ES
二、canal能做什么數據庫鏡像
數據庫實時備份
多級索引 (賣家和買家各自分庫索引)
search build
業務cache刷新
價格變化等重要業務消息
三、canal服務端安裝
1.MySQL主節點配置(1)開啟binlog
修改mysql的配置文件,添加以下內容:
log-bin=mysql-bin
binlog-format=ROW
server-id=1
log-bin : 指定二進制日志文件的文件名,也是開啟binlog的開關
binlog-format : binlog的日志格式,必須設置成ROW
server-id : 主節點的編號(不能與slave和canal的server-id相同)
修改配置后,請重啟mysql
(2)為slave賬戶授權
通過mysql客戶端連接到mysql服務器
創建用于復制的賬號(設置賬號和密碼)
CREATE USER canal IDENTIFIED BY'canal';
為創建的賬號授權
GRANT SELECT,REPLICATION SLAVE,REPLICATION CLIENT ON*.*TO'canal'@'%';
刷新權限
FLUSH PRIVILEGES
2.下載源碼(1)下載二進制包
下載最新的穩定包
(2)編譯成二進制包
3.修改配置
修改實例配置conf/example/instance.properties
# position info
canal.instance.master.address=127.0.0.1:3306
canal.instance.master.journal.name=
canal.instance.master.position=
canal.instance.master.timestamp=
canal.instance.master.gtid=
# username/password
canal.instance.dbUsername=canal
canal.instance.dbPassword=canal
canal.instance.connectionCharset=UTF-8
canal.instance.defaultDatabaseName=test
# table regex
canal.instance.filter.regex=.*\\..*
# table black regex
canal.instance.filter.black.regex=
主要配置說明:
連接的master節點配置canal.instance.mysql.slaveId : 當前節點偽裝成的slave的編號(1.0.26后自動生成,不用設置)
canal.instance.master.address : 主節點的地址
賬號設置canal.instance.dbUsername : 用于復制的賬號的用戶名
canal.instance.dbPassword : 用于復制的賬號的密碼
canal.instance.connectionCharset : 連接數據庫編碼設置
表設置canal.instance.filter.regex : 只關注的表(正則表達式),這里 .*\\..* 表示所有
4.啟動canalbin/startup.sh
5.查看日志logs/canal/canal.log : 查看服務的日志
logs/example/example.log : canal實例服務日志
logs/example/meta.log : 數據變更日志(有數據后自動生成)
6.檢測canal搭建是否成功(1)通過客戶端進入mysql服務器,查看binlog查看主節點狀態,獲取二進制文件名稱
show master status;
查找當前二進制日志的位置
show binlog eventsin'mysql-bin.000009';
注:這上語句還可以添加以下參數:
from : 起始的position位置
limit : 讀取的起始offset和limit條數
(2)打開數據變量日志文件tail-200flogs/example/meta.log
(3)變更數據觸發數據同步
通過客戶端變更數據,如插入數據、修改數據或刪除數據操作
查看前兩個步驟的日志,比較兩個position是否相同
7.canal其他操作bin/stop.sh : 關閉canal
bin/restart.sh : 重啟canal
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的mysql binlog 订阅_数据库binlog订阅和消费组件canal快速入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 36套java精品高级课_Dubbo-Z
- 下一篇: linux cmake编译源码,linu