MongoShake全量迁移功能

简介: 从v1.5版本开始,MongoShake新增了全量迁移功能,该功能可以让用户更快地对数据量较大的MongoDB数据库做数据复制。MongoShake不再需要源数据库保留全部的oplog,只要依赖当前的oplog就能做数据同步复制。

简介

从v1.5版本开始,MongoShake新增了全量迁移功能,该功能可以让用户更快地对数据量较大的MongoDB数据库做数据复制。MongoShake不再需要源数据库保留全部的oplog,只要依赖当前的oplog就能做数据同步复制。MongoShake全量迁移功能会在迁移前记录源数据库的oplog位点,然后将源数据库的数据全部复制到目的库,复制原理跟MongoDB源生的节点间数据同步是一样的,它会并发将每个db每个表的数据先全量同步到目的库,最好再从之前记录的oplog位点同步剩余的oplog数据,达到数据的同步。

功能介绍

MongoShake全量迁移支持跨region的数据同步,支持各种MongoDB数据库形态的数据迁移,包括ReplicaSet到ReplicaSet,ReplicaSet到Sharding,Sharding到ReplicaSet,Sharding到Sharding。MongoShake不仅对数据做了同步,而且对索引以及Sharding的分片也做了同步,使得数据库的同步迁移变得很容易。

并行复制

为了减少全量迁移的时间,MongoShake会对多表并发进行迁移。为了减少大表迁移的时间,MongoShake也会对文档进行并发迁移。为了提升文档迁移的效率,MongoShake会对多个文档打个batch,进行批量迁移。在MongoShake迁移配置文件中,有以下参数:
replayer.collection_parallel = 6
replayer.document_parallel = 10
replayer.document_batch_size = 1000
其中replayer.collection_parallel控制迁移的表并发个数,replayer.document_parallel控制每个表中文档的并发个数,replayer.document_batch_size控制每个batch中的文档个数

安全性

为了避免用户错填迁移的实例,在迁移前MongoShake会检查目的实例是否存在待迁移的表,如果存在默认则会报错,退出迁移。用户如果想对已经同步的目的实例重新做全量迁移,又不想手动删除已存在的表,也可以把以下参数设置为true
replayer.collection_drop = false

分片同步

MongoShake对于Sharding到Sharding的迁移,还会同步源Sharding的分片信息,包括sharding key和unique信息,但不会同步background信息,这是因为目的库做前台创建索引时,速度会快些。

同步模式

MongoShake支持三种迁移模式all/document/oplog,可以分别进行全量同步document,增量同步oplog,以及全量+增量迁移all。如果设置的模式是all,它会自动识别全量迁移是否已经执行过,如果执行过,它会跳过全量迁移,直接进行增量迁移。判断的逻辑依据checkpoint表里的位点的数据是否在源库的oplog中存在,如果已存在说明增量迁移所依赖的数据都在源库上,可以继续做增量迁移。
sync_mode = all

目录
相关文章
|
6月前
|
SQL 存储 DataWorks
DataWorks数据同步功能支持全量更新和增量更新两种方式
【4月更文挑战第3天】DataWorks数据同步功能支持全量更新和增量更新两种方式
298 3
|
6月前
|
消息中间件 SQL 分布式计算
一篇文章搞定数据同步工具SeaTunnel
一篇文章搞定数据同步工具SeaTunnel
3934 0
|
6月前
|
数据库
阿里云DTS数据迁移和数据同步的差异性分析
阿里云DTS作为一款常用的数据库表迁移工具,提供了功能非常类似的两个功能:数据迁移、数据同步。阿里云DTS产品官网对这两个功能模块进行了简单的区分: 场景1:存量数据批量迁移,建议使用数据迁移功能。 场景2:增量数据实时同步,建议使用数据同步功能。 实际上,无论是数据迁移还是数据同步,都可以做 “结构初始化”+“全量数据迁移”+“增量迁移”,因此两者功能差异并不明显。笔者在多个项目实践DTS数据迁移,在简单需求场景下,将DTS的数据迁移、数据同步进行对比和总结。
|
存储 文件存储 对象存储
S3存储服务间数据同步工具Rclone迁移教程
目前大多项目我们都会使用各种存储服务,例如oss、cos、minio等。当然,因各种原因,可能需要在不同存储服务间进行数据迁移工作,所以今天就给大家介绍一个比较通用的数据迁移工具Rclone。
S3存储服务间数据同步工具Rclone迁移教程
|
5月前
|
存储 Oracle 关系型数据库
几种常见的数据同步方式
【6月更文挑战第18天】几种常见的数据同步方式
661 4
|
5月前
|
消息中间件 监控 关系型数据库
Maxwell - 增量数据同步工具(2)
Maxwell - 增量数据同步工具
|
5月前
|
SQL 关系型数据库 MySQL
Maxwell - 增量数据同步工具(1)
Maxwell - 增量数据同步工具
|
6月前
|
SQL 监控 Oracle
增量数据同步验证
增量数据同步验证
127 3
|
6月前
|
canal 缓存 关系型数据库
数据同步策略解读
数据同步策略解读
|
关系型数据库 MySQL 数据库
数据同步系统
数据同步系统
146 2