MongoDB复制集
MongoDB复制是将数据同步到多个服务器的过程,
引用>
复制集提供了数据的冗余备份并提高了数据的可用性,通常可以保证数据的安全性;
复制集还允许您从硬件故障和服务中断中恢复数据。什么是复制集?
<李>保障数据的安全性李> <李>数据高可用性(24 * 7)李> <李>灾难恢复李> <李>无需停机维护(如备份,重建索引,压缩)李> <李>分布式读取数据李> <李>副本集对应用层是透明的李>
MongoDB复制集的工作原理
<李> mongodb的复制集至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。李> <李> mongodb各个节点常见的搭配方式为:一主一从,一主多从。李> <李>主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。李>
引用>MongoDB复制结构图如下所示:
(以上图片引用网址:http://www.runoob.com/mongodb/mongodb-replication.html)
<强>以上结构图中,客户端从主节点读取数据,在客户端写入数据到主节点时,主节点与从节点进行数据交互保障数据的一致性。强>
复制集的特点:
<李> N个节点的集群李> <李>任何节点可作为主节点李> <李>所有写入操作都在主节点上李> <李>自动故障转移李> <李>自动恢复李>
引用>如何部署MongoDB复制集?
<强>在同一台服务器上创建MongoDB的多实例(4个实例)来做MongoDB主从的实验。
强>
<强>至于如何安装MongoDB ?请参考之前博文Linux平台安装MongoDB 4.0(最新版)强>开始部署
1。创建4个MongoDB的实例
<代码> #创建各实例的数据目录 mkdir - p/数据/mongodb/mongodb {1, 2, 3, 4} #创建实例配置目录 mkdir - p/数据/conf/#创建实例的日志目录 mkdir - p/数据/日志/#创建各实例的日志文件 触摸/数据/日志/mongodb {1, 2, 3, 4} . log #赋予日志文件权限777人 chmod 777/数据/日志/* . log 代码>2。编辑mongodb1.conf配置文件,开启复制集功能并配置replSetName参数
<代码> vim/数据/mongodb mongodb1.conf 代码><代码> # mongod.conf #文档的所有选项,请参阅: # http://docs.mongodb.org/manual/reference/configuration-options/#写日志数据。 systemLog: 目的地:文件 logAppend:真 路径://日志/mongodb1数据。日志//mongodb1的日志文件路径 #在哪里以及如何存储数据。 储存: dbPath:/数据/mongodb/mongodb1///mongodb1的数据文件路径 日报: 启用:真 #引擎: # mmapv1: # wiredTiger: #流程运行的方式 processManagement: 餐叉:真正的#叉和在后台运行 pidFilePath://mongodb/mongodb1/mongod数据。pid # pidfile的位置 timeZoneInfo:/usr/share/zoneinfo #网络接口 net: 端口:27017//mongodb1的进程号 bindIp: 0.0.0.0 #听本地接口alt=" MongoDB复制集(即主从复制)">6。开始配置三个节点的复制集
<编辑> 6.1登录默认MongoDB(默认端口号为:27017)编辑><代码> mongo 代码><编辑> 6.2查看复制集的状态信息编辑><代码>比;rs.status() 代码><编辑> 6.3定义cfg初始化参数(这里先加入三台,另一台后面实现添加节点功能)编辑>
<代码>比;cfg={" _id ":“test-rc”、“成员”:[{" _id ": 0,“主机”:“192.168.100.100:27017”},{“_id”: 1、“主机”:“192.168.100.100:27018 "},{" _id ": 2,“主机”:“192.168.100.100:27019”}]}代码><编辑> 6.4启动复制集功能(初始化配置时保证从节点没有数据)编辑>
<代码>比;rs.initiate (cfg)MongoDB复制集(即主从复制)