MongoDB 分片操作

添加分片

    use admin

    //添加分片节点,每个分片都是一个副本集【allowLocal:true仅仅开发时才将分片配置到本地,生产时不能这样】

    db.runCommand({addshard:"localhost:9335",allowLocal:true})

    db.runCommand({addshard:"localhost:9336",allowLocal:true})

    db.runCommand({addshard:"localhost:9337",allowLocal:true,”maxSize”:20000})   注意:还可以为不同分片设置大小”maxSize”:20000(20gb)

 

    //要分片的数据库

    db.runCommand({enablesharding:"mydb"})

    //设置要分片的集合:users集合,name字段为key来分片

    db.runCommand({shardcollection:"mydb.users",key:{name:1}})

    db.runCommand({shardcollection:"mydb.users",key:{_id:1,name:1,name:1}})      【如果出现"errmsg" : "please create an index that starts with the shard key before sharding.",请创建索引】

查看分片结果

 

    //查看分区情况

 

    use mydb

 

    db.users.getShardDistribution()

 

    db.users.stats();

向已经分片的数据中,再次添加分片

 

    db.runCommand({addshard:"localhost:9337",allowLocal:true})     会自动平衡数据

删除分片

 

    db.runCommand({removeshard:"localhost:9335"})   

 

    db.runCommand({removeshard:"localhost:9336"})

 

    db.runCommand({removeshard:"localhost:9337"})

 

    //【如果删除的是主节点,还需要】

 

    db.runCommand({"moveprimary" : "mydb","to" : "localhost:9336"}) 

 

    //【删除完后还需要在执行一次db.runCommand({removeshard:"localhost:xxxx"})   才能完整删除】

 

    //【观察删除情况:】

 

    use admin

 

    db.printShardingStatus()

 

    //【这种方式不能删除所有分片,最后一个分片是不能删除的】

 

 

 

转载于:https://www.cnblogs.com/de0319gh/p/3838278.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值