zoukankan      html  css  js  c++  java
  • Mongodb

    0.概述

    mongodb分片搭建,版本号4.0.2,以下除了创建opt文件夹以外,所有操作均在mongodb用户下面执行

    准备三台机器:
    192.168.56.81
    192.168.56.82
    192.168.56.83
    配置服务器端口号:20000
    路由服务器端口号:20004
    分片服务器端口号:20001/20002/20003

    1.启动Config Server,端口号设置为20000

    (把以下的步骤分别在三台服务器中执行一遍)
    mkdir /opt
    chown mongodb:mongodb /opt
    su - mongodb
    cd /opt
    mkdir -p ./shard/config
    mkdir -p ./shard/config/data
    mkdir -p ./shard/config/log

    mongod --configsvr --dbpath=/opt/shard/config/data --logpath=/opt/shard/config/log/config.log --port 20000 --fork --logappend --replSet rsconf --bind_ip_all

    2.在其中一台初始化Config Server集群

    192.168.56.81:
    mongo --port 20000

    use admin

    config = {_id: 'rsconf', members: [
    {_id: 0, host: '192.168.56.81:20000'},
    {_id: 1, host: '192.168.56.82:20000'},
    {_id: 2, host: '192.168.56.83:20000'}]}

    rs.initiate(config)
    rs.conf()
    rs.status()

    3.启动Query Routers,端口号设置为20004

    (把以下的步骤分别在三台服务器中执行一遍)
    cd /opt
    mkdir -p ./shard/mongos
    mkdir -p ./shard/mongos/log

    mongos --configdb rsconf/192.168.56.81:20000,192.168.56.82:20000,192.168.56.83:20000 --logpath=/opt/shard/mongos/log/mongos.log --port 20004 --fork --logappend

    4.启动Shard Server 1,集群名字rs1,端口号20001

    (把以下的步骤分别在三台服务器中执行一遍)
    cd /opt
    mkdir -p ./shard/replset/rs1/data
    mkdir -p ./shard/replset/rs1/log

    mongod --shardsvr --replSet rs1 --dbpath=/opt/shard/replset/rs1/data --logpath=/opt/shard/replset/rs1/log/rs1.log --fork --port 20001 --logappend --bind_ip_all

    5.在其中一台初始化Shard Server副本集

    192.168.56.81:
    mongo --port 20001

    use admin

    config = {_id: 'rs1', members: [
    {_id: 0, host: '192.168.56.81:20001'},
    {_id: 1, host: '192.168.56.82:20001'},
    {_id: 2, host: '192.168.56.83:20001', 'arbiterOnly':true}]}

    rs.initiate(config)

    6.重复第4,5步

    注意修改 rs1 --> rs2, rs3
    注意修改 20001 --> 20002, 20003

    7.登陆mongos路由

    192.168.56.81:
    mongo --port 20004

    use admin

    db.runCommand({"addshard":"rs1/192.168.56.81:20001,192.168.56.82:20001,192.168.56.83:20001"});
    db.runCommand({"addshard":"rs2/192.168.56.81:20002,192.168.56.82:20002,192.168.56.83:20002"});
    db.runCommand({"addshard":"rs3/192.168.56.81:20003,192.168.56.82:20003,192.168.56.83:20003"});

    激活分片
    db.runCommand({"enableSharding":"test"}); #test是数据库名字
    db.runCommand({"shardCollection":"test.students",key:{name:1}}); #test.students是集合名字

    8.查看分片的状态

    db.printShardingStatus()

    9.验证分片情况

    for (var x=1; x<200000; x++) {
    db.students.insert({"name":"fuckmongo - " + x,"stuid":x});
    }

    for (var x=1; x<200000; x++) {
    db.students.insert({"name":"lovemongo - " + x,"stuid":x});
    }

    for (var x=1; x<200000; x++) {
    db.students.insert({"name":"hatemongo - " + x,"stuid":x});
    }

    for (var x=1; x<2000000; x++) {
    db.students.insert({"name":"moremongo - " + x,"stuid":x});
    }

    rs.status()
    db.students.stats()

  • 相关阅读:
    【转】微服务架构模式简介
    大话微服务
    Howto: 在ArcGIS10中将地图文档(mxd文档)批量保存到之前版本
    在Google Maps中导出KML文件
    ASP.NET(c#) 日期选择控件的另一种实现方法
    asp.net中的时间日期选择控件
    JAVA实现Excel导入/导出【转】
    将Gridview中的数据出到excel或word中
    asp.net导出excel并弹出保存提示框
    在ASP.NET中将GridView数据导出到Word、Excel
  • 原文地址:https://www.cnblogs.com/ddzj01/p/9930120.html
Copyright © 2011-2022 走看看