数据传输 | 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​​​ 的新选项:​​BinlogRelay​​​,​​BinlogFile​​​,​​BinlogPos​
  • 初步支持 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)