MongoDB副本集部署

Posted 码海小虾米_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB副本集部署相关的知识,希望对你有一定的参考价值。

一、什么是MongoDB ?

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

以在mongodb官网下载该安装包,地址为:https://www.mongodb.com/download-center#community


二、MongoDB副本集部署

环境准备工作:

服务器类型系统版本 和 IP 地址需要安装的组件主机名
master 主服务器CentOS7.4(64 位) 192.168.80.10mongodb3.6.3master
slave 从服务器CentOS7.4(64 位) 192.168.80.20mongodb3.6.3slave
arbiter 服务器CentOS7.4(64 位) 192.168.80.30mongodb3.6.3arbiter

所有服务器关闭防火墙和SElinux

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

以下操作在所有服务器上操作,不同之处已经标注!
1)下载mongodb安装包,我这边使用的是3.6.3

cd /opt
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.6.3.tgz

2)解压并移至/opt目录下统一管理

tar zxvf mongodb-linux-x86_64-rhel70-3.6.3.tgz 
mv mongodb-linux-x86_64-rhel70-3.6.3 /usr/local/mongodb
cd /usr/local/mongodb/

3)新建 数据和日志等目录

mkdir -p data/db log etc


4)创建配置文件,指定数据和日志存储路径

vim etc/mongodb.conf					//配置文件的内容如下:
-----------------------------------------
dbpath=/usr/local/mongodb/data/db
logpath=/usr/local/mongodb/log/mongodb.log
logappend=true
fork=true
bind_ip=192.168.80.10					#此处添加对应的本机IP
port=27077								#默认端口为27017 如果不加为默认端口


5)加入到环境变量中并开启mongodb服务

export PATH=$PATH:/usr/local/mongodb/bin/
mongod -f /usr/local/mongodb/etc/mongodb.conf
ss -anput|grep 27077		#检查端口是否开启

6)登录mongodb中显示已有库

mongo --host 192.168.80.10 --port 27077
show dbs	//显示已有库
db 			//显示当前所在库


7)修改配置文件 3台都需要修改 在单机版基础上添加replSet=rs1

mongod --dbpath=/usr/local/mongodb/data/db/ --shutdown			#关闭mongodb
echo "replSet=rs1" >> /usr/local/mongodb/etc/mongodb.conf 		#添加replset配置
cat /usr/local/mongodb/etc/mongodb.conf							#查看确认配置是否正确
mongod -f /usr/local/mongodb/etc/mongodb.conf					#再次开启mongodb

8)登陆MongoDB设置副本集,显示如图所示即可

mongo --host 192.168.80.10 --port 27077

config={
_id:"rs1",
members:[
{_id:0,host:"192.168.80.10:27077"},
{_id:1,host:"192.168.80.20:27077"},
{_id:2,host:"192.168.80.30:27077",arbiterOnly:true}					#加仲裁节点
]
};

9)初始化设置并查看状态

rs.initiate(config)				#初始化集群
rs.status()						#查看集群状态
rs.isMaster()					#查看是否为Master


10)在主服务器上添加测试数据

use test
db.test.save({a:1,b:2,c:3})			#写入数据
db.test.find()						#本机查询测试

11)从服务器先授权运行查看数据,并测试数据同步

db.getMongo().setSlaveOk()		#默认从库不能查询 要输入这条命令
db.test.find()					#slave从库查询

以上是关于MongoDB副本集部署的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB副本集部署

原创第1篇:Docker MongoDB 最简单副本集(集群)部署

高可用MongoDB集群部署详解——搭建MongoDB副本集

mongodb 使用密钥文件身份验证部署副本集

MongoDB副本集(一主两从)读写分离故障转移功能环境部署记录

MongoDB——MongoDB副本集(Replica Sets)