目录
(四)、Secondary01节点、Secondary02节点根据步骤(一)至步骤(三)安装MongoDB
(六)、Primary节点复制mongokeyfile文件到Secondary01节点、Secondary02节点
1、Primary节点复制mongokeyfile文件到Secondary01节点
2、Primary节点复制mongokeyfile文件到Secondary02节点
(八)、Secondary01节点创建MongoDB服务配置文件
(九)、Secondary02节点创建MongoDB服务配置文件
(十一)、按照步骤十分别启动Secondary01节点、Secondary02节点MongoDB服务
1、打开Primary、Secondary01、Secondary02节点的日志进行副本集初始化过程观察
(七)、查看Secondary节点与Primary节点的数据同步差距
一、副本集简介
(一)、副本集概述
MongoDB副本集是一组维护相同数据集的mongod服务,可提供数据冗余和服务高可用性。副本集具有故障自动切换能力,当主节点(Primary)故障或者宕机时,在不需要用户干预的情况下,从节点(Secondary)会自动投票选举产生新的主节点(Primary),从而保证服务的高可用性。还可以利用从节点(Secondary)做只读服务器,实现读写分离,提高负载。
MongoDB 副本集最多只能有50个节点,且最多只能有7个节点拥有投票权,其余节点必须是没有投票权的节点。官方推荐副本集中具有投票权的节点数量为奇数个,从而避免出现脑裂(一个副本集被分割成多个副本集)的情况。
(二)、副本集成员
副本集中的节点成员主要分为三种:主节点(Primary)、从节点( Seconary)、仲裁节点 (Arbiter)。
● 主节点(Primary)
主节点是副本集中唯一接受写入操作的成员,且一个副本集只能有一个主节点。主节点会在 Oplog 上记录数据变更操作,从节点成员复制该Oplog日志,并将数据变更操作应用于其数据集。
● 从节点( Seconary)
从节点维护主节点的数据集副本,一个副本集可以有一个或多个从节点。从节点通过异步过程将来自主节点 Oplog 的数据变更操作应用到自己的数据集,从而保证数据冗余。 从节点不可进行写操作,可配置只读。
● 仲裁节点 (Arbiter)
仲裁节点不维护主节点的数据集副本,仅参与主节点的选举,且仲裁节点只有1张选举票。
(三)、副本集成员主要属性
● votes:该属性值控制节点成员是否有权参与主节点选举。1代表有权,0代表无权。副本集最大支持7个副本节点成员参与选举。
● hidden:该属性值控制节点成员是否隐藏。true代表隐藏,false代表不隐藏。隐藏成员维护主节点数据集的副本,但对客户端应用程序不可见。隐藏节点成员的优先级必须是0,但在选举中可以投票。
● tags:该属性值控制副本成员打标签,通过打标签的方式区别不同的副本成员,从而使得特定的服务可以访问特定的副本。
● slaveDelay:该属性值控制节点成员延迟一定时间同步Primary节点成员的数据。延迟节点成员必须是优先级为0、hidden为true、votes为0。
(四)、副本集部署架构
副本集的最小推荐配置是三个节点:
● 一个主节点和两个从节点,且两个从节点都可以在选举中成为主节点。
● 一个主节点、一个从节点和一个仲裁节点。从节点可以在选举中成为主节点,仲裁节点仅在选举中投票。
二、副本集搭建部署过程
此次副本集搭建,采用一个主节点、两个从节点的部署架构。
● 服务器IP
Primary:192.168.110.131
Secondary01:192.168.110.132
Secondary02:192.168.110.133
● 系统版本
CentOS Linux release 7.7.1908 (Core)
● 关闭防火墙
此处为方便演示,Primary、Secondary01、Secondary02直接关闭防火墙。
生产环境可以根据实际需求开通服务器防火墙策略。
systemctl stop firewalld
systemctl stop iptables
(一)、Primary节点创建目录
● 创建安装主目录
[root@Primary ~]# mkdir -p /data/mongodb
● 创建数据目录
[root@Primary ~]# mkdir -p /data/mongodb/data
● 创建日志目录
[root@Primary ~]# mkdir -p /data/mongodb/log
(二)、Primary节点下载MongoDB安装包
● 安装wget命令
[root@Primary ~]# yum install