前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mongodb移除分片删除分片上数据库和添加分片

mongodb移除分片删除分片上数据库和添加分片

作者头像
拓荒者
发布2019-09-12 10:13:17
1.3K0
发布2019-09-12 10:13:17
举报
文章被收录于专栏:运维经验分享

mongodb移除分片删除分片上数据库和添加分片

2018年01月12日 19:09:23 冰雪Love齐迹 阅读数 5369更多

分类专栏: mongodb学习

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/liqi_q/article/details/79047361

首先我们要移除的分片之后再次添加此分片时会出现添加失败的情况,需要在添加的分片上登录进行删除此分片之前数据库的历史数据比如testdb,删除分片上的数据库之后就可重新添加此分片到mongos中

1、执行RemoveShard命令 

db.runCommand( { removeshard: "your_shard_name" } )  { msg : "draining started successfully" , state: "started" , shard :"mongodb0" , ok : 1 }  “注意:该命令至少执行两次才能成功删除,执行到state为completed才真正删除,否则就是没用删除成功,该分片处于"draining" : true状态,该状态下不但该分片没用删除成功,而且还影响接下来删除其他分片操作,遇到该状态再执行一次removeshard即可,最好就是删除分片时一直重复执行删除命令,直到state为completed;  还有一个需要注意的地方就是:被成功删除的分片如果想要再加入集群时,必须将data数据目录清理干净才可以再加入集群,否则即使能加入成功也不会存储数据,集合都不会被创建  另外:在删除分片的时有可能整个过程出现无限"draining" : true状态,等多久还是这样,而且分片上面的块一个都没有移动到别的分片,解决办法是:在config的config数据库的shard集合中找到该分片的信息,并将draining字段由True改为False,再继续试着删除操作”  上面这句会立即返回,实际在后台执行。  2、查看迁移状态  我们可以反复执行上面语句,查看执行结果。  db.runCommand( { removeshard: "your_shard_name" } ) { msg: "draining ongoing" , state: "ongoing" , remaining: { chunks: 42, dbs : 1 }, ok: 1 }  从上面可以看到,正在迁移,还剩下42块没迁移完。  当remain为0之后,这一步就结束了。  3、移出非Shard数据(如果开始就知道是primary可以直接执行 步骤3和4即可,1和2不需要执行)  如果你要删除的Shard分片恰好是primary,那么执行这一步,否则请跳过!  db.runCommand( { movePrimary: "数据库名称", to: "分片名称" })  这次就不是立即返回了,需要很久,然后会返回如下:  { "primary" : "mongodb1", "ok" : 1 }  4、最后的清理  上面步骤都完成后,还需要再执行一次RemoveShard,清理残余数据。  db.runCommand( { removeshard: "mongodb0" } )  执行成功后,会如下结果:  { msg: "remove shard completed succesfully" , stage: "completed", host: "mongodb0", ok : 1 }  显示completed后,就可以安心的关闭mongod的进程了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • mongodb移除分片删除分片上数据库和添加分片
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档