详解MongoDB复制集

何为复制集?

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

复制集主从同步的原理和mysql类似,主节点记录在其上的所有操作到oplog中,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。


复制集的优势如下:


(1)让数据更安全


(2)高数据可用性(24 * 7)


(3)灾难恢复


(4)无停机维护(如备份,索引重建,故障转移)


(5)读缩放(额外的副本读取)


(6)副本集对应用程序是透明。

MongoDB复制集结构原理图分析

<李>

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

<李>

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

<李>

客户端在主节点写入数据,在从节点读取数据,主节点与从节点进行数据交互,保障数据的一致性。如果其中一个节点出现故障,其他节点马上会将业务接过来而无需停机操作

详解MongoDB复制集

复制集的特点:

1。N个节点的集群


2。任何节点可作为主节点


3。所有写入操作都在主节点上



4。自动故障转移


5。自动恢复

MongoDB复制集部署

<李>

在一台CentOS7主机上使用百胜在线安装MongoDB,并创建多实例,进行部署MongoDB复制集

首先配置网络百胜源,baseurl(下载路径)指定为MongoDB官网提供的百胜仓库

vim/etc/yum.repos.d/MongoDB。回购

[mongodb-org]

名称=MongoDB库

baseurl=https://repo.mongodb.org/yum/redhat/releasever/mongodb-org 3.6美元/x86_64/,,,,,,,,,,,,#指定获得下载的路径

gpgcheck=1,,,,,,,,,,,,,,,,,,,,#表示对从这个源下载的rpm包进行校验启用

=1,,,,,,,,,,,,,,,,,,#表示启用这个源。

gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

重新加载百胜源,并使用yum命令<强>下载安装mongodb

百胜百胜列表- y安装mongodb-org

准备4个实例,暂时开启3个,1主2从,,,再额外添加群集(追加实例)也可以撤销实例

<李>

创建数据文件和日志文件存储路径,并赋予权限


[root@localhost ~] # mkdir - p/数据/mongodb {2、3、4}
[root@localhost ~] # mkdir/数据/日志
[root@localhost ~] #触摸/数据/logs/mongodb {2、3、4}。日志
[root@localhost ~] # chmod 777/数据/logs/mongodb *
[root@localhost ~] #我/数据/logs/
总用
-rwxrwxrwx量0。1根根0 9月,15日22:31 mongodb2.log
-rwxrwxrwx。1根根0 9月,15日22:31 mongodb3.log
-rwxrwxrwx。1根根0 9月,15日22:31 mongodb4。李的日志

编辑4个MongoDB实例的配置文件

<李>

先编辑百胜安装的默认实例的配置文件/etc/mongod。相依,指定监听IP、端口默认为27017,开启复制参数配置,replSetName:真(自定义)

root@localhost ~ # vim/etc/mongod.参看

# mongod。参看

#文档的选项,看:
#,,http://docs.mongodb.org/manual/reference/configuration-options/,

#写日志数据。
systemLog:
,目的地:文件
,logAppend:真
,路径:/var/log/mongodb/mongod.日志

#在哪里以及如何存储数据。
存储:
,dbPath:/var/lib/mongo
,日报:
,,,启用:真
#,引擎:
#,mmapv1:
#,wiredTiger:

#如何流程运行
processManagement:
,叉:true #叉和运行在后台
,pidFilePath:/var/run/mongodb/mongod.pid #位置pidfile
,timeZoneInfo:/usr/share/zoneinfo

#网络接口净:
,

#安全:

# operationProfiling:

<李>

复制配置文件给其他实例,并将mongodb2。conf中参的端口数配置为27018年,mongod3.conf中参的端口数配置为27019年,mongod4。会议中参的端口数配置为27020。同样也将dbpath和logpath参数修改为对应的路径值

详解MongoDB复制集