Mongodb添加删除分片与非分片表维护

  

去年的笔记,接着发

一、如何移除分片

1,确认均衡器已经开启

mongos>, sh.getBalancerState ()   真正的


2,移除分片

注:在管理db下执行命令。

mongos> use 管理   switched 用db 管理   mongos>, db.runCommand (, {, removeShard:“shard3”,},)   {   “味精”,:,“draining  started 成功”,   “状态”,:“开始”,   “碎片”,:,“shard3”,   “ok”,: 1   }


3,检查迁移的状态

同样执行

mongos> use 管理   switched 用db 管理   mongos>, db.runCommand (, {, removeShard:“shard3”,},)   {   “味精”,:,“draining 持续的”,   “状态”,:“持续的”,   “剩余”,:,{   “块”,:,NumberLong (3),   “星展”,:,NumberLong (0)   },   “ok”,: 1   }

中剩余的块表示还有多少数据块未迁移。


4,移除未分片数据

在一个集群中,数据库与unsharded集合存储那些收藏> mongos> use 管理   switched 用db 管理   mongos>, db.runCommand (, {, removeShard:“shard3”,},)   {   “味精”,:,“removeshard  completed 成功”,   “状态”,:“完成”,   “碎片”,:,“shard3”,   “ok”,: 1   }

如果状态为完成,表示已完成迁移。


二、添加分片

1,首先确认均衡器已经开启

mongos>, sh.getBalancerState ()   真正的

2,执行添加分片的命令

如果出现以下错,误删除目标shard3上的test1数据库,再次执行命令

mongos>, sh.addShard (“shard3/192.168.137.138:27019”)   {   “ok”,: 0,   “errmsg”,:,“可以't  add  shard  shard3/192.168.137.138:27019  because  a  local  database ‘test1, exists 拷贝another  shard1: shard1/192.168.137.111:27017, 192.168.137.75:27017”   }      mongos>, sh.addShard (“shard3/192.168.137.138:27019”)   {,“shardAdded”:,“shard3”,“ok”,:, 1,}

最后运行sh.status()命令确认迁移是否成功,可能会花比较长的时间。



Mongodb添加删除分片与非分片表维护