mongodb 集群shard_MongoDB中缩减Shard集群(删除一个Shard)

对MongoDB的Shard集群来说,添加一个分片很简单,AddShard就可以了。

但是缩减集群(删除分片)这种一般很少用到。由于曙光的某服务器又挂了,所以我们送修之前必须把它上面的数据自动迁移到其他Shard上。

1、执行RemoveShard命令

db.runCommand( { removeshard: "your_shard_name" } )

{ msg : "draining started successfully" , state: "started" , shard :"mongodb0" , ok : 1 }

上面这句会立即返回,实际在后台执行。

2、查看迁移状态

我们可以反复执行上面语句,查看执行结果。

db.runCommand( { removeshard: "your_shard_name" } )

{ msg: "draining ongoing" , state: "ongoing" , remaining: { chunks: 42, dbs : 1 }, ok: 1 }

从上面可以看到,正在迁移,还剩下42块没迁移完。

当remain为0之后,这一步就结束了。

3、移出非Shard数据

如果你要删除的Shard分片恰好是primary,那么执行这一步,否则请跳过!

db.runCommand( { movePrimary: "myapp", to: "mongodb1" })

这次就不是立即返回了,需要很久,然后会返回如下:

{ "primary" : "mongodb1", "ok" : 1 }

4、最后的清理

上面步骤都完成后,还需要再执行一次RemoveShard,清理残余数据。

db.runCommand( { removeshard: "mongodb0" } )

执行成功后,会如下结果:

{ msg: "remove shard completed succesfully" , stage: "completed", host: "mongodb0", ok : 1 }

显示completed后,就可以安心的关闭mongod的进程了。

没有发现相关文章...


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部