副本集是mongodb提供的一种高可用解决方案.相对于原来的主从复制,副本集能自动感知primary节点的下线,并提升其中一个Secondary作为Primary. 整个过程对业务透明,同时也大大降低了运维的成本. 架构图如下: MongoDB副本集的角色 1. Primary 默认情况下,读写都是在Primary上操作的. 2. Secondary 通过oplog来重放Primary上的所有操作,拥有Primary节点数据的完整拷贝. 默认情况下,不可写,也不可读. 根据不同的需求,Secon…
Replica Sets  复制 (副本集) node1: 10.0.0.10node2: 10.0.0.11node3: 10.0.0.12 副本集结构图:…
一.问题引出 假设我们生产上的mongodb是单实例在跑,如果此时发生网络发生问题或服务器上的硬盘发生了损坏,那么这个时候我们的mongodb就使用不了.此时我们就需要我们的mongodb实现高可用,当一个mongod实例出现问题后,其余的mongod实例可以继续提供服务,即自动故障转移.mongodb的复制集(replica set)就可以实现我们的这个需求. 二.什么是复制集 mongodb的复制集指的是一组拥有相同实例的mongod实例所组成的集群.其中有一台服务器充当主节点(Primar…
1 概述 1.1 MHA 简介 MHA - Master High Availability 是由 Perl 实现的一款高可用程序,出现故障时,MHA 以最小的停机时间(通常10-30秒)执行 master 的故障转移以及 slave 的升级.MHA 可防止复制一致性问题,并且易于安装,不需要改变现有部署. MHA 由MHA manager和MHA node组成, MHA manager是一个监控管理程序,用于监控MySQL master状态; MHA node是具有故障转移的工具脚本,如解析…
1 MMM 介绍 1.1 简介 MMM 是一套支持双主故障切换以及双主日常管理的第三方软件.MMM 由 Perl 开发,用来管理和监控双主复制,虽然是双主架构,但是业务上同一时间只允许一个节点进行写入操作. MMM 包含两类角色: writer 和 reader, 分别对应读写节点和只读节点. 使用 MMM 管理双主节点的情况下,当 writer 节点出现宕机(假定是 master1),程序会自动移除该节点上的读写 VIP,切换到 Master2 ,并设置 Master2 为 read_only…
一.环境介绍 1.机器信息 10.40.6.68 10.40.6.108 10.40.6.110 软件环境为centos 6.x 2.mongodb 下载链接地址 https://www.mongodb.org/dl/linux/x86_64-rhel62?_ga=2.137326704.1914689897.1499321739-372422474.1499321739 使用二进制文件包安装,版本选择的是mongodb 3.2.15 二.完整步骤 1.下载安装包解压 .tgz -C /usr/…
背景 有需求需要对mongodb做一个容灾备份.根据官网,发现mongodb最新版本(4.0)已经抛弃了主从模式而采用副本集进行容灾.副本集的优势在于:"有自动故障转移和恢复特性,其任意节点都可以是主节点,并能实现读写分离,提供高负载".官方建议副本集最低配置三个节点.关于副本集的原理更多请参考这位小姐姐的博客 搭建步骤 制作mongodb镜像 首先需要做一个mongodb的docker镜像,这里我采用dockerfile进行制作,dockerfile内容如下: # 指定镜像源 FRO…
我们的 mongo 副本集有三台 mongo 服务器:一台主库两台从库. 主库进行写操作,两台从库进行读操作(至于某次读操作到底路由给了哪台,仲裁决定).实现了读写分离.这还不止,假设主库宕掉,还能实现不须要用户干预的情况下.将主库自己主动切换到另外两台从库中的某一台,真正实现了 db 的高可用. 1. 背景 1.1 环境 CPU核数:4 内存配置:8G 带宽:100MB 磁盘:系统盘 40G,数据盘 180G 操作系统版本号:Ubuntu 14.04 64位 1.2 系统部署结构图 2. Mo…
本文是对MongoDB副本集常用操作的一个汇总,同时也穿插着介绍了操作背后的原理及注意点. 结合之前的文章:MongoDB副本集的搭建,大家可以在较短的时间内熟悉MongoDB的搭建和管理. 下面的操作主要分为两个部分: 1. 修改节点状态 主要包括: 1> 将Primary节点降级为Secondary节点 2> 冻结Secondary节点 3> 强制Secondary节点进入维护模式 2. 修改副本集的配置 1> 添加节点 2> 删除节点 3> 将Secondary节…
本文是对MongoDB副本集常用操作的一个汇总,同时也穿插着介绍了操作背后的原理及注意点. 结合之前的文章:MongoDB副本集的搭建,大家可以在较短的时间内熟悉MongoDB的搭建和管理. 下面的操作主要分为两个部分: 1. 修改节点状态 主要包括: 1> 将Primary节点降级为Secondary节点 2> 冻结Secondary节点 3> 强制Secondary节点进入维护模式 2. 修改副本集的配置 1> 添加节点 2> 删除节点 3> 将Secondary节…