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

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