如何实现不同MongoDB实例间的数据复制?

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 除了MongoDB迁移外,NineData支持MongoDB实例间的长期复制,可应用于数据容灾、读写分离、测试数据构建等业务场景。同时,NineData也已支持数十种常见数据库的迁移复制。NineData提供即开即用的SAAS模式,及企业专属集群模式,满足企业最高的数据安全合规要求。

作为一种Schema Free文档数据库,MongoDB因其灵活的数据模型,支撑业务快速迭代研发,广受开发者欢迎并被广泛使用。在企业使用MongoDB承载应用的过程中,会因为业务上云/跨云/下云/跨机房迁移/跨地域迁移、或数据库版本升级、数据库整合、数据库拆分、容灾等业务场景,存在MongoDB迁移或同步的业务诉求。

在MongoDB迁移的过程中,其迁移时间、迁移数据准确性及迁移过程中业务的停机要求无疑是影响迁移能否成功的关键因素。由此,如何选择合适的迁移工具,提供高效、安全、准确的迁移能力至关重要。

如何实现不同MongoDB实例间的数据复制.png

1、传统数据迁移方案

传统的MongoDB迁移一般基于mongodump及mongorestore等导入导出工具进行数据搬迁,使用这种搬迁工具一般存在如下问题:

  • 停机时间长:由于mongodump/mongorestore不支持增量数据的采集复制,在MongoDB迁移期间,要求业务停机,停服时间通常高达数小时/上天,对业务的挑战极大。特别当迁移难度较高时,通常反复多次迁移,业务停服时间更不可控。
  • 可靠性不高:不提供迁移过程的观测、诊断与修复能力,迁移过程中出现错误一般需要重新迁移,迁移难度较高。
  • 数据准确性难保障:此类工具因不提供对应的质量检测能力,所以迁移的数据质量一般难以保障。
  • 大数据量迁移挑战:因其容灾能力不足,不能很好支撑大数据量、大表的迁移。

2、NineData数据迁移方案

为解决用户面临的MongoDB迁移问题,玖章算术旗下的云原生智能数据管理平台NineData 推出了MongoDB 业务不停服数据迁移能力。NineData实现了完全自动化的全量数据迁移,以及增量数据的采集复制能力。其中,增量数据迁移能力,能够在结构迁移及全量数据迁移期间,实时监听采集源MongoDB数据变更产生的oplog,并在完成全量迁移后,将变更数据实时复制到目标MongoDB,实现源/目标MongoDB的动态复制。基于变更数据迁移能力,在MongoDB数据迁移过程中,业务可以正常提供服务,无需停服。最终,业务可根据需要选择对应时间点切换到目标MongoDB,具体流程如下图。

NineData数据迁移方案流程.png

除了提供业务不停服的迁移能力外,NineData提供的MongoDB还具有如下能力:

▶︎ 大数据量或大表的迁移能力

基于智能分片、动态攒批、并发迁移、表级断点续传等多种技术能力,提供强劲迁移能力。

▶︎ 数据一致性对比

NineData提供了MongoDB的数据对比能力,能够进行高效的一致性对比,快速识别差异数据,并提供对应的订正脚本,快速订正修复差异内容,有效保障迁移数据质量。

▶︎ 可观测可干预能力

NineData提供详细的迁移状态、进展及详情信息,当出现迁移异常时,会提供多种诊断修复能力,帮助您保障任务稳定性。同时,提供迁移限流能力,您可根据业务需要,自定义迁移速度,保障MongoDB的稳定性。

3、一分钟启动全自动化迁移

虽然提供了比较强大的MongoDB迁移能力,但是NineData使用起来非常简单,只需要花1分钟时间完成任务配置,即可以完全自动化完成数据的迁移及同步过程。下面我们来看下整个任务的配置过程:

3.1 配置复制任务

MongoDB配置复制任务.jpg

基于上述操作,完成复制数据源、复制对象及复制类型的选择后,即可快速启动MongoDB的全自动化迁移。当完成任务启动后,NineData会自动进行全量数据迁移及增量数据复制。

