副本集部署

  • 一、什么是MongoDB ?
  • 二、MongoDB副本集部署


一、什么是MongoDB ?

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。

在高负载的情况下,添加更多的节点,可以保证服务器性能。

MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

mongodb副本集主库突然宕机 mongodb副本集部署_服务器


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


二、MongoDB副本集部署

环境准备工作:

服务器类型

系统版本 和 IP 地址

需要安装的组件

主机名

master 主服务器

CentOS7.4(64 位) 192.168.80.10

mongodb3.6.3

master

slave 从服务器

CentOS7.4(64 位) 192.168.80.20

mongodb3.6.3

slave

arbiter 服务器

CentOS7.4(64 位) 192.168.80.30

mongodb3.6.3

arbiter

所有服务器关闭防火墙和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

mongodb副本集主库突然宕机 mongodb副本集部署_linux_02

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/

mongodb副本集主库突然宕机 mongodb副本集部署_服务器_03

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

mkdir -p data/db log etc

mongodb副本集主库突然宕机 mongodb副本集部署_服务器_04


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 如果不加为默认端口

mongodb副本集主库突然宕机 mongodb副本集部署_mongodb副本集主库突然宕机_05


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

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

mongodb副本集主库突然宕机 mongodb副本集部署_服务器_06

6)登录mongodb中显示已有库

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

mongodb副本集主库突然宕机 mongodb副本集部署_数据库_07


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

mongodb副本集主库突然宕机 mongodb副本集部署_linux_08

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}					#加仲裁节点
]
};

mongodb副本集主库突然宕机 mongodb副本集部署_服务器_09

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

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

mongodb副本集主库突然宕机 mongodb副本集部署_linux_10


mongodb副本集主库突然宕机 mongodb副本集部署_linux_11

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

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

mongodb副本集主库突然宕机 mongodb副本集部署_mongodb副本集主库突然宕机_12

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

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

mongodb副本集主库突然宕机 mongodb副本集部署_数据库_13