网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

MongoDB将collection变为shardcollection

       MongoDB随着业务量增长,可以把之前不是分片的集合变为分片集合,但是要注意的是,一旦指定shard key以后就无法直接更改了。下面为从添加shard server到shard key具体操作步骤

1)添加shard server
添加情境:

  • 1.1)数据存储目录不够
  • 1.2)无法满足当前生产写操作
  • 1.3)chunk太多

创新互联公司从2013年创立,是专业互联网技术服务公司,拥有项目网站设计、网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元东源做网站,已为上家服务,为东源各地企业和个人服务,联系电话:18982081108

3)将集合变为分片集合

      添加分片的键需要创建索引,否则报错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,数据会自动打散。如果没有开启,头一次需要自己手动迁下数据:

5)删除分片集合的分片

      sh.setBalancerState(true);保证balance是开启的,才会将被删除的分片上的数据会自动迁移到其他分片上,draining" : true,  --正在迁移数据

      这个命令可以重复执行以便查看迁移的状态,remaining 字段表示剩余数据块的数量

 

6)删除未分片的主分片

      数据库未分片,该数据库就会选择一个分片作为主分片。Db.collection.stats()中"primary" : "mg-test-shard01"显示就是主分片,删除这个主分片,需要先将集合主分片改为其他分片,然后才能删除主分片

点击(此处)折叠或打开

  1. db.runCommand( { movePrimary: "db_name", to: "new_shard" })
  2. db.runCommand({removeshard:"mg-test-shard01/10.9.161.65:27019,10.9.33.70:27019"})



本文标题:MongoDB将collection变为shardcollection
文章网址:http://bjjierui.cn/article/psphdj.html