• MongoDB 分片副本集集群搭建


    配置准备

    三台机器:

    A(193.168.10.101) 
    
    B(193.168.10.102)
    
    C(193.168.10.103)
    MongoDB 安装目录:/usr/local/mongodb
    MongoDB 数据库目录:/usr/local/mongodb/data
    
    MongoDB 日志目录:/usr/local/mongodb/log
    MongoDB 配置文件:/usr/local/mongodb/conf/mongodb.conf

    每台机器上都安装好mongodb

    配置过程

    启动mongo实例

    三台机器上分别启动

    ./mongod --logpath /usr/local/mongodb/logs/a/r0.log --logappend --dbpath /usr/local/mongodb/data/a/r0 --journalCommitInterval 300 --port 10000 --shardsvr --replSet setA --rest  --oplogSize 64 --fork
    
    ./mongod --logpath /usr/local/mongodb/logs/b/r0.log --logappend --dbpath /usr/local/mongodb/data/b/r0 --journalCommitInterval 300 --port 20000 --shardsvr --replSet setB --rest  --oplogSize 64 --fork
    
    ./mongod --logpath /usr/local/mongodb/logs/c/r0.log --logappend --dbpath /usr/local/mongodb/data/c/r0 --journalCommitInterval 300 --port 30000 --shardsvr --replSet setC --rest  --oplogSize 64 --fork
    
    .
    /mongod --configsvr --logpath /usr/local/mongodb/logs/configServer/r0.log --logappend --dbpath /usr/local/mongodb/data/configServer/r0 --port 40000 --fork

    //三台机器执行完上面的以后 再执行下面的命令
    ./mongos --configdb 193.168.10.101:40000,193.168.10.102:40000,193.168.10.103:40000 --logpath /usr/local/mongodb/logs/serverlogs/mongos.log --logappend --port 50000 --fork

    设置副本集

    ./mongo 193.168.10.101:10000
    rs.initiate({_id : "setA", members : [{_id : 0, host : "193.168.10.101:10000"}]})
    rs.add("193.168.10.102:10000")
    rs.add("193.168.10.103:10000")
    
    ./mongo 193.168.10.101:20000
    rs.initiate({_id : "setB", members : [{_id : 0, host : "193.168.10.101:20000"}]})
    rs.add("193.168.10.102:20000")
    rs.add("193.168.10.103:20000")
    
    ./mongo 193.168.10.101:30000
    rs.initiate({_id : "setC", members : [{_id : 0, host : "193.168.10.101:30000"}]})
    rs.add("193.168.10.102:30000")
    rs.add("193.168.10.103:30000")
    可以自己设置哪个是主节点
    cfg
    =rs.status() //查看节点顺序 ...... cfg.members[0].priority = 1 cfg.members[1].priority = 1 cfg.members[2].priority = 2 //设置为2的为主节点 rs.reconfig(cfg)

    分别进入两个从节点进行配置(setA setB setC每个的从节点都需要)

    db.getMongo().setSlaveOk() //设置从节点为只读

    设置分片

    //设置分片 从50000路由端口进入
    ./mongo 193.168.10.101:50000
    
    sh.addShard("setA/193.168.10.101:10000,193.168.10.102:10000,193.168.10.103:10000");
    
    sh.addShard("setB/193.168.10.101:20000,193.168.10.102:20000,193.168.10.103:20000");
    
    sh.addShard("setC/193.168.10.101:30000,193.168.10.102:30000,193.168.10.103:30000");

    验证

    printShardingStatus()
    use testdb
    db.createCollection('test01') //创建一个表
    use admin
    db.runCommand({enablesharding:'test01'})  //设置数据库可以分片
    db.runCommand({shardcollection:'testdb.test01',key:{c_id:1}})
  • 相关阅读:
    [Redis]主从同步可能遇到的坑
    Redis_如何保证原子操作
    .Net Core 5.0 Json序列化和反序列化 | System.Text.Json 的json序列化和反序列化
    JavaScript Error对象整理_JavaScript 异常处理整理
    Canvas 事件绑定|Canvas事件处理
    Css3 常用布局方式 一行两列&高度自适应&垂直方向居中
    Css3 实现锯齿效果整理
    Css3 currentColor 变量使用
    Css3 实现任意角扇形|Css3实现六角扇形
    实现 Application_Start 和 Application_End
  • 原文地址:https://www.cnblogs.com/blazeZzz/p/10450589.html
Copyright © 2020-2023  润新知