美文网首页Mongodb
Mongodb复制集配置

Mongodb复制集配置

作者: 7c3b293d3b97 | 来源:发表于2019-10-21 10:48 被阅读0次

    配置环境:centos7配置mongodb复制集 VMware+centos7+mongodb4.2.0

    1.搭建好mongodb服务后分别启动三个mongo实例
    /usr/local/mongodb/bin/mongod --dbpath /data/mongodb/m17 --logpath /data/wwwlog/mlog/m17.log --port 27017 --fork --replSet rs6
    /usr/local/mongodb/bin/mongod --dbpath /data/mongodb/m18 --logpath /data/wwwlog/mlog/m18.log --port 27018 --fork --replSet rs6
    /usr/local/mongodb/bin/mongod --dbpath /data/mongodb/m19 --logpath /data/wwwlog/mlog/m19.log --port 27019 --fork --replSet rs6
    ////--replSet 实例属于某个复制集 复制集名称rs6自定义即可

    2.进入mongo
    /usr/local/mongodb/bin/mongo --port 27017

    use admin
    var rsconf = {
        _id:'rs6',//复制集名称
        members:[//已经启动的三个实例  如果在一台机器上  务必使用127.0.0.1
            {_id:0,host:'127.0.0.1:27017'},
            {_id:1,host:'127.0.0.1:27018'},
            {_id:2,host:'127.0.0.1:27019'}
        ]
    }
    
    //初始化
    rs.initiate(rsconf)
    //查看状态
    rs.status()
    //从stateStr字段可以判断哪台服务是主或从
    //添加一台服务
    rs.add('server:port')
    //删除一台服务
    rs.remove('server:port');
    
    //测试数据是否同步
    //进入主服务器插入一条数据
    use test
    db.stu.insert({'name':"hello"})
    //进入任意一台从服务器查看数据
    use test
    db.stu.find();  //如果提示  errmsg" : "not master and slaveOk=false",   则执行rs.slaveOk()即可
    //测试主服务挂掉 是否会自动切换一个从为主服务
    //关闭主服务器
    db.shutdownServer()
    //进入任意一台从服务器
    rs.status()  //多执行几次观察 stateStr 字段值的变化
    

    配置自动化脚本

    #!/bin/bash
    IP=127.0.0.1
    NA=rs1
    if [ $1 == 'reset' ]; then
        pkill -9 mongo
        rm -rf /data/mongodb/*
    fi
    
    
    if [ $1 == 'repl' ]; then
        mkdir -p /data/mongodb/m17 /data/mongodb/m18 /data/mongodb/m19 /data/wwwlog/mongo
        /usr/local/mongodb/bin/mongod --dbpath /data/mongodb/m17 --logpath /data/wwwlog/mlog/m17.log --port 27017 --fork  --replSet ${NA}  
        /usr/local/mongodb/bin/mongod --dbpath /data/mongodb/m18 --logpath /data/wwwlog/mlog/m18.log --port 27018 --fork  --replSet ${NA}
        /usr/local/mongodb/bin/mongod --dbpath /data/mongodb/m19 --logpath /data/wwwlog/mlog/m19.log --port 27019 --fork  --replSet ${NA}
        /usr/local/mongodb/bin/mongo <<EOF
            use admin
            var rsconf = {
                _id:'${NA}',
                members:[
                    {_id:0,host:'${IP}:27017'},
                    {_id:1,host:'${IP}:27018'},
                    {_id:2,host:'${IP}:27019'}
                ]
            }
            rs.initiate(rsconf)
    EOF
    fi
    

    相关文章

      网友评论

        本文标题:Mongodb复制集配置

        本文链接:https://www.haomeiwen.com/subject/ufazmctx.html