前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MongoDB,请在云间自由行走

MongoDB,请在云间自由行走

作者头像
沃趣科技
发布2022-09-28 11:51:50
6300
发布2022-09-28 11:51:50
举报
文章被收录于专栏:沃趣科技沃趣科技

DBMotion

Squids DBMotion,新增MongoDB数据迁移的支持,为用户提供零停机、高性能的在线数据迁移、校验服务。

01

MongoDB简介

MongoDB是目前来说除了关系型数据库外最流行的数据库,MongoDB是文档型(Document store)的NoSQL数据库,数据以BSon文档形式存储。

相比MySQL等关系型数据库,MongoDB最明显的优势是它的schema free特性。

不同文档相同key的value类型可以是整形也可以是字符串等其他类型,同一个文档下多行数据包含的字段也可以是不同的。

对于数据量大TB甚至PB级,数据模式无法确定,需要快速迭代,又不需要事务和复杂join的场景,非常适用于使用MongoDB来存取数据,目前,MongoDB 的应用已经渗透到各个领域,例如

  • 游戏场景,使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新
  • 物流场景,使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来。
  • 社交场景,使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能
  • 物联网场景,使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析

02

丝滑DBMotion

支持MongoDB的在线迁移

DBMotion支持MongoDB的结构、全量、增量迁移以及数据校验。

  • 结构迁移将用户、role、collection、view、index、js等从源库迁移到目标库上
  • 全量迁移将源库上用户指定的schema数据全部迁移到目标库
  • 增量迁移在3.6版本之前以tailOplog的方式解析日志同步到目标端,3.6版本之后以ChangeStream的方式进行增量同步
  • 数据校验使用dbHash来对源和目标端的collection进行比对

通过增量模式的支持,DBMotion支持将客户的MongoDB零停机的迁移到目标库上。通过数据校验,用户在迁移前可以进行数据比对,最大可能的保证源端和目标端的数据一致性,提供有效、可靠的数据迁移服务。

03

DBMotion功能及优势

►中立,安全

  • 不限云上云下,不限云厂商
  • 中立,独立的第三方DTS在线服务
  • 全链路SSL连接,端到端加密

►简单易用

  • 可视化操作,输入源端和目标端,点点鼠标就可以实现迁移
  • 实时查看迁移数据量和进度状态信息
  • 迁移报错信息清晰明了

►并发高性能

  • 全量、增量、校验过程都使用多线程并发

►零停机

  • 增量实时同步保证目标端和源端数据秒级数据一致性
  • tailOplog和ChangeStream模式增量保证实时同步

►一致性可靠

  • dbHash的MongoDB原生校验,确认源库和目标库的数据一致性

04

迁移场景全覆盖

DBMotion目前除了MySQL以外还支持以下MongoDB主要场景的数据库迁移,包括:

  • 多云间MongoDB迁移
  • 线下自建MongoDB迁移上云
  • Squids上MongoDB实例的多云迁移

多云间MongoDB迁移

这里假设客户的ECS上运行的MongoDB实例为dbmotion.squids.cn:27037,想要迁移到dbmotion.squids.cn:27018的MongoDB上来,需要执行以下操作

一、在“数据传输” 页面选择 "+添加迁移任务"

添加迁移任务包括三个步骤:源库目标库配置、迁移选项配置、配置确认

1.源库目标库配置阶段 如果源端或者目标端支持SSL,可以使用SSL进行加密传输

2.迁移选项配置阶段,选择需要迁移的数据库和迁移类型。

3.配置确认阶段,这个阶段会进行预检查,检查连通性和授权等情况。

二、查看任务详情 这个阶段可以查看任务在各个阶段执行的具体情况,并且支持校验源端和目标端的数据是否一致

线下自建MongoDB迁移上云

线下自建MongoDB迁移上Squids相对多云间迁移最主要的区别在于,线下的自建MongoDB没有公有IP,需要利用dbmotion_tool来将线下数据库映射到公网上来。

你需要找到一台能通公网并且能访问内网数据库的服务器,利用它来将内网MongoDB映射到公网上,在这台中转服务器上执行dbmotion_tool命令来完成映射功能

代码语言:javascript
复制
./dbmotion_tool -t create -h 192.168.2.104 -p 27017
    create tunnel for 192.168.2.104:27017 on 56289
    tunnel for 192.168.2.104:27017 on 56289 is created.

这里搭建了内网数据库的192.168.2.104:27017反向隧道,映射到 dbmotion.squids.cn:56289上

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 沃趣科技 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档