昨天搭建了mongodb一主多从,之前搭建的一直是单例副本级,也没搭建仲裁节点,仲裁节点的意义是主节点宕机后选举从节点升级为主节点用的,好了,这里不做太多说明,接下来说一下我是怎么搭建的.
我这里是搭建了1主3从1仲裁(本着mongodb副本集数量为一定要为奇数的原则)
mongod.conf
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
engine: wiredTiger
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
#processManagement:
#security:
# keyFile: /etc/mongo-key
# authorization: enabled
#operationProfiling:
replication:
oplogSizeMB: 100
replSetName: mongo-repl
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
1.docker-compose.yml
version: "2"
services:
master:
image: hb_mongo_4.2
container_name: master
restart: always
ports:
- "30001:27017"
volumes:
- /Users/haohao/srv/mongo-repl/master/data:/var/lib/mongodb
- /Users/haohao/srv/mongo-repl/master/log:/var/log/mongodb/log
- /Users/haohao/srv/mongo-repl/master/mongod.conf:/data/mongod.conf
command: mongod -f /data/mongod.conf
slave01:
image: hb_mongo_4.2
container_name: slave01
restart: always
ports:
- "30002:27017"
volumes:
- /Users/haohao/srv/mongo-repl/slave01/data:/var/lib/mongodb
- /Users/haohao/srv/mongo-repl/slave01/log:/var/log/mongodb/log
- /Users/haohao/srv/mongo-repl/slave01/mongod.conf:/etc/mongod.conf
command: mongod -f /etc/mongod.conf
slave02:
image: hb_mongo_4.2
container_name: slave02
restart: always
ports:
- "30003:27017"
volumes:
- /Users/haohao/srv/mongo-repl/slave02/data:/var/lib/mongodb
- /Users/haohao/srv/mongo-repl/slave02/log:/var/log/mongodb/log
- /Users/haohao/srv/mongo-repl/slave02/mongod.conf:/etc/mongod.conf
command: mongod -f /etc/mongod.conf
slave03:
image: hb_mongo_4.2
container_name: slave03
restart: always
ports:
- "30004:27017"
volumes:
- /Users/haohao/srv/mongo-repl/slave03/data:/var/lib/mongodb
- /Users/haohao/srv/mongo-repl/slave03/log:/var/log/mongodb/log
- /Users/haohao/srv/mongo-repl/slave03/mongod.conf:/etc/mongod.conf
command: mongod -f /etc/mongod.conf
myarbiter:
image: hb_mongo_4.2
container_name: myarbiter
restart: always
ports:
- "30005:27017"
volumes:
- /Users/haohao/srv/mongo-repl/myarbiter/data:/var/lib/mongodb
- /Users/haohao/srv/mongo-repl/myarbiter/log:/var/log/mongodb/log
- /Users/haohao/srv/mongo-repl/myarbiter/mongod.conf:/etc/mongod.conf
command: mongod -f /etc/mongod.conf
#启动
docker-compose up -d
#启动后进入master mongo
docker-compose exec master mongo
#在master节点添加副本集
config={ _id:"mongo-repl", members:[
{_id:0,host:"192.168.1.113:30001",priority:5},
{_id:1,host:"192.168.1.113:30002",priority:4},
{_id:2,host:"192.168.1.113:30003",priority:3},
{_id:3,host:"192.168.1.113:30004",priority:2},
{_id:4,host:"192.168.1.113:30005",arbiterOnly:true}]
}
rs.initiate(config)
这样就建立好了 ,我这里的host IP为我宿主机的固定ip,不知道的可以ifconfig查看一下