mongodb-4.0.4搭建集群

mongodb-4.0.4搭建集群

2018年12月12日 15:32:12 张益达· 阅读数 365更多linux

分类专栏: centos7环境搭建mongodb

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处连接和本声明。数据库

本文连接:https://blog.csdn.net/weixin_42082634/article/details/84973831centos

前篇已经介绍了MongoDB单机的搭建与使用,若是有小伙伴还不会进行单机的搭建,能够先看前一篇的,本篇主要介绍集群的搭建与使用!app

mongodb的集群搭建方式主要有三种,主从模式,Replica set模式,sharding模式, 三种模式各有优劣,适用于不一样的场合,属Replica set应用最为普遍,主从模式如今用的较少,sharding模式最为完备,但配置维护较为复杂。本文咱们来看下Replica Set模式的搭建方法。centos7

Mongodb的Replica Set即副本集方式主要有两个目的,一个是数据冗余作故障恢复使用,当发生硬件故障或者其它缘由形成的宕机时,可使用副本进行恢复。另外一个是作读写分离,读的请求分流到副本上,减轻主(Primary)的读压力。spa

Replica Set是mongod的实例集合,它们有着一样的数据内容。包含三类角色:
(1)主节点(Primary)
接收全部的写请求,而后把修改同步到全部Secondary。一个Replica Set只能有一个Primary节点,当Primary挂掉后,其余Secondary或者Arbiter节点会从新选举出来一个主节点。默认读请求也是发到Primary节点处理的,须要转发到Secondary须要客户端修改一下链接配置。.net

(2)副本节点(Secondary)
与主节点保持一样的数据集。当主节点挂掉的时候,参与选主。3d

(3)仲裁者(Arbiter)
不保有数据,不参与选主,只进行选主投票。使用Arbiter能够减轻数据存储的硬件需求,Arbiter跑起来几乎没什么大的硬件资源需求,但重要的一点是,在生产环境下它和其余数据节点不要部署在同一台机器上。
注意,一个自动failover的Replica Set节点数必须为奇数,目的是选主投票的时候要有一个大多数才能进行选主决策。日志

(4)选主过程
其中Secondary宕机,不受影响,若Primary宕机,会进行从新选主:
在这里插入图片描述
下边咱们来使用Arbiter搭建Replica Set

偶数个数据节点,加一个Arbiter构成的Replica Set方式:
在这里插入图片描述

集群配置:

主机 角色
10.0.86.207 主节点
10.0.86.21 从节点
10.0.86.193 仲裁节点

1.下载资源包:
下载MongoDB资源包

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.4.tgz
tar -zxvf mongodb-linux-x86_64-4.0.4.tgz
  • 1
  • 2

2.配置文件:
三台MongoDB配置文件都是一样的写法,ip和路径作适当修改便可

vi  /usr/local/sdb/mongodb-linux-x86_64-4.0.4/mongodb.conf
	
port=27017 #端口 
dbpath= /usr/local/sdb/mongodb-linux-x86_64-4.0.4/db #数据库存文件存放目录 
logpath= /usr/local/sdb/mongodb-linux-x86_64-4.0.4/mongodb.log #日志文件存放路径 
logappend=true #使用追加的方式写日志 
fork=true #不以守护程序的方式启用,即不在后台运行
replSet=sciencedb	#Replica Set的名字 集群名称
maxConns=100 #最大同时链接数 
noauth=true #不启用验证 
journal=true #每次写入会记录一条操做日志(经过journal能够从新构造出写入的数据)。 
#即便宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,而后重放后续的journal日志来恢复。 
storageEngine=wiredTiger #存储引擎有mmapv一、wiretiger、mongorocks 
bind_ip = 10.0.86.193 #这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

3.启动MongoDB
启动三台MongoDB服务
在bin目录下,

./mongod -f /usr/local/sdb/mongodb-linux-x86_64-4.0.4/mongodb.conf
  • 1

4.在主节点进行配置
仍是在bin目录下依次进行操做,

./mongo 10.0.86.21
	use admin
	cfg={ _id:"sciencedb", members:[ {_id:0,host:'10.0.86.21:27017',priority:2}, {_id:1,host:'10.0.86.207:27017',priority:1}, {_id:2,host:'10.0.86.193:27017',arbiterOnly:true}] };
  • 1
  • 2
  • 3

备注:
cfg名字可选,只要跟mongodb参数不冲突,_id为Replica Set名字,members里面的优先级priority值高的为主节点,对于仲裁点必定要加上arbiterOnly:true,不然主备模式不生效
priority表示优先级别,数值越大,表示是主节点
arbiterOnly:true表示仲裁节点
使集群cfg配置生效rs.initiate(cfg)
查看是否生效rs.status()
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
接上
在这里插入图片描述
图片长度限制这里只列出部分说明状况

“stateStr” : “PRIMARY”表示主节点, “stateStr” : “SECONDARY”表示从节点, “stateStr” : “ARBITER”,表示仲裁节点
添加节点命令:
添加secondary:rs.add({host: “192.168.255.141:27019”, priority: 1 })
添加仲裁点:rs.addArb(“192.168.255.142:27019”)
移除节点:rs.remove({host: “192.168.255.141:27019”})

此时已经完成MongoDB集群的搭建,能够在主节点插入数据查看从节点是否能够把数据同步过去

相关文章
相关标签/搜索