MongoDB--架构搭建(主从、副本集)之副本集

  • 任何时间点只有一个活跃节点,其他为备份节点,当活跃节点泵机,将会通过选举规则,从备选节点选一个当活跃节点,当泵机的节点恢复之后,则变为备用节点。
  • 节点类型

stabdard:常规节点,存储完整数据,参与投票,有可能成为活跃节点

passive:投票节点,存储完整数据备份,不参与投票,不能成为活跃节点

arbiter:仲裁节点,不存数据,参与投票,不能成为活跃节点

  • 选举规则:根据节点的优先权(数字0-1000包含1000)进行从大到小排序(0为不能变成活跃节点),如果优先权相同,则判断节点的数据新旧程度,最新的节点成为活跃节点,注意事项:如果备份节点最新的数据是3秒前同步的,则成为活跃节点时,则变成备份节点的数据为最新,其他的节点(包括原来活跃节点)的数据进行回滚,然后与当前活跃点进行同步。同步之前,其他节点不能成为活跃节点的候选者
  • 环境搭建,建立文件目录 MS\Set1\db、log、配置文件    MS\Set2\db、log、配置文件    MS\Set2\db、log、配置文件

1、配置文件如下:

实例1

dbpath=D:\MSset\Set1\db

logpath=D:\MSset\Set1\s1.log

directoryperdb=true

logappend=true

replSet=testrs/127.0.0.1:28882

port=28881

oplogSize=10000

实例2

dbpath=D:\MSset\Set2\db

logpath=D:\MSset\Set2\s2.log

directoryperdb=true

logappend=true

replSet=testrs/127.0.0.1:28881

port=28882

oplogSize=10000

实例3

dbpath=D:\MSset\Set3\db

logpath=D:\MSset\Set3\s3.log

directoryperdb=true

logappend=true

replSet=testrs/127.0.0.1:28882 (配置文件指定replSet为副本集群的名称与关联的对应IP,可以只关联一个,开始之后Mongo可以自动感应集群其他机器)

port=28883

oplogSize=10000

2、使用mongod命令 启动实例服务。mongod --config D:\MSset\Set1\conf.conf(后面2个实例启动命令于此雷同)

3、使用mongo 命令进行登录其中一个实例, mongo 127.0.0.1:28882

因为使用配置文件只是做了物理关联,需要手动的执行命令将集群串起来,此时登录服务器是不能做读、写操作的,

需要执行命令,db.getMongo().setSlaveOk()之后获得读写权限,然后执行命令,将Mongo各个实例串联起来

db.runCommand({

"replSetInitiate":{

"_id":"testrs",

"members":[

{

"_id":1,

"host":"127.0.0.1:28881"

},

{

"_id":2,

"host":"127.0.0.1:28882"

},

{

"_id":3,

"host":"127.0.0.1:28883"

}

]

}

})

项目文件:

http://pan.baidu.com/s/1o8lwcUA

时间: 2024-11-20 00:32:22

MongoDB--架构搭建(主从、副本集)之副本集的相关文章

搭建高可用MongoDB集群 副本

工作中使用到了mongo,就自己研究了一下,总结了一下,会遇到的一些问题,有不对的地方还请各位牛人指导. 简单说一下 副本集具有多个副本保证了容错性,就算一个副本挂掉了还有很多副本存在 主节点挂掉了,整个集群内会自动切换 副本集中的副本节点在主节点挂掉后通过心跳机制检测到后,就会在集群内发起主节点的选举机制,自动选举一位新的主服务器 我们来看看mongoDB副本集的架构图:(注:此图是网上切下来的,比我画的好) 主服务器挂掉后的架构如下图: 如下是我的布署操作 我用的是VMware 11虚拟机

搭建高可用的MongoDB集群副本集

什么是副本集呢?打魔兽世界总说打副本,其实这两个概念差不多一个意思.游戏里的副本是指玩家集中在高峰时间去一个场景打怪,会出现玩家暴多怪物少的情况,游戏开发商为了保证玩家的体验度,就为每一批玩家单独开放一个同样的空间同样的数量的怪物,这一个复制的场景就是一个副本,不管有多少个玩家各自在各自的副本里玩不会互相影响. mongoDB的副本也是这个,主从模式其实就是一个单副本的应用,没有很好的扩展性和容错性.而副本集具有多个副本保证了容错性,就算一个副本挂掉了还有很多副本存在,并且解决了上面第一个问题"

Mongodb的入门(8)mongodb4副本集

