MongoDB,请在云间自由行走

2022-09-28 11:51:50 浏览数 (1)

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上

0 人点赞