环境部署:
运行三个节点:每个节点都执行以下操作
>wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.2.tgz
>tar xf mongodb-linux-x86_64-rhel70-4.0.2.tgz -C /root/
>mv mongodb-linux-x86_64-rhel70-4.0.2 mongodb4.0.2
>echo 'export PATH=/root/mongodb4.0.2/bin:$PATH' >> /etc/profile
>source /etc/profile
>cd mongodb4.0.2
> mkdir data logs > 数据目录和日志目录
修改配置文件
> cat mongodb.conf
logpath=/root/mongodb4.0.2/logs/mongod.log > 日志路径
logappend=true > 是否日志追加
fork=true > 后台启动
port=27017 > 端口
dbpath=/root/mongodb4.0.2/data > 数据目录
pidfilepath=/root/mongodb4.0.2/data/mongod.pid > pid
oplogSize=4096 > 设置oplog的大小
maxConns=640000 > 最大同时连接数 默认2000
directoryperdb=true > 设置每个数据库将被保存在一个单独的目录
bind_ip=0.0.0.0 > 监听
replSet=rs0
启动mongodb
>./bin/mongod -f mongodb.conf > 三个节点配置都一样,都要启动
进入mongo 进行配置 (设置优先级)
>mongo
第一步:
>cfg={ _id:"rs0", members:[ {_id:0,host:'10.4.29.185:27017',priority:2},{_id:2,host:'10.4.29.187',priority:1}, {_id:1,host:'10.4.29.191:27017',arbiterOnly:true}]}
第二步:
>rs.initiate(cfg)
第三步:验证结果: 在 primary上操作
rs0:PRIMARY> use pay
rs0:PRIMARY> db.pay.insert({"_id":"1"})
rs0:PRIMARY> show dbs;
在secondary上操作
rs0:SECONDARY> db.getMongo().setSlaveOk();
rs0:SECONDARY> show dbs;
admin 0.000GB
config 0.000GB
local 0.000GB
pay 0.000GB 证明已成功;