介绍: mongo4云19年2月16开发公布,至今已经半年,前段时间一直在用mongo3系列,4X系列新增很多新特性,下面我来简单介绍一下,先从副本集开始 副本集: 主节点宕机时从节点会自动切换成主节点. mongo4后不再提供主从复制机制 搭建副本集步骤: 第一步:安装mongo   参考:Mongodb的入门(7)window安装mongodb4 cmd >  mongo 默认安装成功了(mongo4的安装比3.x简单,我安装博客有部分图没截图,大家有需要的可以百度一下mongo4的安装)

MongoDB 部署复制集(副本集)

环境 操作系统:Ubuntu 18.04 MongoDB: 4.0.3 服务器 首先部署3台服务器,1台主节点 + 2台从节点 3台服务器的内容ip分别是: 10.140.0.5 (主节点) 10.140.0.6 (从节点01) 10.140.0.7 (从节点02) 安装MongoDB 接下来,需要在每一台服务器上安装MongoDB. 完整安装过程可参考官方文档. 为了方便,本文提供MongoDB的一键安装脚本. 切换成root用户 sudo su - 运行安装脚本 wget https://g

【MongoDB】windows平台搭建Mongo数据库复制集(类似集群)(转)

原文链接:[MongoDB]windows平台搭建Mongo数据库复制集(类似集群)(一) Replica  Sets(复制集)是在mongodDB1.6版本开始新增的功能,它可以实现故障自动切换和自动修复功能成员节点的功能,各个DB之间的数据完全一致,大大降低了单点故障的风险. [] 以上图示是三个节点的Replica Set架构.该图来源于红丸编写的<Mongodb管理与开发精要>这本书.从上图可以看出,结构类似与一个集群,其实完全可以当做一个集群.因为它确实和集群实现的作用是相同的. 一

SpringMVC整合Mongodb开发 架构搭建

系统环境: 操作系统:  windows xp 数 据 库:  mongodb2.0.6 驱 动 包: Spring3.1.2 + mongodb2.7.3 + spring-data-mongodb1.0.1 说明: 对于xp系统用户,在执行mongod.exe安装mongodb时 出现,无法定位程序输入点 InterlockedCompareExchange64 于动态链接库KERNEL32.dll上,这是因为最新的开发分支已经不再支持xp.也就是说你的mongodb安装包不支持xp系统.V

基于DR模式的keepalived主从模式高可用架构搭建

一:架构图示 2.keepalived是什么? Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机 ,或工作出现故障,Keepalived将检测到,通过VRRP协议,将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后 Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器. 3.VRRP协议是什么? VRRP(Virtual Router Redundancy Protoc

drbd+heartbeat+nfs高可用架构搭建

一.客户需求 1.需求描述 有些客户有自己的存储设备,但是并没有集群文件系统服务,所以如果我们多个节点(计算节点)如果想同时使用其中的一个块且要保证高可用的话,就需要我们自己来完成类似集群文件系统的服务组合,在此我们使用的服务组合是:iscsi共享+drbd+heartbeat+nfs. 2.服务说明 Iscsi共享:这里通过iscsi共享服务将存储设备上的存储块共享出去,提供节点(NC1+NC2)使用,此处我们将在iscsi服务短创建两个镜像充当块设备. Drbd   :服务器之间镜像块设备内

keepalived+nginx搭建高可用and负载均衡集群

keepalived+nginx搭建高可用and负载均衡集群 前言 因生产环境需要,现需要搭建一个前端为nginx的HA双向互备.后端为nginx代理的loadbalance负载均衡集群.nginx进程基于于Master+Slave(worker)多进程模型,自身具有非常稳定的子进程管理功能.在Master进程分配模式下,Master进程永远不进行业务处理,只是进行任务分发,从而达到Master进程的存活高可靠性,Slave(worker)进程所有的业务信号都由主进程发出,Slave(worke

在Windows Server 2012 R2中搭建SQL Server 2012故障转移集群

需要说明的是我们搭建的SQL Server故障转移集群(SQL Server Failover Cluster)是可用性集群,而不是负载均衡集群,其目的是为了保证服务的连续性和可用性,而不是为了提高服务的性能. SQL Server始终在负载均衡集群方面都缺少自己的产品,多由第三方厂家提供,但SQL Server故障转移集群却由来已久,在SQL Server 2012还提供了一个可用性组(AlwaysOn High Availability Groups)的新特性,我们知道微软的故障转移集群(W