三台机器: 192.168.179.128(primary) 192.168.179.129(secondary) 192.168.179.130(secondary)
将128上的mongodb内容复制到其他2台机器上
cat /etc/yum.repos.d/mongodb.repo
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
在另2台机器上
vim /etc/yum.repos.d/mongodb.repo
复制128上内容
yum install -y mongodb-org
编辑三台机器的配置文件,更改或增加:
bindIp要包括127和各自机器的本机ip
replication://把此行前面的#删除
##oplog大小
oplogSizeMB: 20//前面有两个空格
##复制集名称
replSetName: aminglinux//前面有两个空格
分别重启三台机器
systemctl restart mongod
注:如之前有做认证,需要将认证取消(--auth),vim /usr/lib/systemd/system/mongod.service,在OPTIONS=后面取消--auth,并重启服务。
注意清空iptables及selinux状态
连接主,在主上运行命令mongo(.128)
>use admin
>config={_id:"aminglinux",members:[{_id:0,host:"192.168.179.128:27017"},{_id:1,host:"192.168.179.129:27017"},{_id:2,host:"192.168.179.130:27017"}]}
>rs.initiate(config)
rs.status() //查看状态
如果两个从上的状态为"stateStr" : "STARTUP", 则需要进行如下操作
> var config={_id:"aminglinux",members:[{_id:0,host:"192.168.133.130:27017"},{_id:1,host:"192.168.133.132:27017"},{_id:2,host:"192.168.133.133:27017"}]}
>rs.reconfig(config)
此时再次查看rs.status()会发现从的状态变为SECONDARY
要有一个为primary,其他为secondary。一般在哪台机器上配置,哪台就为primary