配置环境: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
网友评论