canal 1.1.2 發布,阿里 MySQL Binlog 增量訂閱&消費組件

2020-12-14 開源中國

canal 1.1.2 已發布,更新內容如下:

功能新增

  1. 支持mysql8.0的binlog解析 【BinlogChange(MySQL8)】

  2. canal提供內置的客戶端能力【ClientAdapter】

  • RocketMQ消息支持直接投遞至aliyun ons(RocketMQ雲服務) #1169

  • 功能重構

    1. MQ消息發送的配置相關從mq.yml調整至canal.properties,支持了auto scan的能力,請關注最新的配置文檔 wiki

    小需求&bugfix

    1. 修復mysql binlog文件名解析亂碼問題 #1189

    2. 修復修復TableMeta TSDB在每天定時snapshot因filter變化導致失敗 #1168

    3. 修復canal docker支持MQ模式啟動失敗問題 #1087

    4. 修復TableMeta TSDB支持int display width不一致問題 #1100

    5. 修復rocketmq&kafka 發送消息失敗時回滾後繼續提交的問題 #1104

    6. 修復alter rename 的ddl 類型解析錯誤的問題 #1103

    7. 修復FlatMessage 中data過濾掉了 value null的column #1120

    8. 優化aliyun rds oss binlog下載的能力,支持基於位點自動回溯 #1076

    canal 是阿里巴巴 MySQL 資料庫 Binlog 的增量訂閱&消費組件。

    早期,阿里巴巴 B2B 公司因為存在杭州和美國雙機房部署,存在跨機房同步的業務需求。不過早期的資料庫同步業務,主要是基於 trigger 的方式獲取增量變更,不過從2010年開始,阿里系公司開始逐步的嘗試基於資料庫的日誌解析,獲取增量變更進行同步,由此衍生出了增量訂閱&消費的業務,從此開啟了一段新紀元。

    ps. 目前內部版本已經支持 mysql 和 oracle 部分版本的日誌解析,當前的 canal 開源版本支持5.7及以下的版本(阿里內部 mysql 5.7.13, 5.6.10, mysql 5.5.18 和 5.1.40/48 )

    基於日誌增量訂閱&消費支持的業務:

    1. 資料庫鏡像

    2. 資料庫實時備份

    3. 多級索引 (賣家和買家各自分庫索引)

    4. search build

    5. 業務 cache 刷新

    6. 價格變化等重要業務消息

    相關焦點

    • MySQL - binlog日誌簡介及設置
      前言mysql-binlog是MySQL資料庫的二進位日誌,用於記錄用戶對資料庫操作的SQL語句((除了數據查詢語句)信息。可以使用mysqlbin命令查看二進位日誌的內容。MySQL binlog格式binlog的格式也有三種:STATEMENT、ROW、MIXED 。1、STATMENT模式:基於SQL語句的複製(statement-based replication, SBR),每一條會修改數據的sql語句會記錄到binlog中。
    • 騰訊大牛教你ClickHouse實時同步MySQL數據
      現有的MySQL binlog開源組件(Canal),無法做到多張源數據表到一張目的表的映射關係。  基本原理  一、使用JDBC方式同步  1. 使用Canal組件完成binlog的解析和數據同步;  2.
    • 【用binlog日誌】恢復 MySQL 資料庫刪除數據
      Mysql安裝路徑下的bin文件夾下輸入以下命令:C:\xampp\mysql\bin>mysqlbinlog C:\xampp\mysql\data\mysql-bin.0000092、上面這種辦法讀取出binlog日誌的全文內容較多,不容易分辨查看pos點信息,這裡介紹一種更為方便的查詢命令在MySQL的命令界面:在m
    • Mysql的binlog和relay-log到底長啥樣?
      上一篇mysql面試的文章之後收到不少朋友的意見,希望深入講講複製、日誌的格式這些,今天,我們就來深挖一下mysql的複製機制到底有哪一些,以及binlog和relay-log的結構到底是什麼樣子的。工具來查看binlog的內容:show variables like 'log_%'; #查看日誌目錄mysqlbinlog --short-form --force-if-open --base64-output=never /usr/local/var/mysql/binlog.000029
    • 必須了解的mysql三大日誌-binlog、redo log和undo log
      日誌是 mysql 資料庫的重要組成部分,記錄著資料庫運行期間各種狀態信息。mysql日誌主要包括錯誤日誌、查詢日誌、慢查詢日誌、事務日誌、二進位日誌幾大類。作為開發,我們重點需要關注的是二進位日誌( binlog )和事務日誌(包括redo log 和 undo log ),本文接下來會詳細介紹這三種日誌。
    • MySQL 中的 binlog 和 relay-log 結構完全詳解
      今天我們來深挖一下mysql的複製機制到底有哪一些,以及binlog和relay-log的結構到底是什麼樣子的。_%'; #查看日誌目錄mysqlbinlog --short-form --force-if-open --base64-output=never /usr/local/var/mysql/binlog.000029
    • MySQL裡快速找到 binlog 中是否有大事務-愛可生
      這裡用到了 grep 兩個技巧: 1. 2. 使用 -B 參數向前找到了匹配的前一行,輸出 "at xxx",這一行是 GTID_event 在 binlog 中的位置(單位是字節)。 然後我們將其中的位置信息過濾出來,
    • 必須了解的MySQL三大日誌:binlog、redo log和undo log
      日誌是mysql資料庫的重要組成部分,記錄著資料庫運行期間各種狀態信息。mysql日誌主要包括錯誤日誌、查詢日誌、慢查詢日誌、事務日誌、二進位日誌幾大類。作為開發,我們重點需要關注的是二進位日誌(binlog)和事務日誌(包括redo log和undo log),本文接下來會詳細介紹這三種日誌。
    • MySQL Binlog 文件格式解析二(GTID_LOG_EVENT)
      插入一條記錄,看下這個sql在binlog裡由哪幾個部分組成。insert into tb values(1);解析binlog,執行:show binlog events in 'mysql-bin.000001';可以看到一條插入語句,在binlog中變成了多個event。
    • clever-nashorn 第一個版本(0.0.1-SNAPSHOT)發布
      2019-11-11 0.0.1-SNAPSHOT[發布第一個版本] WEB
    • MySQL資料庫遭到攻擊篡改---使用備份和binlog進行數據恢復
      三、找備份及時間點在備份的從庫上檢查備份:crontab -l #0 3 * * * /data/opdir/mysqlbak/backup_mysqldump.sh 6084 >> /data/opdir/mysqlbak/6084/mysql-bakup.log 2>&1
    • 【140期】MySQL中的redolog,undolog,以及binlog的區別及各自作用是什麼?
      對應的物理文件:默認情況下,對應的物理文件位於資料庫的data目錄下的ib_logfile1&ib_logfile2innodb_log_group_home_dir 指定日誌文件組所在的路徑,默認./ ,表示在資料庫的數據目錄下。
    • MySQL 5.7基於GTID及多線程主從複製
      binlog的位置,用於Slave 宕機後根據文件中記錄的pos點恢復Sql線程sync-master-info = 1 #啟用確保無信息丟失;任何一個事務提交後, 將二進位日誌的文件名及事件位置記錄到文件中slave-parallel-workers = 2 #設定從伺服器的複製線程數;0表示關閉多線程複製功能
    • 技術分享 | MySQL 閃回工具 MyFlash|mysql|session|query|server...
      2.0` source/binlogParseGlib.c -o binary/flashback用法  flashback [OPTION...]  原 d1.t1 表中數據如下:  mysql> select * from d1.t1;  +-+  | id |  +-+  | 1 |  | 2 |  | 3 |  | 4 |  | 5 |  |
    • MySQL Group Replication 學習筆記
      官方,在5.7版本階段開發的,innodb的分布式資料庫架構,從發布開始就有很多關注,下文是我對目前為止的材料以及實驗的一些總結。-->階段1第一階段,新實例選擇集群中的一個實例作為種子實例,這個種子實例會發送所有新實例到加入集群為止缺失的日誌數據到新實例,這個的執行,是通過簡單的主從同步日誌的方式做的。執行階段1的期間,新實例還會一直持續接收當前正在活躍(實例加入集群後)的事務的日誌,補全從種子實例沒有傳輸的增量日誌。
    • MySQL- InnoDB之二進位日誌
      2.1 GTID介紹對於binlog中的每一個事務,都會生成一個GTID號碼DDL ,DCL 一個event就是一個事務,就會有一個GTID號.DML語句來講,begin到commit,是一個事務,就是一個GTID號2.2 GTID的組成severi_uuid:TIDseveri_uuid?
    • binlog和relay-log到底長啥樣?
      本文公眾號來源:科技繆繆今天,我們就來深挖一下mysql的複製機制到底有哪一些,以及binlog和relay-log的結構到底是什麼樣子的。binlog另外,也可以使用mysqlbinlog工具來查看binlog的內容:show variables like 'log
    • 終於學會了 MySQL 主從配置和讀寫分離
      主從原理主節點1、當主節點上進行 insert、update、delete 操作時,會按照時間先後順序寫入到 binlog 中;2、當從節點連接到主節點時,主節點會創建一個叫做 binlog dump 的線程;3、一個主節點有多少個從節點,就會創建多少個 binlog dump 線程;
    • 技術分享 | MySQL 閃回工具 MyFlash
      2.0` source/binlogParseGlib.c -o binary/flashback用法  flashback [OPTION...]  原 d1.t1 表中數據如下:  mysql> select * from d1.t1;  +-+  | id |  +-+  | 1 |  | 2 |  | 3 |  | 4 |  | 5 |  |