數據傳輸 | DTLE Release Notes 詳細解讀 2.19.11.0

​2.19.11.0 版本 DTLE Release Notes

以下對 DTLE 2.19.11.0 版本的 Release Notes 進行詳細解讀。
文章主要分爲四部分內容:
一、DTLE 項目介紹
二、版本特徵
三、Bug 修復
四、DTLE Release Notes

一、DTLE 項目介紹

11月28日,開源數據傳輸組件 DTLE 最新版本 2.19.11.0 發佈。
DTLE 自開源起一直定位於一款針對 MySQL 使用特點、支持多種使用場景的數據傳輸組件,希望能夠解決當前 MySQL 應用中保障數據傳輸質量、能夠適配複雜場景、提供多樣功能的問題。

跨數據中心的數據傳輸:

  • DTLE 能在數據中心間進行可靠數據傳輸,並提供鏈路壓縮以降低傳輸成本

雲間數據同步/遷移:

  • DTLE 能提供在公有云間架設數據同步通道,以支持數據容災等需求

數據匯聚:

  • DTLE 能將多個數據源匯聚到同一個數據源,以提供數據分析/數據轉儲的功能

數據訂閱:

  • DTLE 能將數據源的變更消息發往 Kafka 等消息中間件,以支持數據訂閱通知/緩存失效通知等需求

跨數據中心的雙向複製:

  • DTLE 能在數據中心間提供雙向複製通道,以配合業務實現數據雙寫

DTLE 官方項目:
https://github.com/actiontech/dtle
如對源碼有興趣或者需要定製的功能的可以通過源碼編譯安裝。

DTLE 官方文檔:
https://actiontech.github.io/dtle-docs-cn/

DTLE 下載地址:
https://github.com/actiontech/dtle/releases

Tips:建議下載最新的 Releases 版本,下載 tar 壓縮包即可,如有源碼編譯需求的,可以下載源碼包

二、版本特徵

  • 中繼二進制日誌(#475)
    • dtle 會將二進制日誌從源端 MySQL 下載到本地存儲。以防源端 MySQL 上執行 PURGE BINARY LOGS (清空二進制日誌)。
  • 允許使用 binlog 文件和位置(即不使用 GTID)開始增量複製作業
  • 查看文檔中job.json 的新選項:BinlogRelayBinlogFileBinlogPos
  • 初步支持 MySQL 8.0(#487)
  • 更改日誌系統
    • 支持動態更改日誌級別
    • 日誌格式更新
    • 支持日誌文件輪替

三、Bug 修復

  • 增加 BinlogEntrySize 方式錯誤,可能導致任務失敗(#499)
  • 因 「empty nats」 導致的任務失敗(#433)
  • 當表的增量複製中沒有主鍵時任務可能會失敗 (#488)
  • 當庫表名包含特殊字符時任務可能會失敗 (#476)
  • 增量階段任務卡住 (1bee6d31)
  • 庫表名映射任務可能失敗 (#481)

四、Release Notes

Features

  • Binlog Relay (#475)
    • dtle can download binlog from source mysql to local storage in case of PURGE BINARY LOGS on source mysql
  • Allow starting a incremental job with binlog file & position (without GTID)
  • Check the doc for new job.json options: BinlogRelay, BinlogFile, BinlogPos
  • Preliminary support for MySQL 8.0 (#487)
  • Change log system
    • support for dynamic updating of log levels
    • log format update
    • support log file rotation

Bugfixes

  • Binlog entry size was wrongly incremented (#499)
  • Job dead due to ‘empty nats’ (#433)
  • Job dead in incremental copy of tables without a primary key (#488)
  • Job dead when schema.table contains special characters (#476)
  • Job stuck in incremental stage (1bee6d31)
  • Job with schema.table mapping might fail (#481)