跳转至

DDT(Document Data Transfer)简介

一 DDT介绍

DDT是由锦木信息技术有限公司(以下简称“锦木信息”)结合众多客户需求和锦木信息多年 MongoDB 一线服务及研发经验所推出新一代MongoDB数据库迁移同步工具。

DDT是一个以JAVA语言开发的通用的传输软件,具有高健壮性、高传输性、高可用性的特点,可以快速稳定的迁移数据,帮助用户进行实现数据备份,实时迁移,备份容灾等业务操作。用户也可自定义配置参数来实现场景不同高效传输。

由于目前MongoDB副本集内置的主从同步对于这种业务场景有较大的局限性,为此,我们开发了DDT同步工具,可以应用在实例,机房、跨数据中心复制,满足灾备和多活需求。

传统MongoDB数据同步仅支持相同架构的数据同步,DDT支持单节点,复制集,分片三种类型架构的数据相互传输。帮助用户实现类似于复制集点到分片 分片到单节点的数据同步方案

DDT的核心实时同步:我们利用对OPLOG日志的解析和应用,高效安全的实现实时同步。

源端MongoDB可以是单实例、副本集或分片,而目标可以是 mongod 或 mongos。如果源端是副本集,我们建议从次要/隐藏节点中获取数据以减轻主节点压力。如果源端是分片,每个分片都应该连接到 DDT。

二 功能介绍

DDT 具有简单、安全、适用性强、多功能 、高性能等特点。

功能模块及描述

功能模块 功能项 描述
同步模式 全量同步 全量同步表,仅同步程序启动前的源表数据
实时同步 实时同步源端产生的oplog
全量和增量同步 全量同步后,仅同步同步期间对源表进行的操作。实时同步的开始时间为全量同步的开始时间,实时同步的结束时间为全量同步的结束时间
全量和实时同步 全量同步后,开始进行实时同步。实时同步的开始时间为全量同步的开始时间
附加特性 延迟同步 在实时同步期间可以延迟设置读取oplog
同步DDL 在实时同步期间,用户可以自定义同步某些DDL操作
源表索引 在全量同步期间,用户可以设置是否在总数据同步60%以后,开始同步源表的索引列表
多表并行 在全量同步时,设置多源表同时同步还是单表依次同步
同步源表名单 使用正则表达式设置需要的同步表名单
时间区间实时同步 实时同步时,可以设置同步某时间区间内的oplog
MongoDB版本 支持版本 DDT支持3.2,3.4,3.6,4.0,4.4,5.0,6.0版本的

2.1高性能

高效数据校验

  • 确保数据总量一致

  • 确保数据信息一致

  • 确保数据索引一致

  • 确保数据结构一致

多种同步方案

  • 全量数据复制

  • 实时数据同步

  • 增量数据同步

  • 自定义同步范围

  • 复合数据同步方案

高速同步机制

  • 100%传输带宽利用

  • 可控CPU利用率

  • 内存使用率可配置

  • 支持多表并传

小巧稳定高效

  • 体积小巧

  • 断点续传

  • 支持多版本MongoDB同步

2.2同步模式

同步模式:全量,实时,全量和增量,全量和实时。 其中增量是指有时间范围限制的Oplog实时同步。

全量同步:将源端MongoDB库表进行切分查询,查询到的数据多线程批写入到目标MongoDB库。在全量同步模式下,原则上来说提供资源数越多,QPS越高。

实时同步:将数据从源MongoDB复制到另一个MongoDB,以构建冗余复制。它从源 MongoDB数据库中获取 oplog,并在目标 mongo db数据库中重放日志。

2.3 断点续传

source端MongoDB意外宕机时重启,DDT依然能够正常 无丢失的同步数据。当DDT意外关闭时,下次启动DDT时,能自动追踪到断点处,且进行追加重传。

2.4 支持多版本

目前DDT支持3.2到6.0的MongoDB。新版本的时许表,桶表均 可靠支持传输同步。

2.5 DDL操作

在实时同步期间,用户可以自定义同步某些DDL操作。同时DDL操作也会被记录在日志中,方便审查操作。

2.6 Oplog延迟

延迟同步Oplog可以方便用户进行故障切换。

2.7 同步范围

实时同步时,可以设置同步Oplog的开始结束时间。

还有其他功能:同步库表名单过滤, 数据校验 等