一、MongoDB -Master-Slave mode:
1、master 节点配置(192.168.99.16)
master节点创建/data/master 数据目录,给mongo的data文件夹添加写权限
sudo mkdir -pv /data/masterdb && sudo chmod 777 /data/masterd
运行master mongd
sudo nohup mongod --master --dbpath /data/masterdb &
2、slave 节点配置(192.168.99.17)
创建data目录,并修改data下目录写权限
sudo mkdir -pv /data/slavedb && sudo chmod 777 -R /data
运行
sudo nohup mongod --slave --source 192.168.99.16:27017 --dbpath /data/slavedb &
mongo
-> rs.slaveOk() 允许从节点可读
二、Replica Set mode
1.192.168.99.16:27017 primary
2.192.168.99.17:27018 secondary
3.192.168.99.18:27019 arbiter
master节点
sudo nohup mongod --dbpath=/data/masterdb --port 27017 --replSet mySet &
slave节点
sudo nohup mongod --dbpath=/data/slavedb --port 27018 --replSet mySet &
arbiter节点
sudo nohup mongod --dbpath=/data/arb --port 27019 --replSet mySet &
arbiter 节点配置 (192.168.99.18)
创建目录和配置目录权限
sudo mkdir -pv /data/arb && sudo chmod -R 777 /data
设置日志为false
sudo vim /etc/mongod.conf 如下:
storage:
journal:
enabled: false
mmapv1:
smallFiles: true
启动arbiter
sudo nohup mongod --dbpath /data/arb --replSet rs &
================================
master,slave,arbiter创建如下目录,并更改目录权限
# sudo mkdir -pv /data/{masterdb,config,log} && sudo chmod 777 /data -R
# sudo mkdir -pv /data/{slavedb,config,log} && sudo chmod 777 /data -R
# sudo mkdir -pv /data/{arb,config,log} && sudo chmod 777 /data -R
在每个节点创建mongod.config,三台节点port 和dbpath不同
# sudo vim /data/config/mongod.conf
dbpath=/data/masterdb/
logpath=/data/log/mongod.log
pidfilepath=/data/config/mongod.pid
port=27017
logappend=true
fork=true
journal=true
oplogSize=2048
smallfiles=true
replSet=dbset
dbpath=/data/slavedb/
logpath=/data/log/mongod.log
pidfilepath=/data/config/mongod.pid
port=27018
logappend=true
fork=true
journal=true
oplogSize=2048
smallfiles=true
replSet=dbset
dbpath=/data/arb/
logpath=/data/log/mongod.log
pidfilepath=/data/config/mongod.pid
port=27019
logappend=true
fork=true
journal=false
oplogSize=2048
smallfiles=true
replSet=dbset
各节点指定配置文件运行mongod
mongod -f /data/config/mongod.conf
连接master
sudo mongo mongo-master:27017/admin
配置repl set,在mongo shell中执行
config={_id:'dbset',members:[{_id:1,host:'mongo-master:27017'},{_id:2,host:'mongo-slave:27018'},{_id:3,host:'mongo-arbiter:27019',arbiterOnly:true}]}
repl set初始化
rs.initiate(config)
查看集群状态
rs.status()
=================================
添加arbiter
rs.addArb(‘mongo-arbiter:27019’)
添加节点rs.add('ip:port')
移除 rs.remove('ip:port'),移除后对应的服务好像会被停掉
*前提配置文件中replSet名称要一致
非正常关闭无法启动解决办法
rm -rf /data/*db/mongod.lock