最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

mongodb迁移工具

来源:动视网 责编:小采 时间:2020-11-09 12:58:51
文档

mongodb迁移工具

mongodb迁移工具:项目地址 [github]地址戳这里.(https://github.com/xbsura/mongo-migrate) 使用go语言编写,与m-tools保持一致,除了go语言自带的库,还需要mgo库支持. 功能 mongodb实例之间的数据迁移,带有根据源与目的的节点性质,进行自动分片,预split与movech
推荐度:
导读mongodb迁移工具:项目地址 [github]地址戳这里.(https://github.com/xbsura/mongo-migrate) 使用go语言编写,与m-tools保持一致,除了go语言自带的库,还需要mgo库支持. 功能 mongodb实例之间的数据迁移,带有根据源与目的的节点性质,进行自动分片,预split与movech


项目地址 [github]地址戳这里.(https://github.com/xbsura/mongo-migrate) 使用go语言编写,与m-tools保持一致,除了go语言自带的库,还需要mgo库支持. 功能 mongodb实例之间的数据迁移,带有根据源与目的的节点性质,进行自动分片,预split与movechunk,创建索引,

项目地址

[github]地址戳这里.(https://github.com/xbsura/mongo-migrate)

使用go语言编写,与m-tools保持一致,除了go语言自带的库,还需要mgo库支持.

功能

mongodb实例之间的数据迁移,带有根据源与目的的节点性质,进行自动分片,预split与movechunk,创建索引,拷贝数据与同步oplog几个过程.

设计

迁移工具分为三个阶段,初始化阶段,数据拷贝与oplog同步,分别使用InitCollection类,CopyData类与OplogSync类实现.

InitCollection

过程:

  1. 建立与源,目标的连接,若失败,raise.
  2. 初始化两个标识位,s(shard),o(oplog),为0, 0.
  3. 检测源类型,若为mongod,检测是否为复制集,若无法检测,raise;若为复制集,令o=1;若为mongos,查看要迁移的ns是否分片,如果分片,检测数据分片类型,若都为复制集,令o=1.
  4. 检测目标类型,若为mongod,令s=0.
  5. 若s=1,在目标进行分片,按照源的chunk进行split并随机movechunk.

CopyData

过程:
1. 建立源与目的的连接.
2. 获取要迁移的ns.
4. 如果o=1,记录源每个数据分片oplog最新值.
5. 如果源ns分片,按照chunk边界从源并发读,并向目标并发写;如果源未分片,使用一个query查询数据并向目标写.

OplogSync

过程:
1. 如果o=0,退出.
2. 建立源各个数据节点,目标节点(单节点)的连接.
3. 在每个源分片查找oplog ts大于等于CopyData记录时间点的记录,并逐条应用到目标节点.

问题

  1. 日志貌似打印有一点点问题.
  2. 性能没测试.
  3. 代码有点烂.

目前进度 :

完成可运行的版本,没有完整测试.

文档

mongodb迁移工具

mongodb迁移工具:项目地址 [github]地址戳这里.(https://github.com/xbsura/mongo-migrate) 使用go语言编写,与m-tools保持一致,除了go语言自带的库,还需要mgo库支持. 功能 mongodb实例之间的数据迁移,带有根据源与目的的节点性质,进行自动分片,预split与movech
推荐度:
标签: 地址 迁移 工具
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top