MongoDB复制集(即主从复制)

  

MongoDB复制集

  
  

MongoDB复制是将数据同步到多个服务器的过程,
复制集提供了数据的冗余备份并提高了数据的可用性,通常可以保证数据的安全性;
复制集还允许您从硬件故障和服务中断中恢复数据。

     

什么是复制集?

  
      <李>保障数据的安全性李   <李>数据高可用性(24 * 7)   <李>灾难恢复李   <李>无需停机维护(如备份,重建索引,压缩)   <李>分布式读取数据李   <李>副本集对应用层是透明的李   
  

MongoDB复制集的工作原理

  
  
      <李> mongodb的复制集至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。   <李> mongodb各个节点常见的搭配方式为:一主一从,一主多从。   <李>主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。   
     

MongoDB复制结构图如下所示:

  

 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()  
  

 MongoDB复制集(即主从复制)

  <编辑> 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”}]} 
  

 MongoDB复制集(即主从复制)

  <编辑> 6.4启动复制集功能(初始化配置时保证从节点没有数据)   
 <代码>比;rs.initiate (cfg) 

MongoDB复制集(即主从复制)