MongoDB 主从复制集构建
发布时间:2023-11-03 14:52:06 所属栏目:系统 来源:
导读:一、Mongodb复制集简介
什么是复制集?
复制集(Replica Sets)是额外的数据副本,是跨多个服务器同步数据的过程,复制集提供了冗余并增加了数据可用性,通过复制集可以对硬件故障和中断的服务进行恢复。
什么是复制集?
复制集(Replica Sets)是额外的数据副本,是跨多个服务器同步数据的过程,复制集提供了冗余并增加了数据可用性,通过复制集可以对硬件故障和中断的服务进行恢复。
一、Mongodb复制集简介 什么是复制集? 复制集(Replica Sets)是额外的数据副本,是跨多个服务器同步数据的过程,复制集提供了冗余并增加了数据可用性,通过复制集可以对硬件故障和中断的服务进行恢复。 MongoDB复制集原理: mongodb的复制集至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。 mongodb各个节点常见的搭配方式为:一主一从、一主多从。 主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。 客户端从主节点读取数据,在客户端写入数据到主节点时, 主节点与从节点进行数据交互保障数据的一致性。 复制集的优势: 让数据更安全 搞数据可用性 灾难恢复 无停机维护(如备份,重建索引,故障转移) 读缩放(额外的副本读取) 副本集对应用程序是透明的 复制集的特点: 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 #修改日志文件的权限,能写能读,最大权限 2.修改 27017端口默认MongoDB的配置文件,开启复制集 vim /etc/mongod.conf MongoDB 主从复制集搭建MongoDB 主从复制集搭建 3.因为修改过配置文件所以需要关闭并重新开启MongoDB mongod -f /etc/mongod.conf --shutdown #关闭MongoDB mongod -f /etc/mongod.conf #开启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 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"}]} #初始化配置时保证从节点没有数据 rs.initiate(cfg) rs.status() #查看复制集的状态 主节点:27017端口 从节点:27018端口 从节点:27019端口 #因为之前只是创建了三个节点的复制集,现在演示添加27020端口的节点 #首先需要进入主节点PRIMARY 27017 #添加节点 ,在主节点上才能进行操作 primary rs.add("192.168.233.6:27020") rs.status() #查看复制集的状态 #既然能添加节点,就能删除节点: #删除节点 ,在主节点上才能进行操作 primary rs.remove("192.168.233.6:27020") (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