上一篇:MongoDB(7)—副本集概念
首先给要创建的副本集整个名称res(replica_sets),三个节点的端口号:主节点(27017)、从节点(27018)、仲裁节点(27019)。
一、创建主节点
1.新建日志目录和存放数据的目录
mkdir -p /mongodb/replica_sets/res_27017/log
mkdir -p /mongodb/replica_sets/res_27017/data/db
2.创建配置目录及配置文件
配置目录:
mkdir -p /mongodb/replica_sets/res_27017/mongod.conf
配置文件:
storage:
# mongod 进程存储数据目录,此配置仅对 mongod 进程有效
dbPath: "/usr/local/mongodb-4.0.9/replica_sets/res_27017/data/db"
#是否开启 journal 日志持久存储,journal 日志用来数据恢复,是 mongod 最基础的特性,通常用于故障恢复。64 位系统默认为 true,32 位默认为 false,建议开启,仅对 mongod 进程有效。
journal:
enabled: true
#存储引擎类型,mongodb 3.0 之后支持 “mmapv1”、“wiredTiger” 两种引擎,默认值为“mmapv1”;官方宣称 wiredTiger 引擎更加优秀。
engine: mmapv1
systemLog:
# 日志输出目的地,可以指定为 “file” 或者“syslog”,表述输出到日志文件,如果不指定,则会输出到标准输出中(standard output)
destination: file
# 如果为 true,当 mongod/mongos 重启后,将在现有日志的尾部继续添加日志。否则,将会备份当前日志文件,然后创建一个新的日志文件;默认为 false。
logAppend: true
# 日志路径
path: "/usr/local/mongodb-4.0.9/replica_sets/res_27017/log/mongod.log"
processManagement:
#启用在后台运行mongos或者mongod进程的守护进程模式
fork: true
net:
# 绑定外网 op 多个用逗号分隔,默认是localhost
bindIp: 0.0.0.0
#指定端口
port: 27017
replication:
# 副本集的名称 同一个副本集的主节点、从节点、仲裁节点副本集必须同名
replSetName: res
3.启动主节点
/usr/local/mongodb-4.0.9/bin/mongod -f res_27017/mongod.conf
4.创建从节点、仲裁节点
因为之前我们约定的27017
为主节点的端口,27018
为从节点的端口,27019
为仲裁节点的端口。所以现在主节点我们已经成功启动了,接下来就是配置从节点和仲裁节点。
重复上面的步骤1
到步骤3
,将端口号分别改为27018
,然后以同样的方式启动从节点。
重复上面的步骤1
到步骤3
,将端口号分别改为27019
,然后以同样的方式启动仲裁节点。
用命令ps -ef | grep mongo
查看以下三个端口是不是都成功开启了
5.MongoDB的目录展示
下图展示的是主节点的文件目录,res_27018
和res_27019
的文件目录与res_27017
的目录内容一致。三者最主要的不同点就是其配置文件中的端口不同。
这样MongoDB的一个副本集就创建成功了。
二、连接MongoDB服务,初始化副本集
我这里还是使用windows命令窗口
来连接MongoDB服务。同样是在windows版本的mongodb的bin目录下输入cmd
,然后再使用命令mongo -host=IP地址 -port=端口
来连接服务(端口号如果不写默认为27017)
现在虽然我们开启了三个节点,但是三个节点之间还是没有关联起来。因为三个节点的配置文件中的副本集名称
一样,所以我们需要先初始化
副本集,然后使得我们同一个副本集名称下的节点关联起来。
1.初始化副本集
连接上MongoDB服务之后(也就是进入上图所示),使用下面得命令开始初始化副本集:
rs.initiate(configuration) //configuration是初始化参数得配置,也可以不带此参数,Mongodb会使用默认配置
那我们可以直接使用默认配置rs.initiate()
命令来初始化副本集,初始化之后会返回一串JSON格式得响应结果,其中如果显示如下,则表示初始化成功。
{
"ok" : 1
}
2.将主节点和仲裁节点添加到副本集
使用命令rs.add(host,arbiterOnly)
将主节点和仲裁节点添加到副本集。
添加主节点:rs.add("IP地址:27018")
添加仲裁节点:rs.add("IP地址:27019",true)
3.查看副本集状态
使用命令rs.status()
可以查看当前副本集得状态
到这里MongoDB中的一个副本集就创建完成了。