• mongodb 副本集部署


    1.安装三节点linux环境:196.168.1.111,196.168.1.112,192.168.1.113(三节点可彼此ping通)

    2.三节点安装mongodb,参考https://blog.csdn.net/yezhenxu1992/article/details/51375123 安装3.2.20 版本mongodb

    3.设置/etc/mongodb.conf

    #数据路径
    dbpath=/var/data
    #日志路径
    logpath=/var/log/mongodb/mongodb.log
    #追加保存日志
    logappend=true
    #监听端口
    port=27017
    fork=true
    # 未认证
    noauth=true
    # 保存mongodb pid文件
    pidfilepath=/var/run/mongodb/mongod.pid
    # 监听mongodb ip
    bind_ip=196.168.1.111
    # 副本集名称
    replSet=spock
    

    启动mongodb,可以使用如下脚本:

    #!/bin/bash
    pid_file=/var/run/mongodb/mongod.pid
    pid_dir=/var/run/mongodb
    data_dir=/var/data
    if [ ! -e "$pid_dir" ]
    then
       mkdir -p $pid_dir
       touch $pid_file
    else
        if [ ! -e "$pid_file" ]
        then
            touch $pid_file
        fi
    fi
    if [ ! -e $data_dir ]
    then
        mkdir -p $data_dir
    fi
    mongod -f /etc/mongodb.conf
    

    4.配置副本集:

    mongodb连接到任一mongodb 比如:mongo 196.168.1.111/test,如下图:

    config={"_id":"spock",    

    "members":[    
    {"_id":0,"host":"196.168.1.111:27017"},    
     {"_id":1,"host":"196.168.1.112:27017"},
        {"_id":2,"host":"196.168.1.113:27017"}
              ]}    
    {    
            "_id" : "spock",    
            "members" : [    
                    {    
                            "_id" : 0,    
                            "host" : "196.168.1.111:27017"    
                    },    
                    {    
                            "_id" : 1,    
                            "host" : "196.168.1.112:27017"    
                    },
                    {    
                            "_id" : 2,    
                            "host" : "196.168.1.113:27017"    
                    }    
            ]    
    }
    rs.initiate(conf)

    5.副本集初始化完成后,三个节点上mongodb会根据初始化的先后顺序分出PRIMARY和SECONDARY.

    6.三个节点中,如果primary节点异常,两个secondary节点中会自动选出primary节点,不影响提供读写功能。但是当此时,primary节点挂点,只剩下secondary时,服务不再提供写入功能,只能读取数据。除非强制将secondary转为primary后,在一个节点上提供读写功能。

    比如只剩下一个节点196.168.1.111节点,强制重新配置副本集。

    config={"_id":"spock",    
    "members":[    
    {"_id":0,"host":"196.168.1.111:27017"},    
              ]}    
    {    
            "_id" : "spock",    
            "members" : [    
                    {    
                            "_id" : 0,    
                            "host" : "196.168.1.111:27017"    
                    },    
            ]    
    }
    rs.reconfig(conf,{'force':true})
    
    rs.reconfig(conf,{'force':true})强制重新配置副本集,注意在config中_id需要与原来保持一致。
  • 相关阅读:
    【NOIP2018PJ正式赛】摆渡车
    【NOIP2018PJ正式赛】龙虎斗
    【NOIP2018PJ正式赛】标题统计
    高精度除单精度
    关于输出的东东
    高精度乘单精度
    【NOIP2012模拟10.26】电影票
    【NOIP2012模拟10.26】雕塑
    【NOIP2012模拟10.26】火炬手
    【NOIP2016提高A组模拟9.7】千帆渡
  • 原文地址:https://www.cnblogs.com/CaesarLinsa/p/9286867.html
Copyright © 2020-2023  润新知