mongoDB迁移工具mongo-migrate使用介绍

功能

将一个集群,复制集或者单机 mongoDB 中的一个集合的数据,迁移到另一个集群,复制集或者单机 mongoDB. 如果源集合使用了分片,会在目标自动分片,并按照源集合的 chunk 进行 split 与随机 movechunk. 如果源集合存在索引,会拷贝索引. 如果源使用了复制集,会使用 oplog 做增量迁移.

参数

--src "ip:host" 源地址 --srcDB "db name" 要迁移的数据库名称 --srcColl "collection name" 要迁移的集合名称 --srcUserName "user name" 源 auth 用户名 --srcPassWord "password" 源 auth 密码 --dest "ip:host" 目标地址 --destDB "db name" 目标数据库名称 --destColl "collection name" 目标集合名称 --destUserName "user name" 目标 auth 用户名 --destPassWord "password" 目标 auth 密码 --findAndInsertWorkerNum 10 拷贝数据时并发读写goroutine 数目

--writeAck 1 "same with w param in other driver" --writeMode "Majority" "see mongodb doc if needed" --journal true "whether use journal" --fsync false "whether wait for fsync for each write"

已知bug

  1. 拷贝索引时,文本索引不能正常建立

范围迁移使用

范围迁移为应对数据量较多时的方法,使用有许多限制,相关参数如下: --minKey 范围最小值(包含) --maxKey 范围最大值(不包含) --keyType "int or string" key 的类型,只支持数字与字符串 这里的范围是进行 shardCollection 时第一个 key 的范围 范围迁移的一些行为:

  • 如果目标 ns 已经分片,则不进行分片 以及 预分配操作.
  • 如果指定了范围为 int 类型的0 - 100 ,则所有非 int 型的数据不能被迁移.
  • int 型包含 int64与 float64,对应于在 mongoDB 中直接写入{ key:1 } 与 {key:NumberLong:1}

额外参数,-- withOutKeyType string 一般用来配合范围迁移使用,使用场景: 有集合, shardkey 的第一个 key 99% 都为数字,先通过范围迁移: 0-100,100-200...将99% 数据迁移. 再使用非范围迁移,并指定 --withOutKeyType "int" 将剩余部分数据迁移.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15498/viewspace-1966782/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15498/viewspace-1966782/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值