您的位置:首页 > 数据库 > Mongodb

Centos7/Centos8 Mongodb4.2副本集配置(同一服务器)

2020-07-12 12:11 134 查看

mongodb4.0以后不支持主从配置,所以设置副本集

以下为三个节点的副本,一主一备一投票
1、准备数据目录

mkdir /data/mongodb/node{1,2,3}
mkdir /data/mongodb/log/log{1,2,3}

2、启动三个节点

mongod --replSet node --dbpath /data/mongodb/node1 --port 10001 --logpath /data/mongodb/log/log1/config.log --fork
mongod --replSet node --dbpath /data/mongodb/node2 --port 10002 --logpath /data/mongodb/log/log2/config.log --fork
mongod --replSet node --dbpath /data/mongodb/node3 --port 10003 --logpath /data/mongodb/log/log3/config.log --fork

*注意也可以使用配置文件方式,详细见配置node1.conf node2.conf node3.conf,启动改为

mongod -f /data/mongodb/conf/node1.conf
mongod -f /data/mongodb/conf/node2.conf
mongod -f /data/mongodb/conf/node3.conf

node1.conf

#内容
#指定数据库路径
dbpath = /data/mongodb/node1
#指定MongoDB日志文件,注意是指定文件不是目录
logpath = /data/mongodb/log/log1/config.log
# PID File 的完整路径,如果没有设置,则没有PID文件
#pidfilepath=/var/run/mongodb/mongod1.pid
# 集群的私钥的完整路径,只对于Replica Set 架构有效
#keyFile=
# 设置每个数据库将被保存在一个单独的目录
#directoryperdb=true
#启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里
#journal=true
#最大同时连接数默认2000
#maxConns=2000
#以追加的方式记录日志
logappend = true
#设置副本集名称
replSet=node
#绑定服务IP,若绑定127.0.0.1,则只能本机访问,不指定默认本地所有IP
bind_ip = 0.0.0.0
#端口
port = 10001
#是否后台运行,以守护进程的方式运行MongoDB,创建服务器进程
fork = true

node2.conf

#内容
#数据库地址
dbpath = /data/mongodb/node2
#日志地址
logpath = /data/mongodb/log/log2/config.log
#logappend = true
#副本集名称
replSet=node
#其他设置
bind_ip = 0.0.0.0
#端口
port = 10002
#是否后台运行
fork = true

node3.conf

#内容
#数据库地址
dbpath = /data/mongodb/node3
#日志地址
logpath = /data/mongodb/log/log3/config.log
#logappend = true
#副本集名称
replSet=node
#其他设置
bind_ip = 0.0.0.0
#端口
port = 10003
#是否后台运行
fork = true

查看运行情况

ps afx|grep mongod

3、登录任意节点进行初始化操作,注意_id必须与–replSet * 参数保持一致

rs.initiate({"_id":"node","members":[ {"_id":1,"host":"localhost:10001"}, {"_id":2,"host":"localhost:10002"}, {"_id":3,"host":"localhost:10003"} ]})

初始化之后可以使用rs.status命令各个节点的状态

rs.status();

要调查副本集配置,您可以在任何节点上发出

rs.conf();

注意默认情况下,只允许在PRIMARY上进行读写操作。因此,如果要读取SECONDARY节点上的数据,首先需要发出

rs.slaveOk();

关闭时尽量使用命令关闭

mongod --shutdown --dbpath=/data/mongodb/node1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: