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

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

  • 相关阅读:
    记录一次在 VirtualBox的添加共享windows文件后,发现没有共享文件的事
    linux 压缩解压缩命令
    关于erlang中的timer:tc/3
    python基础:while循环,for循环
    grep和正则表达式参数
    grep和正则表达式
    nginx反向代理三台web
    安装nginx包
    部署samba
    samba了解
  • 原文地址:https://www.cnblogs.com/de0319gh/p/3838278.html
Copyright © 2020-2023  润新知