您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

mongodb迁移工具

2025/11/19 5:18:56发布29次查看
项目地址 [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过程:
建立与源,目标的连接,若失败,raise.初始化两个标识位,s(shard),o(oplog),为0, 0.检测源类型,若为mongod,检测是否为复制集,若无法检测,raise;若为复制集,令o=1;若为mongos,查看要迁移的ns是否分片,如果分片,检测数据分片类型,若都为复制集,令o=1.检测目标类型,若为mongod,令s=0.若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记录时间点的记录,并逐条应用到目标节点.
问题日志貌似打印有一点点问题.性能没测试.代码有点烂.目前进度 :完成可运行的版本,没有完整测试.
原文地址:mongodb迁移工具, 感谢原作者分享。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product