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
Mongodb的入门(6)副本集的更多相关文章
- MongoDB 删除,添加副本集,并修改副本集IP等信息
		
MongoDB 删除,添加副本集,并修改副本集IP等信息 添加副本,在登录到主节点下输入 rs.add("ip:port"); 删除副本 rs.remove("ip:po ...
 - MongoDB 带访问控制的副本集部署
		
当你需要用到一个MongoDB 副本集集群,用于开发测试时, 可以通过下面的步骤简单完成. 版本及环境 MongoDB4.4 Centos6.5 一. 下载安装 MongoDB Server 及 ...
 - 8.MongoDB系列之创建副本集(一)
		
1. 复制简介 在MongoDB中,创建副本集后就可以使用复制功能了,副本集是一组服务器,其中一个是用于处理写操作的主节点,还有多个用于保存主节点的数据副本的从节点,如果主节点崩溃了,则从节点会从中选 ...
 - MongoDB的主从复制和副本集
		
mongoDB的两个特性主从复制和副本集,实现了数据的同步备份 一.主从复制 主从复制是一个简单的数据库同步备份的集群技术.例如主服务器宕机了,可以直接使用从服务器,主服务器恢复后在进行同步,保证了业 ...
 - MongoDB系列之三(副本集配置)
		
今天我测试了一下MongoDB的副本集的配置. 首先从概念上说一下MongoDB副本集和主从复制的区别.其实副本集(Replica Set)是主从复制的高级形式.高级在哪里呢?主动复制实现了数据备份+ ...
 - mongodb 系列 ~ mongo的副本集(3)
		
一 简介:今天咱们来聊聊mongodb复制的具体一些案例 二 副本集 1 当mongodb采用全量复制时,如何观察全量复制的进度 对比文件本身和primary大小 2 mongodb全量复制的过程 旧 ...
 - mongodb 3.2 分片 + 副本集
		
从图中可以看到有四个组件:mongos.config server.shard.replica set. mongos,数据库集群请求的入口,所有的请求都通过mongos进行协调,不需要在应用程序添加 ...
 - MongoDB 2.6配置副本集,支持端口号修改和用户登录认证
		
mongoDB系列之(二):mongoDB 副本集 Mongodb2.6副本集验证部署和认证 副本集有以下特点: 1. 最小构成是:primary,secondary,arbiter,一般部署是:pr ...
 - MongoDB(五)-- 副本集(replica Set)
		
一.副本集介绍 搭建副本集是为了实现mongodb高可用. Mongodb(M)表示主节点,Mongodb(S)表示备节点,Mongodb(A)表示仲裁节点.主备节点存储数据,仲裁节点不存储数据.客户 ...
 - mongodb带认证的副本集搭建
		
Mongodb副本集带用户认证的 概述 本次实验是在一台虚拟机上做的,正式环境一定要分开实现,以免影响服务的正常使用和性能. 准备工作: 操作系统:centos7.2 Mongodb版本:3.4.1 ...
 
随机推荐
- C# 多线程五之Task(任务)一
			
1.简介 为什么MS要推出Task,而不推Thread和ThreadPool,以下是我的见解: (1).Thread的Api并不靠谱,甚至MS自己都不推荐,原因,它将整个Thread类都不开放给Win ...
 - h5 端图片上传-模拟多张上传
			
1.由于后端的限制,上传图片到服务器只能的一张一张传2.显示图片预览是本地的图片3.根据服务器返回的结果拿到相应的路径保存到提交评论的接口中4.删除的时候,需要删除对应的路径,不要把删除的提交到评论的 ...
 - 关于C++11中的std::move和std::forward
			
std::move是一个用于提示优化的函数,过去的c++98中,由于无法将作为右值的临时变量从左值当中区别出来,所以程序运行时有大量临时变量白白的创建后又立刻销毁,其中又尤其是返回字符串std::st ...
 - CentOS7 配置 Redis单实例
			
Redis单实例安装 环境.准备 安装 作为服务启动 启动 1.环境.准备 系统 CentOS7 最小化安装. gcc安装,Make时需要. yum -y install gcc 下载安装包 下载当前 ...
 - jenkins持续集成的步骤
			
项目的持续集成分享 源代码管理 项目仓库 配置仓库 发布仓库 ci/cd相关 gitlab,管理版本,测试流水线 jenkins,对项目进行持续集成 各模块的关系 graph TD a(jenkins ...
 - 解决tomcat使用时catalina.out过大的问题
			
在项目上线之前需要做很多事情,其中最容易忘记的就是禁用不必要的日志和调整必要的参数. 调整参数这里主要指的是最大连接数,最小等待时间,虚拟机内存等. 而这里重点要提出的是,你需要禁用tomcat中不必 ...
 - SkipList 跳跃表
			
引子 考虑一个有序表:14->->34->->50->->66->72 从该有序表中搜索元素 < 23, 43, 59 > ,需要比较的次数分别为 ...
 - div或其他html控件的overflow使用滚动条
			
在编写html代码时, 有时候不想把控件撑大,滚动条就是个不错的选择 如下代码 <div style="height:auto !important;max-height:58px;o ...
 - 让IIS Express 也支持外部链接
 - vi/vim编辑器必知必会
			
一.我们为什么要学习vim编辑器? Linux的命令行界面下面有非常多的文本编辑器.比如经常听说的就有Emacs.pico.nano.joe与vim等.vim可以看做是vi的高级版.我们为什么一定要学 ...