Mongodb有3种集群部署方案,包括,分片,主从,复制集,它们每一种都有其特点,在这里我选择了复制集的方式进行部署。
MongoDB复制集方案 特点:
优点:自动故障转移、自动恢复、读写分离
缺点:部署略有难度提升
备注:比较流行的部署方式,满足大部分业务场景需求
系统基础配置
- 关闭防火墙
- 关闭SELinux
本身这里是对MongoDB部署了解和验证,这里对相关系统安全项做了关闭,如果是生产是需要开启的,需要开放对应的访问策略,这里不做详细描述。
服务器部署规划:
服务器IP | 配置文件 | 说明 |
---|---|---|
10.1.5.251 | primary.conf | 主节点 |
10.1.5.252 | secondary.conf | 从节点 |
10.1.5.253 | arbiter.conf | 仲裁节点 |
安装MongoDB
1、 在/home目录解压缩mongodb的软件包;
tar -xvf mongodb-linux-x86_64-4.0.1.tgz
2、 进入mongdb目录
cd mongodb-linux-x86_64-4.0.1
3、创建数据、配置,日志目录
mkdir {data,conf,logs}
配置MongoDB
以下配置文件,在对应服务的服务器节点操作
1、编辑primary.conf文件,添加如下内容
# vi conf/primary.conf
dbpath=/home/mongodb-linux-x86_64-4.0.1/data
logpath=/home/mongodb-linux-x86_64-4.0.1/logs/primary.log
pidfilepath=/home/mongodb-linux-x86_64-4.0.1/primary.pid
directoryperdb=true
logappend=true
replSet=test
bind_ip=10.1.5.251
port=27017
oplogSize=100
fork=true
noprealloc=true
2、编辑secondary.conf文件,添加如下内容
# vi conf/secondary.conf
dbpath=/home/mongodb-linux-x86_64-4.0.1/data/secondary
logpath=/home/mongodb-linux-x86_64-4.0.1/logs/secondary.log
pidfilepath=/home/mongodb-linux-x86_64-4.0.1/secondary.pid
directoryperdb=true
logappend=true
replSet=test
bind_ip=10.1.5.252
port=27017
oplogSize=100
fork=true
noprealloc=true
3、编辑arbiter.conf,添加如下内容
# vi conf/arbiter.conf
dbpath=/home/mongodb-linux-x86_64-4.0.1/data/arbiter
logpath=/home/mongodb-linux-x86_64-4.0.1/logs/arbiter.log
pidfilepath=/home/mongodb-linux-x86_64-4.0.1/arbiter.pid
directoryperdb=true
logappend=true
replSet=test
bind_ip=10.1.5.253
port=27017
oplogSize=100
fork=true
noprealloc=true
配置开机自启动步骤
1、编辑/lib/systemd/system/mongdb.service,添加如下内容
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/home/mongodb-linux-x86_64-4.0.1/bin/mongod --config /home/mongodb-linux-x86_64-4.0.1/conf/mongodb_primary.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/home/mongodb-linux-x86_64-4.0.1/bin/mongod --shutdown --config /home/mongodb-linux-x86_64-4.0.1/conf/mongodb.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
2、设置开机自启动
systemctl enable mongodb
初始化MongoDB集群
1、使用mongo命令连接主节点,登录mongodb服务
mongo 10.1.5.251:27017
2、登录后,切换为admin管理员用户,并配置集群节点
use admin
cfg={_id:"test",members:[{_id:0,host:'10.1.5.251:27017',priority:2},{_id:1,host:'10.1.5.252:27017',priority:1},{_id:2,host:'10.1.5.253:27017',arbiterOnly:true}]};
3、使配置生效
rs.initiate(cfg)
注:执行命令后显示字样:“ok” : 1 ,代表成功
好了,可以进行重启操作系统进行验证了。