# 切片相关的命令

# 将按区分片的User表取消切片

步骤一:

sh.disableBalancing("testZone.users")   #关掉平衡功能
sh.removeTagRange(                      #移除CN区域范围
  "testZone.users",
  { "country" : "CN", "_id" : MinKey },
  { "country" : "CN", "_id" : MaxKey },
  "CN"
)
sh.removeShardTag("rs1","CN")           #移除切片rs1的CN标签

sh.removeTagRange(                      #移除RU区域范围
  "testZone.users",
  { "country" : "RU", "_id" : MinKey },
  { "country" : "RU", "_id" : MaxKey },
  "RU"
)
sh.removeShardTag("rs0","RU")           #移除切片rs0的RU标签
sh.moveChunk("testZone.users",{ "country" : "CN", "_id" : "*" }, "rs0") #将rs1上的数据动到rs0上

步骤二: 执行下面删除切片键的步骤,将旧的切片键删除。

# 删除切片键

mongos> use config
switched to db config
mongos> db.collections.remove({_id:"test.coll"})  
WriteResult({ "nRemoved" : 1 })
mongos> db.chunks.remove({ns:"test.coll"})
WriteResult({ "nRemoved" : 20 })
mongos> db.locks.remove({_id:"test.coll"})
WriteResult({ "nRemoved" : 1 })
mongos> use admin
switched to db admin
mongos> db.adminCommand("flushRouterConfig")  ##刷新路由配置