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的开始结束时间。
还有其他功能:同步库表名单过滤, 数据校验 等