zoukankan      html  css  js  c++  java
  • MongoDB 高可用集群搭建(3.4)

      一、架构概况
    192.168.56.101
    192.168.56.102
    192.168.56.103
    OS为centos 7.2

    架构图:

           规划5个组件对应的端口号,由于每台机器均需要同时部署 mongos、config server 、shard1、shard2、shard3,所以需要用端口进行区分。
           端口可以自由定义,本架构中 mongos为 20000, config server 为 21000, shard1为 22001 , shard2为22002, shard3为22003.

        二、创建相应的目录

    #建立mongos及日志目录
    mkdir -p /data/mongodb/mongos/log
    #建立config server 数据文件存放目录
    mkdir -p /data/mongodb/config/data
    #建立config server 日志文件存放目录
    mkdir -p /data/mongodb/config/log
    #建立shard1 数据文件存放目录
    mkdir -p /data/mongodb/shard1/data
    #建立shard1 日志文件存放目录
    mkdir -p /data/mongodb/shard1/log
    #建立shard2 数据文件存放目录
    mkdir -p /data/mongodb/shard2/data
    #建立shard2 日志文件存放目录
    mkdir -p /data/mongodb/shard2/log
    #建立shard3 数据文件存放目录
    mkdir -p /data/mongodb/shard3/data
    #建立shard3 日志文件存放目录
    mkdir -p /data/mongodb/shard3/log

        三、Config server配置

    cd /data/mongodb/config
    [mongo@mongo config1]$ vi mongo.conf
    dbpath=/data/mongodb/config/data/
    logpath=/data/mongodb/config/log/config.log
    logappend=true
    port=21000
    fork=true
    rest=true
    httpinterface=true
    configsvr=true
    replSet=cfgReplSet
    
    /app/mongo/bin/mongod -f /data/mongodb/config/mongo.conf
    
    连接到任意一台配置服务器上
    /app/mongo/bin/mongo --host 192.168.56.101 --port 21000
    创建配置服务器副本集
    rs.initiate({_id:"cfgReplSet",configsvr:true,members:[{_id:0,host:"192.168.56.101:21000"},{_id:1,host:"192.168.56.102:21000"},{_id:2,host:"192.168.56.103:21000"}]})

        四、Shard server配置

    cd /data/mongodb/shard1
    [mongo@mongo share_rs1]$ vi mongo.conf
    dbpath=/data/mongodb/shard1/data
    logpath=/data/mongodb/shard1/log/shard1.log
    logappend=true
    port=22001
    fork=true
    rest=true
    httpinterface=true
    replSet=shard1ReplSet
    shardsvr=true
    
    /app/mongo/bin/mongod -f /data/mongodb/shard1/mongo.conf --nojournal 
    
    连接任意一台分片服务器
    /app/mongo/bin/mongo --host 192.168.56.101 --port 22001
    创建副本集并初始化
    rs.initiate({_id:"shard1ReplSet",members:[{_id:0,host:"192.168.56.101:22001"},{_id:1,host:"192.168.56.102:22001"},{_id:2,host:"192.168.56.103:22001"}]})

        以相同的方式配置Shard server 2,Shard server 3

       五、Mongos配置

    cd /data/mongodb/mongos
    [mongo@mongo mongs1]$ vi mongo.conf 
    logpath=/data/mongodb/mongos/log/mongos.log
    logappend=true
    port=20000
    fork=true
    configdb=cfgReplSet/192.168.56.101:21000,192.168.56.102:21000,192.168.56.103:21000
    
    /app/mongo/bin/mongos -f /data/mongodb/mongos/mongo.conf

       六、添加分片到集群

    登录路由服务客户端
    /app/mongo/bin/mongo --host 192.168.56.101 --port 20000
    添加分片到集群
    sh.addShard("shard1ReplSet/192.168.56.101:22001,192.168.56.102:22001,192.168.56.103:22001")
    依次添加shard2  shard3
    sh.addShard("shard2ReplSet/192.168.56.101:22002,192.168.56.102:22002,192.168.56.103:22002")
    sh.addShard("shard3ReplSet/192.168.56.101:22003,192.168.56.102:22003,192.168.56.103:22003")
    
    --Enable Sharding for a Database
    sh.enableSharding("test")
    
    --Shard a Collection
    sh.shardCollection("test.testdoc", { id: 1})
    

       七、测试

    /app/mongo/bin/mongo --host 192.168.56.102 --port 20000
    插入测试数据
    mongos> use test
    for(var i = 1; i <= 100000; i++){
      db.testdoc.save({id:i,"message":"message"+i});
    }
    mongos> db.testdoc.status()

     

  • 相关阅读:
    AngularJS指令的详解
    Linux(Ubuntu)下如何安装JDK
    Hibernate的三种状态
    JS是按值传递还是按引用传递
    git分支管理
    Hibernate注解映射联合主键的三种主要方式
    Linux下解决用户不能执行sudo的方法
    【GStreamer开发】GStreamer基础教程03——动态pipeline
    【GStreamer开发】GStreamer基础教程02——GStreamer概念
    【GStreamer开发】GStreamer基础教程02——GStreamer概念
  • 原文地址:https://www.cnblogs.com/vadim/p/7100683.html
Copyright © 2011-2022 走看看