Mongodb的入门(6)副本集

Mongodb的副本集:(有两种情况,主从复制,副本集)

  这次我来说一下mongodb的副本集,副本集的出现可以有效的保证mongodb的单点问题,对数据的稳健性有一定辅助作用:

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

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

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


  什么是复制?

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

MongoDB复制原理:

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

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

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

     


Mongodb的主从复制:

   由于我本地已经装载了一个mongodb服务,我就在本地模拟两个mongdb启动做数据备份的操作:

     1> 配置路径如下:

      

     2> 进入各服务下的bin目录启动mongodb 并指定端口:Server1的对应master port = 27011

      mongod.exe --dbpath=E:\mongodbRs\db1 --master --port=27011

      

      Server2下是复制的mongodb  port=27012     mongod.exe --dbpath=E:\mongodbRs\db2 --port=27012 --slave --source=127.0.0.1:27011

      启动后一直监控:

      

    3>在27011 上插入一条记录:

      27012上就能看到变化:

      

      

·      报错的解决办法:

      

      注意:丛库只允许查询,插入会报错

      

    4>动态追加从属数据库    有印象就行,

      上面介绍的是在mongodb启动的时候,就知道主数据是哪个,下面我来说一种动态追加的方式:

      

     启动mongodb,不指定主库:mongod.exe --dbpath=E:\mongodbRs\db3 --port=27013 --slave

      

     上面显示信息是指没有master库配置:配置方式如下:

      

    查看mongodb3的服务启动信息可以查看到:slave生效了

      

    到这动态追加从库也配置完成:

  5>读写分离

  这种手段在大一点的架构中都有实现,在mongodb中其实很简单,在默认的情况下,从属数据库不支持数据的读取,但是没关系,

  在驱动中给我们提供了一个叫做“slaveOkay"来让我们可以显示的读取从属数据库来减轻主数据库的性能压力

  


对比:一主两从

    

  到这主从复制就基本上说完了,下面说副本集的搭建和介绍


Mongdb的副本集:  

   副本集的特点:

    1> 副本集没有特定的主数据库。

    2>如果哪个主数据库宕机了,集群中就会推选出一个从属数据库作为主数据库顶上,这就具备了自动故障恢复功能,

  

  副本集在搭建过程中,要保证数据是清空的,因为我上面搭建的主从复制的数据都保存在db1 db2 db3中,所以在搭建副本集时,要先清空数据,保证搭建副本集的纯净环境

  副本集:(搭建命令)
      mongod.exe --port 27011 --dbpath=E:\mongodbRs\db1 --replSet rs0
      mongod.exe --port 27012 --dbpath=E:\mongodbRs\db2 --replSet rs0
      mongod.exe --port 27013 --dbpath=E:\mongodbRs\db3 --replSet rs0

副本集搭建过程:

    

  rs.status():查询副本集的状态:截图如下:

    

  6>刚说副本集是没有主节点的集群,主节点宕机后其他节点会自动切换回来,下面我模拟这种场景,把27011干掉:

    

  7>我再把27011节点起来,这时候他作为一个从节点的状态又回到了集群中:

    

  



  至此,mongodb的主从复制和副本集的搭建已经全部完成,不会的搭建可以参考:http://www.runoob.com/mongodb/mongodb-replication.html

  

原文地址:https://www.cnblogs.com/huhongy/p/9413665.html

时间: 2024-11-14 11:16:21

Mongodb的入门(6)副本集的相关文章

MongoDB 3.2.8 副本集搭建

记录一下,MongoDB的角色创建及配置,以便以后使用 简介 Replica Set,中文翻译叫做副本集,不过我并不喜欢把英文翻译成中文,总是感觉怪怪的.其实简单来说就是集群当中包含了多份数据,保证主节点挂掉了,备节点能继续提供数据服务,提供的前提就是数据需要和主节点一致 Mongodb(M)表示主节点,Mongodb(S)表示备节点,Mongodb(A)表示仲裁节点.主备节点存储数据,仲裁节点不存储数据.客户端同时连接主节点与备节点,不连接仲裁节点. 默认设置下,主节点提供所有增删查改服务,备

MongoDB的主从复制和副本集

