zoukankan      html  css  js  c++  java
  • centos7单机搭建mongodb集群

    1.配置MongoDB的yum源

    vim /etc/yum.repos.d/mongodb-org-3.4.repo #添加以下内容:

    [mongodb-org-3.4]

    name=MongoDB Repository

    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/

    gpgcheck=1

    enabled=1

    gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc

    2.安装MongoDB

    yum -y install mongodb-org

    3.规划好端口IP

    第一个副本集rs1

    share1 127.0.0.1:30011:/data/share_rs/share_rs1/share1/data/

    share2 127.0.0.1:40011:/data/share_rs/share_rs1/share2/data/

    share3 127.0.0.1:50011:/data/share_rs/share_rs1/share3/data/

    第二个副本集rs2

    share1 127.0.0.1:30012:/data/share_rs/share_rs2/share1/data/

    share2 127.0.0.1:40012:/data/share_rs/share_rs2/share2/data/

    share3 127.0.0.1:50012:/data/share_rs/share_rs2/share3/data/

    第三个副本集rs3

    share1 127.0.0.1:30013:/data/share_rs/share_rs3/share1/data/

    share2 127.0.0.1:40013:/data/share_rs/share_rs3/share2/data/

    share3 127.0.0.1:50013:/data/share_rs/share_rs3/share3/data/
    config server
    config1 127.0.0.1:30002:/data/share_rs/config/config1/data/
    config2 127.0.0.1:40002:/data/share_rs/config/config2/data/
    config3 127.0.0.1:50002:/data/share_rs/config/config3/data/
     
    mongos
    mongos1 127.0.0.1:30001:/data/share_rs/mongos/mongos1/data/
    mongos2 127.0.0.1:40001:/data/share_rs/mongos/mongos2/data/
    mongos3 127.0.0.1:50001:/data/share_rs/mongos/mongos2/data/
     
    4.创建相应的目录

    mkdir -p /data/share_rs/{share_rs1,share_rs2,share_rs3}/{share1,share2,share3}/{data,log}
    mkdir -p /data/share_rs/mongos/{mongos1,mongos2,mongos3}/{data,log}
    mkdir -p /data/share_rs/config/{config1,config2,config3}/{data,log}

    5.Config server搭建副本集,配置文件(其他副本参考修改端口以及ip)

    cat > /data/share_rs/config/config1/mongo.conf <<EOF

    dbpath=/data/share_rs/config/config1/data/
    logpath=/data/share_rs/config/config1/log/mongo.log
    logappend=true
    port=30002
    fork=true   #后台执行
    rest=true
    httpinterface=true
    configsvr=true   #配置服务器
    replSet=cfgReplSet  #config server配置集cfgReplSet

    EOF

    6.分别启动三个config server

     mongod -f /data/share_rs/config/config1/mongo.conf

     mongod -f /data/share_rs/config/config2/mongo.conf

     mongod -f /data/share_rs/config/config3/mongo.conf

    7.登录任意一个config server,初始化配置副本集

    mongo 127.0.0.1:30002/admin
    config = { _id:"cfgReplSet", members:[
    {_id:0,host:"127.0.0.1:30002"},
    {_id:1,host:"127.0.0.1:40002"},
    {_id:2,host:"127.0.0.1:50002"}
    ]
    };

    初始化

    rs.initiate(config)

    8.分片服务器搭建副本集,配置文件(其他副本参考修改端口以及ip)

    第一个副本集的一个分片

    cat >/data/share_rs/share_rs1/share1/mongo.conf<<EOF

    dbpath=/data/share_rs/share_rs1/share1/data
    logpath=/data/share_rs/share_rs1/share1/log/mongo.log
    logappend=true
    port=30011
    fork=true
    rest=true
    httpinterface=true
    replSet=rs1
    shardsvr=true

    EOF

    第二个副本集的一个分片

    cat >/data/share_rs/share_rs2/share1/mongo.conf<<EOF

    dbpath=/data/share_rs/share_rs2/share1/data
    logpath=/data/share_rs/share_rs2/share1/log/mongo.log
    logappend=true
    port=30012
    fork=true
    rest=true
    httpinterface=true
    replSet=rs2
    shardsvr=true

    EOF

    第三个副本集的一个分片

    cat >/data/share_rs/share_rs3/share1/mongo.conf<<EOF

    dbpath=/data/share_rs/share_rs3/share1/data
    logpath=/data/share_rs/share_rs3/share1/log/mongo.log
    logappend=true
    port=30013
    fork=true
    rest=true
    httpinterface=true
    replSet=rs3
    shardsvr=true

    EOF

    9.启动各分片以及相应的副本

    mongod -f /data/share_rs/share_rs1/share1/mongo.conf

    mongod -f /data/share_rs/share_rs1/share2/mongo.conf

    mongod -f /data/share_rs/share_rs1/share3/mongo.conf

    mongod -f /data/share_rs/share_rs2/share1/mongo.conf

    mongod -f /data/share_rs/share_rs2/share2/mongo.conf

    mongod -f /data/share_rs/share_rs2/share3/mongo.conf

    mongod -f /data/share_rs/share_rs3/share1/mongo.conf

    mongod -f /data/share_rs/share_rs3/share2/mongo.conf

    mongod -f /data/share_rs/share_rs3/share3/mongo.conf
     
    10.设置副本集
    登录第一个副本的一个分片,设置副本集

    mongo 127.0.0.1:30011/admin
    config = { _id:"rs1", members:[
    {_id:0,host:"127.0.0.1:30011"},
    {_id:1,host:"127.0.0.1:40011"},
    {_id:2,host:"127.0.0.1:50011",arbiterOnly:true}
    ]
    };

    初始化
    rs.initiate(config)

    登录第二个副本的一个分片,设置副本集

    mongo 127.0.0.1:30012/admin
    config = { _id:"rs2", members:[
    {_id:0,host:"127.0.0.1:30012"},
    {_id:1,host:"127.0.0.1:40012"},
    {_id:2,host:"127.0.0.1:50012",arbiterOnly:true}
    ]
    };

    rs.initiate(config)

    登录第三个副本的一个分片,设置副本集

    mongo 127.0.0.1:30013/admin
    config = { _id:"rs3", members:[
    {_id:0,host:"127.0.0.1:30013"},
    {_id:1,host:"127.0.0.1:40013"},
    {_id:2,host:"127.0.0.1:50013",arbiterOnly:true}
    ]
    };
    rs.initiate(config)

    11.配置3个路由服务器mongos(其他副本参考修改端口以及ip)

    cat >/data/share_rs/mongos/mongos1/mongo.conf<<EOF

    logpath=/data/share_rs/mongos/mongos1/log/mongo.log
    logappend=true
    port=30001
    fork=true
    configdb=cfgReplSet/127.0.0.1:30002,127.0.0.1:40002,127.0.0.1:50002

    EOF

    启动3个mongos server

    mongos -f /data/share_rs/mongos/mongos1/mongo.conf

    mongos -f /data/share_rs/mongos/mongos2/mongo.conf

    mongos -f /data/share_rs/mongos/mongos3/mongo.conf

    12.目前前搭建了mongodb配置服务器、路由服务器,各个分片服务器,不过应用程序连接mongos 路由服务器并不能使用分片机制,还需要在程序里设置分片配置,让分片生效

    连接到第一个mongos上

    mongo 127.0.0.1:30001/admin

    db.runCommand({addshard:"rs1/127.0.0.1:30011,127.0.0.1:40011,127.0.0.1:50011",allowLocal:true});
    db.runCommand({addshard:"rs2/127.0.0.1:30012,127.0.0.1:40012,127.0.0.1:50012"});
    db.runCommand({addshard:"rs3/127.0.0.1:30013,127.0.0.1:40013,127.0.0.1:50013"});

    13.将集合进行分片

    db.runCommand({enablesharding:"testcol"});
    -- >; 指定testdb分片生效

    db.runCommand({shardcollection: "testcol.testdoc",key : {id: 1} } )
    -- >; 指定数据库里需要分片的集合和片键

    -->; 插入测试数据
    for (var i = 1; i <= 100000; i++){ db.testdoc.save({id:i,"name":"harvey"})}; -- >; 查看该集合的状态
    db.testdoc.stats();

    使用的时候,如果从服务器不能查看输入rs.slaveOk();命令
  • 相关阅读:
    LeetCode:387字符串中唯一出现一一次的字符
    LeetCode-79. 单词搜索
    LeetCode-75. 颜色分类
    LeetCode-121. 买卖股票的最佳时机
    LeetCode-58. 最后一个单词的长度
    LeetCode-1103. 分糖果 II
    LeetCode:283. 移动零
    LeetCode:38. 外观数列
    LeetCode:70. 爬楼梯
    获取美拍视频的链接--JS分析
  • 原文地址:https://www.cnblogs.com/zhangdajin/p/12938988.html
Copyright © 2011-2022 走看看