zoukankan      html  css  js  c++  java
  • mongodb切片配置方法

    ---------------------------------切片架构图-------------------------------------------------------------------------------
              切片1  切片2  切片3
         |          |           |
                  ------------------
                             |
                             |                 | -----配置服务器(主)
    用户---------->路由-----------|-----配置服务器(从1)
                                     |-----配置服务器(从2)

    注:mongo 3.4版本以后配置服务器必须是复本集,因此看到有的教程配置服务器是一台时都是老版本了。
    -----------------------------------------------------------------------------------------------------------------------------------

    步骤:
    1、先配置配置服务器的复本集
    1)主 ./mongod --configsvr --dbpath /home/jack/mongoData01/data --logpath /home/jack/mongoData01/log/log --port 3000 --replSet myset 
    2)从1 ./mongod --configsvr --dbpath /home/jack/mongoData02/data --logpath /home/jack/mongoData02/log/log --port 3100 --replSet myset 
    3)从2 ./mongod --configsvr --dbpath /home/jack/mongoData03/data --logpath /home/jack/mongoData03/log/log --port 3300 --replSet myset 
    **说明:--configsvr一定要加上,说明该服务器是配置服务器
    4)主从全部起动,用shell登陆主,然后设置副本集
    (1)、配置信息
    rsconf={
       "_id" : "myset",
        "members" : [
          {
            "_id" : 0,
            "host" : "172.16.60.180:3000"
          }
        ]
      }
    (2)、初始化
       rs.initiate(rsconf)
    (3)、添加集群
       rs.add("172.16.60.180:3100")
       rs.add("172.16.60.180:3200")
    2、配置路由服务器并启动
      ./mongos --configdb myset/172.16.60.180:3000,172.16.60.180:3100,172.16.60.180:3200 --logpath /home/jack/mongoData04/log/log --port 3300 
      说明:configdb后面的myset必须与配置服务器上的副本集名字一致。
    3、配置切片服务器
    1) cd /home/jack/mongodb-linux-x86_64-3.4.5/bin
      ./mongod --dbpath /home/jack/mongoData06/data --logpath /home/jack/mongoData01/log/log --port 3400 --shardsvr
    2) cd /home/jack/mongodb-linux-x86_64-3.4.5/bin
      ./mongod --dbpath /home/jack/mongoData06/data --logpath /home/jack/mongoData01/log/log --port 3500 --shardsvr
      **说明:--shardsvr一定要加上,说明该服务器是切片服务器
    3、连接路由并添加切片
    1)sh.addShard('172.16.60.180:3400')
    2)sh.addShard('172.16.60.180:3500')
    3)sh.addShard('172.16.60.180:3600')
    4、添加待分片的库
    sh.enableSharding(databaseName)
    5、添加待分片的表
    sh.shardCollection('dbName.CollectionName',{field:1})
    --------------------------------------------------------------------------------------------------------------
    **说明:1)若需要分片时,数据已经存在,则需要对collection中的某一字段先创建索引
    2)一旦分片键和分片值确定下来了就不可以改变。
    其他命令:
    1)查看其他集群状态信息
    sh.status()
    2)自定义分片(例子)
    for(var i=0;i<40;i++){
    sh.splitAt('dbName.CollectionName',{field:i*1000})
    }
    3)修改chunck大小(单位:M)
    (1)、use config
    (2)、db.settings.save({_id:"chuncksize",value:64})

    ----------------------------------------------------------------------------------------------------------------

  • 相关阅读:
    《深度剖析CPython解释器》16. Python函数机制的深度解析(第三部分): 闭包的底层实现以及调用
    《深度剖析CPython解释器》15. Python函数机制的深度解析(第二部分): 函数在底层是如何被调用的
    《深度剖析CPython解释器》14. Python函数机制的深度解析(第一部分): 函数在底层的数据结构、以及它的创建方式
    《深度剖析CPython解释器》13. 剖析Python的流程控制语句(if、for、while),以及异常捕获机制
    QT: QObject::connect()剖析
    C++ 点滴 (二)
    飞书有时黑屏的解决办法
    QT:显示器数量检测
    使用WinRar 制作自定义安装包
    QT-Mac:QT的SetText()在有些Mac OS系统上未显示
  • 原文地址:https://www.cnblogs.com/runnerjack/p/7327727.html
Copyright © 2011-2022 走看看