zoukankan      html  css  js  c++  java
  • mongodb 分片集群+副本集搭建

    节点规划:
    mongos:
    28015、28016、28017 
    
    
    configserver:
    28018、28019、28020(复制集)
    
    
    mongod:
    28021、28022、28023(复制集)
    
    28024、28025、28026(复制集)
    
    
    
    创建目录
    for i in  15 16 17 18 19 20 21 22 23 24 25 26 
      do 
      mkdir -p /mongodb/280$i/conf  
      mkdir -p /mongodb/280$i/data  
      mkdir -p /mongodb/280$i/log
    done
     
     
    编辑shard集群配置文件
     
    cat > /mongodb/28021/conf/mongod.conf <<'EOF'
    systemLog:
      destination: file
      path: /mongodb/28021/log/mongodb.log   
      logAppend: true
    storage:
      journal:
        enabled: true
      dbPath: /mongodb/28021/data
      directoryPerDB: true
      #engine: wiredTiger
      wiredTiger:
        engineConfig:
          cacheSizeGB: 1
          directoryForIndexes: true
        collectionConfig:
          blockCompressor: zlib
        indexConfig:
          prefixCompression: true
    net:
      bindIp: 127.0.0.1
      port: 28021
    replication:
      oplogSizeMB: 2048
      replSetName: sh1
    sharding:
      clusterRole: shardsvr
    processManagement: 
      fork: true
    EOF
     
     
    复制shard集群配置文件
    for i in 22 23 24 25 26  
      do  
       \cp /mongodb/28021/conf/mongod.conf /mongodb/280$i/conf/
    done
     
    
    修改配置文件端口
    for i in 22 23 24 25 26  
      do 
        sed -i "s#28021#280$i#g" /mongodb/280$i/conf/mongod.conf
    done
    
    
    修改配置文件复制集名称(replSetName)
    for i in 24 25 26  
      do 
        sed -i "s#sh1#sh2#g" /mongodb/280$i/conf/mongod.conf
    done
    
    
    启动shard集群
    for i in 21 22 23 24 25 26
      do  
        mongod -f /mongodb/280$i/conf/mongod.conf 
    done
    
    
    配置复制集
    mongo --host 127.0.0.1 --port 28021 admin
    
    config = {_id: 'sh1', members: [
        {_id: 0, host: '127.0.0.1:28021'},
        {_id: 1, host: '127.0.0.1:28022'},
        {_id: 2, host: '127.0.0.1:28023'}]
    }  
    
    rs.initiate(config) 
     
    
    配置复制集
    mongo --host 127.0.0.1 --port 28024 admin
     
    config = {_id: 'sh2', members: [
        {_id: 0, host: '127.0.0.1:28024'},
        {_id: 1, host: '127.0.0.1:28025'},
        {_id: 2, host: '127.0.0.1:28026'}]
    }
    
    rs.initiate(config)
     
     
    config集群配置
     
    创建主节点配置文件
     
    cat > /mongodb/28018/conf/mongod.conf <<'EOF'
    systemLog:
      destination: file
      path: /mongodb/28018/log/mongodb.conf
      logAppend: true
    storage:
      journal:
        enabled: true
      dbPath: /mongodb/28018/data
      directoryPerDB: true
      #engine: wiredTiger
      wiredTiger:
        engineConfig:
          cacheSizeGB: 1
          directoryForIndexes: true
        collectionConfig:
          blockCompressor: zlib
        indexConfig:
          prefixCompression: true
    net:
      bindIp: 127.0.0.1
      port: 28018
    replication:
      oplogSizeMB: 2048
      replSetName: configReplSet
    sharding:
      clusterRole: configsvr
    processManagement: 
      fork: true
    EOF
    
     
    将配置文件分发到从节点
    for i in 19 20 
      do  
       \cp /mongodb/28018/conf/mongod.conf /mongodb/280$i/conf/
    done
     
     
    修改配置文件端口信息
    for i in 19 20  
      do 
        sed -i "s#28018#280$i#g" /mongodb/280$i/conf/mongod.conf
    done
     
     
    启动configserver集群
    for i in 18 19 20
      do  
        mongod -f /mongodb/280$i/conf/mongod.conf 
    done
     
     
    配置configserver复制集
    mongo --host 127.0.0.1 --port 28018 admin
    
     
    配置复制集信息
    config = {_id: 'configReplSet', members: [
        {_id: 0, host: '127.0.0.1:28018'},
        {_id: 1, host: '127.0.0.1:28019'},
        {_id: 2, host: '127.0.0.1:28020'}]
    }
     
     
    rs.initiate(config)   
    
     
     
     
    mongos节点配置
    
    创建配置文件
    cat > /mongodb/28017/conf/mongos.conf <<'EOF'
    systemLog:
      destination: file
      path: /mongodb/28017/log/mongos.log
      logAppend: true
    net:
      bindIp: 127.0.0.1
      port: 28017
    sharding:
      configDB: configReplSet/127.0.0.1:28108,127.0.0.1:28019,127.0.0.1:28020
    processManagement: 
      fork: true
    EOF
     
    
    复制配置文件
    for i in 15 16  
      do  
       \cp /mongodb/28017/conf/mongos.conf /mongodb/280$i/conf/
    done
    
    
    修改配置文件端口信息
    for i in 15 16  
      do 
        sed -i "s#28017#280$i#g" /mongodb/280$i/conf/mongos.conf
    done
    
    
    启动mongos
    for i in 15 16 17
      do  
        mongos -f /mongodb/280$i/conf/mongos.conf
    done
    
    
    登陆到mongos
    mongo 127.0.0.1:28017/admin
    
    
    添加分片节点
    db.runCommand( { addshard : "sh1/127.0.0.1:28021,127.0.0.1:28022,127.0.0.1:28023",name:"shard1"} )
    db.runCommand( { addshard : "sh2/127.0.0.1:28024,127.0.0.1:28025,127.0.0.1:28026",name:"shard2"} )
    
    
    列出分片
    mongos> use admin
    mongos> db.runCommand( { listshards : 1 } )
    {
        "shards" : [
            {
                "_id" : "shard1",
                "host" : "sh1/127.0.0.1:28021,127.0.0.1:28022,127.0.0.1:28023",
                "state" : 1
            },
            {
                "_id" : "shard2",
                "host" : "sh2/127.0.0.1:28024,127.0.0.1:28025,127.0.0.1:28026",
                "state" : 1
            }
        ],
        "ok" : 1,
        "operationTime" : Timestamp(1600679934, 1),
        "$clusterTime" : {
            "clusterTime" : Timestamp(1600679934, 1),
            "signature" : {
                "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                "keyId" : NumberLong(0)
            }
        }
    }
    
    或者:
    mongos> use config
    mongos> db.shards.find()
    { "_id" : "shard1", "host" : "sh1/127.0.0.1:28021,127.0.0.1:28022,127.0.0.1:28023", "state" : 1 }
    { "_id" : "shard2", "host" : "sh2/127.0.0.1:28024,127.0.0.1:28025,127.0.0.1:28026", "state" : 1 }
    
    
    
    整体状态查看
    mongos> sh.status() 
  • 相关阅读:
    Linux C编程 GCC的使用
    51nod 1079 中国剩余定理
    51nod 1074 约瑟夫环 V2
    51nod 1073 约瑟夫环
    51nod 1072 威佐夫游戏
    ACM博弈论总结
    51nod 1069 Nim游戏
    2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 The Heaviest Non-decreasing Subsequence Problem
    2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 Overlapping Rectangles
    2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 Minimum Distance in a Star Graph
  • 原文地址:https://www.cnblogs.com/l10n/p/7422953.html
Copyright © 2011-2022 走看看