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上