日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql binlog 订阅_数据库binlog订阅和消费组件canal快速入门

發布時間:2024/9/27 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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快速入门的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。