• 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()

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

  • 相关阅读:
    gulp编译sass
    Material Design学习
    js爬虫心得
    js爬虫
    angularjs
    sass心得
    矩阵与线性代数学习笔记
    2-SAT学习笔记
    一个有趣的题目【二分答案,2-SAT,线段树优化】
    vijos训练之——星辰大海中闪烁的趣题
  • 原文地址:https://www.cnblogs.com/de0319gh/p/3838278.html
Copyright © 2020-2023  润新知