快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

MongoDB主从复制集搭建-创新互联

一、Mongodb复制集简介

作为一家“创意+整合+营销”的成都网站建设机构,我们在业内良好的客户口碑。成都创新互联公司提供从前期的网站品牌分析策划、网站设计、成都做网站、网站建设、外贸营销网站建设、创意表现、网页制作、系统开发以及后续网站营销运营等一系列服务,帮助企业打造创新的互联网品牌经营模式与有效的网络营销方法,创造更大的价值。
什么是复制集?

复制集(Replica Sets)是额外的数据副本,是跨多个服务器同步数据的过程,复制集提供了冗余并增加了数据可用性,通过复制集可以对硬件故障和中断的服务进行恢复。

MongoDB复制集原理:

mongodb的复制集至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。

mongodb各个节点常见的搭配方式为:一主一从、一主多从。

主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。

MongoDB复制结构图如下所示:

MongoDB 主从复制集搭建

以上结构图中,客户端从主节点读取数据,在客户端写入数据到主节点时, 主节点与从节点进行数据交互保障数据的一致性。

复制集的优势:

让数据更安全
搞数据可用性
灾难恢复
无停机维护(如备份,重建索引,故障转移)
读缩放(额外的副本读取)
副本集对应用程序是透明的

复制集的特点:

N个几点的群集
任何节点可作为主节点
所有写入操作都在主节点上
自动故障转移
自动恢复

主从切换:

1.手动切换:主动放弃primary,其余从服务器会选举出主服务器
2.自动切换:关闭MongoDB服务,其余从服务器会选举出主服务器

二、实验环境:

1.安装MongoDB链接:Centos 7 超简单yum源安装MongoDB

2.因为是实验,所以在一台Centos 7虚拟机的MongoDB服务器进行配置复制集,IP:192.168.233.6

3.添加配置开启4个实例,端口号分别为:

1)27017
2)27018
3)27019
4)27020

4.实验操作:4个实例  开启三个 1主2个从  额外添加复制集追加实例27020 节点     撤销实例27020节点

三、操作步骤

1.安装MongoDB完成后,默认端口号是27017

额外添加3个实例

首先需要创建三个数据存储目录,三个日志文件

mkdir -p /data/mongodb/mongodb{2,3,4}                  #创建3个数据文件目录
mkdir -p /data/mongodb/logs                                                #创建日志文件目录
touch /data/mongodb/logs/mongodb{2,3,4}.log            #创建3个日志文件
chmod 777 /data/mongodb/logs/*.log                        #修改日志文件的权限,能写能读,大权限

MongoDB 主从复制集搭建

MongoDB 主从复制集搭建

2.修改 27017端口默认MongoDB的配置文件,开启复制集

vim /etc/mongod.conf

MongoDB 主从复制集搭建MongoDB 主从复制集搭建

3.因为修改过配置文件所以需要关闭并重新开启MongoDB

mongod -f /etc/mongod.conf --shutdown                 #关闭MongoDB

MongoDB 主从复制集搭建

mongod -f /etc/mongod.conf                                  #开启MongoDB

MongoDB 主从复制集搭建

4.复制并生成3个节点配置文件,进行修改

[root@localhost logs]# cp -p /etc/mongod.conf /etc/mongod2.conf
[root@localhost logs]# cp -p /etc/mongod.conf /etc/mongod3.conf
[root@localhost logs]# cp -p /etc/mongod.conf /etc/mongod4.conf

5.需要修改每一个节点的配置文件

[root@localhost logs]# vim /etc/mongod2.conf

# vim /etc/mongod2.conf

   .......

path: /data/mongodb/logs/mongodb2.log        //每个实例指定自己日志目录

   .......

dbPath: /data/mongodb/mongodb2             //每个实例指定自己的数据目录

   port: 27018                              //指定端口分别为27018、 27019 、 27020

    .......

   replication:                      //开启所有实例的复制参数:定义一个 replSetName: yang

        replSetName: yang

[root@localhost logs]# vim /etc/mongod3.conf

# vim /etc/mongod3.conf

   .......

path: /data/mongodb/logs/mongodb3.log        //每个实例指定自己日志目录

   .......

dbPath: /data/mongodb/mongodb3             //每个实例指定自己的数据目录

   port: 27019                    //指定端口分别为27018、 27019 、 27020

    .......

   replication:              //开启所有实例的复制参数:定义一个 replSetName: yang

        replSetName: yang

[root@localhost logs]# vim /etc/mongod4.conf

# vim /etc/mongod4.conf

   .......

path: /data/mongodb/logs/mongodb4.log        //每个实例指定自己日志目录

   .......

dbPath: /data/mongodb/mongodb4             //每个实例指定自己的数据目录

   port: 27020                      //指定端口分别为27018、 27019 、 27020

    .......

   replication:              //开启所有实例的复制参数:定义一个 replSetName: yang

        replSetName: yang

6.设置配置以上步骤修改完成mongo2 mongo3 mongo4后,开启服务

[root@localhost logs]# mongod -f /etc/mongod2.conf

[root@localhost logs]# mongod -f /etc/mongod3.conf

[root@localhost logs]# mongod -f /etc/mongod4.conf

#查看下四个端口的MongoDB开启

[root@localhost logs]# netstat -natp | grep mongo

MongoDB 主从复制集搭建

7.配置三个节点的复制集

#首先进入默认MongoDB数据库中

mongo

#创建三个节点复制集

cfg={"_id":"yang","members":[{"_id":0,"host":"192.168.233.6:27017"},{"_id":1,"host":"192.168.233.6:27018"},{"_id":2,"host":"192.168.233.6:27019"}]}

MongoDB 主从复制集搭建

#初始化配置时保证从节点没有数据

rs.initiate(cfg)

MongoDB 主从复制集搭建

rs.status()     #查看复制集的状态

MongoDB 主从复制集搭建

主节点:27017端口

MongoDB 主从复制集搭建

从节点:27018端口

MongoDB 主从复制集搭建

从节点:27019端口

MongoDB 主从复制集搭建

#因为之前只是创建了三个节点的复制集,现在演示添加27020端口的节点

#首先需要进入主节点PRIMARY 27017

#添加节点 ,在主节点上才能进行操作 primary

rs.add("192.168.233.6:27020")

MongoDB 主从复制集搭建

rs.status()     #查看复制集的状态

MongoDB 主从复制集搭建

#既然能添加节点,就能删除节点:
#删除节点 ,在主节点上才能进行操作 primary

rs.remove("192.168.233.6:27020")

MongoDB 主从复制集搭建

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享标题:MongoDB主从复制集搭建-创新互联
网站网址:http://6mz.cn/article/djdhih.html

其他资讯