MongoDB随着业务量增长,可以把之前不是分片的集合变为分片集合,但是要注意的是,一旦指定shard key以后就无法直接更改了。下面为从添加shard server到shard key具体操作步骤
1)添加shard server
添加情境:
点击(此处)折叠或打开
2)对数据库product启用分片
点击(此处)折叠或打开
添加分片的键需要创建索引,否则报错please create an index that starts with the shard key before sharding
根据上面错误提示要在分片key上面创建索引,该索引要在对应库下建立,如果在mongos的admin库下建立会报错:"errmsg" : "{ configs1/10.9.33.70:26017,10.9.161.65:26017: \"result without error message returned : {}\" }"
点击(此处)折叠或打开
4)手动迁移数据
如果开启balance,数据会自动打散。如果没有开启,头一次需要自己手动迁下数据:
点击(此处)折叠或打开
只要目的shard和源sharad同意指定的chunk由目的shard接管,命令就返回。迁移chunk是一个比较复杂的过程,它包括两个内部通信协议:
5)删除分片集合的分片
点击(此处)折叠或打开
这个命令可以重复执行以便查看迁移的状态,remaining 字段表示剩余数据块的数量
6)删除未分片的主分片
数据库未分片,该数据库就会选择一个分片作为主分片。Db.collection.stats()中"primary" :
"mg-test-shard01"显示就是主分片,删除这个主分片,需要先将集合主分片改为其他分片,然后才能删除主分片
点击(此处)折叠或打开
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31324175/viewspace-2133421/ ,如需转载,请注明出处,否则将追究法律责任。