MongoDB学习(十)之复制(副本集)、分片

一、复制(副本集)

 1)复制介绍

   (1)解决问题(在集群中,保证MongoDB数据处理的正常进行):通过复制功能实现多服务器的数据冗余备份操作。使备份数据的服务器具备额外提供独立读访问请求的功能(分布式读取数据,解决高并发客户端读取用户访问问题);当服务器出故障时,提供自动故障转移、自动数据恢复。

   (2)副本集(replica)是一种具有自动选举机制的主从复制。

   (3)副本集一般包括:一个主节点(仅一个Primary Node)、从节点(至少两个Secondary Node)、选择另外一个独立节点作为仲裁节点(管理副本集数据复制)。

     

  (4)主节点(Primary Node)负责接收客户端写入数据库操作。(大访问量的情况下,主节点负责读的任务,会存在瓶颈)

           从节点(Secondary Node)负责从主节点复制数据,保证主从节点数据的一致性和安全性。

  (5)复制依据:本地的Oplog(复制操作日志local.oplog.rs)集合(主从节点同步Oplog更新)。

  (6)仲裁节点(只安装mongod.exe)功能:通过心跳功能保持与其它节点的联系,若主节点故障,通过投票选举,快速产生新的主节点。

      

  (7)insert、update等写命令里需要设置{w:“majority”}参数,写入主节点的数据才能同时被复制到从节点上。

      

注意日文系统中的¥就是\

 2)学习环境部署过程

    (1)安装MongoDB,然后将安装目录中的data目录下创建data文件夹和log文件夹。

          

    (2)将安装好得MongoDB目录中的文件复制到另外两个文件夹(mongodb1、mongodb2)中

         

    (3)安装主节点集群:(注意日文系统中的¥就是\)

        

   注意:使用repl命令选项指定副本集名称

   (4)安装从节点集群:

   

   

(5)设置集群配置文件:

    注意:启动任意一个的mongo进行设置。

     

  注意: ①priority:副本级节点选举优先级,数据越大优先级越高。

              ②rs.conf():查看副本集配置对象内容。

              ③rs.status():查看副本集状态。

3)实际测试及使用环境部署、异地环境部署参考

           MongoDB官网:https://docs.mongodb.com/manual/replication/

4)将其它成员(MongoDB服务器)添加到副本集中(该操作只能在主节点中进行

     (1)rs.add()方法

           ①语法

     rs.add(<host>,arbiterOnly)

             参数说明: 1、host:

                                      参数类型为字符串,指定副本成员的主机名和端口号。

                              参数类型为文档,指定在members数组中找到的副本集成员配置文档(必须指定新成员[n]._id和[n].host)。         

                                2、arbiterOnly:可选项,当host为字02符串时使用,true:仲裁节点;false:不是仲裁节点(默认)。

           

           ②示例

           1、字符串型:

     rs.add("mongodb.top:27017")      //服务器域名:mongodb.top,端口号:27017

         2、文档型:

    rs.add({"mongodb.top:27017",priority:0})    //服务器域名:mongodb.top,端口号:27017
                                                //priority:节点选举优先级,数字越大优先级越高

  

     

猜你喜欢

转载自blog.csdn.net/tree_ifconfig/article/details/81541569