当前位置: 首页 > news >正文

如何实现MongoDB数据的快速迁移?

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

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

01  传统数据迁移方案

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

  • 停机时间长,由于mongodump/mongorestore不支持增量数据的采集复制,在MongoDB迁移期间,要求业务停机,停服时间通常高达数小时/上天,对业务的挑战极大。特别当迁移难度较高时,通常反复多次迁移,业务停服时间更不可控。

  • 可靠性不高,不提供迁移过程的观测、诊断与修复能力,迁移过程中出现错误一般需要重新迁移,迁移难度较高。

  • 数据准确性难保障,此类工具因不提供对应的质量检测能力,所以迁移的数据质量一般难以保障。

  • 大数据量迁移挑战,因其容灾能力不足,不能很好支撑大数据量、大表的迁移。

02  NineData数据迁移方案

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

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

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

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

▶︎  数据一致性对比

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

▶︎  可观测可干预能力

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

03  一分钟启动全自动化迁移

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

3.1 配置复制任务

MongoDB迁移及同步方案:NineData配置复制任务

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

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

3.2 全量数据对比

MongoDB迁移及同步方案:NineData全量数据对比

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

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

04  写在最后

当然,除了MongoDB迁移外,NineData支持MongoDB实例间的长期复制,可应用于数据容灾、读写分离、测试数据构建等业务场景。同时,NineData也已支持数十种常见数据库的迁移复制。NineData提供即开即用的SAAS模式,及企业专属集群模式,满足企业最高的数据安全合规要求。当前,NineData已在运营商、金融、制造业、地产、电商等多个行业完成大规模应用实践。

数据迁移-迁移工具-数据传输-NineData-玖章算术

http://www.lryc.cn/news/159968.html

相关文章:

  • react中使用Modal.confirm数据不更新的问题解决
  • 【vue】下拉、上拉刷新
  • el-tree组件的锚点链接
  • 汽车电气架构
  • Spring中添加打印请求头的拦截器
  • LeetCode(力扣)216. 组合总和 IIIPython
  • 无涯教程-JavaScript - IMLOG10函数
  • C++ 学习之深拷贝 和 浅拷贝
  • Qt QtWidgets相关问题汇总
  • 【ubuntu22.04 文件管理器nautilus配置默认终端为alacritty】
  • 信息化发展30
  • css溢出隐藏的五种方法
  • RK3568-UART通信
  • 武警三维数字沙盘电子沙盘虚拟现实模拟推演大数据人工智能开发教程第15课
  • 【Linux从入门到精通】通信 | 共享内存(System V)
  • ubuntu 扩展内存挂载
  • 聚观早报|小米14渲染图曝光;蚂蚁金融大模型正式发布
  • musl libc 动态加载:默认链接脚本
  • 快速排序(递归和非递归两种方法实现)
  • ApiPost7使用介绍 | HTTP Websocket
  • Linux常用命令——convertquota命令
  • Linux 进程基础概念-进程状态、进程构成、进程控制
  • Unity Animation、Animator 的使用
  • Flink--2、Flink部署(Yarn集群搭建下的会话模式部署、单作业模式部署、应用模式部署)
  • 执行Django 的迁移命令报错[1193, Unknown system variable default_storage_engine]
  • Himall商城-公共方法
  • 海域可视化监管:浅析海域动态远程视频智能监管平台的构建方案
  • 使用Spring Boot + MyBatis实现多数据源
  • C++中的无限循环
  • Spark2x原理剖析(二)