大数据MongoDB复制集管理

  

MongoDB复制集

  
      <李>   

    MongoDB复制是将数据同步在多个服务器的过程。

      李   <李>   

    复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性,并可以保证数据的安全性。

      李   <李>复制还允许您从硬件故障和服务中断中恢复数据。   
  

复制集的优势

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

    MongoDB复制原理

      

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

      
  

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

  

主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。

  

MongoDB复制结构图如下所示:

  

大数据MongoDB复制集管理

  

以上结构图中,客户端从主节点读取数据,在客户端写入数据到主节点时,主节点与从节点进行数据交互保障数据的一致性。

  

复制集集特征:

  
      <李> N个节点的集群李   <李>任何节点可作为主节点李   <李>所有写入操作都在主节点上李   <李>自动故障转移   <李>自动恢复李   
  

安装MongoDB(焦油安装):

  
      <李>   

    1。安装创建多实例:

      李   
  
 <代码>焦油-zxvf mongodb-linux-x86_64-3.2.1。tgz - c/usr/local/cd/usr/local/mv mongodb-linux-x86_64-3.2.1/mongodb #重命名
  
  mkdir - p/数据/mongodb/mongodb{1, 2, 3, 4} #创建数据目录
  mkdir - p/数据/日志
  触摸/数据/日志/mongodb} {1, 2, 3, 4。日志#创建日志文件
  cd/数据/日志/chmod 777 *。日志#赋予权限
  
  cd/usr/local/mongodb/bin
  vim mongodb1.conf
  
  端口=27017
  dbpath=/数据/mongodb/mongodb1
  logpath=/数据/logs/mongodb1.log
  logappend=true
  叉=true
  maxConns=5000
  storageEngine=mmapv1
  
  replSet=测试#复制集名称
  ------------------------------------------------------------------------------------
  #下面是百胜安装时修改,添加的
  复制:#去注释
  replSetName:测试#添加复制集名称 
  
 <代码> ln - s/usr/local/mongodb/bin/mongod/usr/bin/#把mongodb常用的命令添加到系统命令中
  ln - s/usr/local/mongodb/bin/mongo/usr/bin/ 
  
      <李>   

    2。开启多实例,初始化配置复制集:

      李   
  
 <代码> [root@localhost本]# mongo
  比;cfg={" _id ":“测试”、“成员”:[{" _id ": 0,“主机”:“192.168.217.129:27017”},{“_id”: 1、“主机”:“192.168.217.129:27018 "},{" _id ": 2,“主机”:“192.168.217.129:27019”}]}
  #配置复制集,注意复制集的名称要一致
  {
  “_id”:“测试”,
  “成员”:(
  {
  “_id”: 0,
  “主机”:“192.168.217.129:27017”
  },
  {
  “_id”: 1、
  “主机”:“192.168.217.129:27018”
  },
  {
  “_id”: 2
  “主机”:“192.168.217.129:27019”
  }
  ]
  }
  比;rs.initiate (cfg) #初始化配置时保证从节点没有数据
  {" ok ": 1}
  测试:PRIMARY>rs.status() #查看复制集的完整状态
  {
  “设置”:“测试”,
  ……
  {
  “_id”: 0,
  “名称”:“192.168.217.129:27017”,
  “健康”:1、
  “状态”:1、
  “stateStr”:“初级”,# 27017端口作为主节点
  “运行时间”:1234年,
  " optime ": {
  “t”:时间戳(1531961046,1),
  “t”: NumberLong (1)
  },
  ……
  },
  {
  “_id”: 1、
  “名称”:“192.168.217.129:27018”,
  “健康”:1、
  “状态”:2
  “stateStr”:“二次”,#从节点
  “运行时间”:49岁
  " optime ": {
  “t”:时间戳(1531961046,1),
  “t”: NumberLong (1)
  },
  ……
  },
  {
  “_id”: 2
  “名称”:“192.168.217.129:27019”,
  “健康”:1、
  “状态”:2
  “stateStr”:“二次”,#从节点
  “运行时间”:49岁
  " optime ": {
  “t”:时间戳(1531961046,1),
  “t”: NumberLong (1)
  },
  ……
  }
  ),
  “ok”:1
  }
  

大数据MongoDB复制集管理