当数据迁移完成后,也可以配置对应的数据对比进行数据一致性的校验,快速发现、定位并修复差异数据。下面会对刚才迁移的mongodb数据进行数据一致性校验。

3.2 全量数据对比

MongoDB全量数据对比.jpg

如图片所示,针对刚才迁移的MongoDB数据可以通过配置运行数据对比任务,进行精准、完整的数据对比。数据对比过程中,NineData会对每个Document的内容进行精准对比,并快速发现差异内容,并针对性提供订正脚本。

至此,当数据迁移完成、数据校验及业务验证通过后,业务可以选择一个低峰期进行MongoDB的停机切换,切换到新的数据库,至此完成整个迁移过程。

4、写在最后

当然,除了MongoDB迁移外,NineData支持MongoDB实例间的长期复制,可应用于数据容灾、读写分离、测试数据构建等业务场景。同时,NineData也已支持数十种常见数据库的迁移复制。NineData提供即开即用的SAAS模式,及企业专属集群模式,满足企业最高的数据安全合规要求。当前,NineData已在运营商、金融、制造业、地产、电商等多个行业完成大规模应用实践。如果您感兴趣的话,可以登录官网:https://www.ninedata.cloud/dbmigration, 立即开始免费使用。

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
7月前
|
人工智能 NoSQL atlas
4大企业实例解析:为何MongoDB Atlas成为AI服务构建的首选
本文所提及的仅是MongoDB Atlas在AI领域可实现功能的冰山一角
1773 1
|
4月前
|
人工智能 NoSQL Go
Go MongoDB Driver 实例
Go MongoDB Driver 实例
26 1
|
7月前
|
存储 NoSQL MongoDB
使用mongodb数据库实例
【5月更文挑战第9天】MongoDB中的集合类似关系数据库的表,但不强制模式,允许嵌入式文档以实现更灵活的数据布局。安装MongoDB在Ubuntu上涉及添加源列表和更新,CentOS则需创建配置文件。MongoDB支持备份和恢复,以及全文搜索。其灵活模式和动态模式减少了开发中的复杂性,但并非无模式,大部分数据仍具结构化特点。
159 2
|
7月前
|
DataWorks NoSQL 关系型数据库
DataWorks操作报错合集之在使用 DataWorks 进行 MongoDB 同步时遇到了连通性测试失败,实例配置和 MongoDB 白名单配置均正确,且同 VPC 下 MySQL 可以成功连接并同步,但 MongoDB 却无法完成同样的操作如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
112 1
|
7月前
|
存储 监控 NoSQL
数据存储与分析:办公室电脑屏幕监控的MongoDB应用实例
在当今数字时代,数据的存储和分析变得愈发重要,尤其是在办公环境中,对电脑屏幕进行监控成为一种日益普遍的需求。本文将介绍如何利用MongoDB数据库实现办公室电脑屏幕监控,并通过代码实例展示其应用。
261 0
|
存储 NoSQL JavaScript
MongoDB实例:构建一个简单的任务管理应用
MongoDB作为一种灵活的文档型数据库,适用于多种应用场景。在本文中,我们将使用MongoDB构建一个简单的任务管理应用,展示其在实际应用中的使用。
145 1
|
NoSQL Java MongoDB
SpringBoot整合MongoDB完整实例
SpringBoot整合MongoDB完整实例
335 0
SpringBoot整合MongoDB完整实例
|
NoSQL Java MongoDB
SpringBoot整合MongoDB使用MongoTemplate进行增删改查实例
SpringBoot整合MongoDB使用MongoTemplate进行增删改查实例
421 0
|
NoSQL 关系型数据库 MySQL
DLA支持分析MongoDB/RDS只读实例
在对Mysql,MongoDB等数据库系统进行分析时,经常面临的一个问题是在进行分析查询时如何避免对实时业务产生影响,也就是OLAP负载和OLTP负载隔离的问题。针对这个问题,阿里云数据湖团队一直在努力优化,提供满足不同场景的解决方案。
769 0
DLA支持分析MongoDB/RDS只读实例