Mongodb复制集配置

配置环境: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 <

你可能感兴趣的:(Mongodb复制集配置)