mongoDB的两个特性主从复制和副本集,实现了数据的同步备份 一.主从复制 主从复制是一个简单的数据库同步备份的集群技术.例如主服务器宕机了,可以直接使用从服务器,主服务器恢复后在进行同步,保证了业务的连续性 注意点: 主服务器只有一台 从服务器需要知道自己的数据源,也就是对应的主服务器 --master确定主服务器,--slave和--source来控制从服务器 1.举例: 1).主服务器的端口是60000 2).从服务器的端口是60001 如何配置主从复制? 主服务器的配置: dbpath

mongodb安装配置及副本集的操作

一.Mongdb3.0安装 官网下载最新稳定版本的mongodb软体 https://www.mongodb.org/downloads 解压软体 [[email protected] service]# tar zxvf mongodb-linux-x86_64-rhel62-3.0.3.tgz  mongodb-linux-x86_64-rhel62-3.0.3/README mongodb-linux-x86_64-rhel62-3.0.3/THIRD-PARTY-NOTICES mong

Mongodb的Replica Set 副本集集群搭建

实验性的搭建一个集群做练手. 配置和环境: win10(本机)和linux(CentOs7)内网服务器各一台. Mongodb3.07 目标:Replica set 副本集结构,一个primary一个slave,实现读写分离的同步数据集群. 一.本机和内网服务器安装mongo 可参考我的另外两篇文章: Mongodb在windows和linux平台的安装配置(http://fykknd.blog.51cto.com/3175618/1716343) Mongodb权限管理(http://fykk

mongodb运维之副本集实践

忽然发现芋头好鸡贼 正式环境,4台机器+一台定时任务的机器.服务器是阿里云的ECS,负载均衡用的是阿里云的SLB,mysql用阿里云的RDS,缓存用阿里云的OCS,运维基本上是都不需要担心了,现在的云服务已经非常完善了,其实我们用阿里云的服务非常多,大概有20多个类型的服务,感谢阿里云. 而我的技术栈是nodejs + mongodb,而阿里云有k-v兼容redis协议的nosql,无mongodb,所以就要悲剧的自己运维mongodb了. 阿里的ots是非结构化存储,没有nodejs的sdk,

mongodb主从配置:副本集replica set

1. 副本集 mongodb的主从部署,常用方式为副本集(replica set)方式. replica set为多个mongod实例,组成一组group,包括一个主primary,多个从secondary. 这种一主多从的方式的好处是,mongodb自运维,如果主服务器挂了,会通过心跳自动检测,选举出一个新的主来.不需要人工处理. 2. 主-从 三台机器做例子,一主俩从. 主和从之间有心跳,来检测是否都处于激活状态. 每2s互相发一次心跳,如果10秒内没有返回状态,则把这个服务标记为丢弃,不可

MongoDB 2.6配置副本集,支持端口号修改和用户登录认证

mongoDB系列之(二):mongoDB 副本集 Mongodb2.6副本集验证部署和认证 副本集有以下特点: 1. 最小构成是:primary,secondary,arbiter,一般部署是:primary,2 secondary. 2. 成员数应该为奇数,如果为偶数的情况下添加arbiter,arbiter不保存数据,只投票. 3. 最大50 members,但是只能有 7 voting members,其他是non-voting members. 注意:配置mongo副本集的时候,不能先

mongodb学习之:副本集

前面一张介绍了主从模式,现在mongoDB官方已经不建议使用主从模式了,替代方案是采用副本集的模式.副本集不能在一台电脑上操作.需要准备3台电脑进行搭建.副本集就是mongoDB副本所组成的一个集群. 同步原理是,写操作发生在主库,从库同步主库的OpLog日志. 集群中没有特定的主库,主库是选举产生,如果主库down了,会再选举出一台主库. 下面来看具体的搭建.使用三台电脑进行搭建,分别是 192.168.0.12:27017   zhf-maple 192.168.0.11:27017   z

Mongodb 4.2版本副本集配置

常见的复制集 线上环境常见的架构为副本集,可以理解为一主多从. 下图:1主2从 下图:一主一从一仲裁 服务器信息: 三台机器一样配置2核16G内存 存储盘100G "host" : "10.1.1.159:27020""host" : "10.1.1.77:27020""host" : "10.1.1.178:27020 1.我们在其中一台机器配置: [[email protected] ~]#