1. 控制成员状态
1.1 把主节点变为从节点
rs.stepDown()
1.2 阻止选举

如果需要对主节点维护,不想期间其他从节点选举为主节点,则可以

rs.freeze(10000)

维护完成后,只需要再次执行以下命令即可

rs.freeze(0)
2. 监控复制
2.1 获取状态
rs.status()
2.2 可视化复制图谱
> server1.adminCommand({replSetGetStatus:1})['syncingTo']
server0:27017

表示server0是server1的复制源。

MongoDB会根据ping的时间会选择同步源。MongoDB维护着心跳时间的滑动平均值,当其选择同步源的时候,它会查找离它最近并且数据比它新的成员。因此自动复制链不会出现复制循环的问题

自动复制链的缺点是:更多复制链意味着复制需要更长的时间,最差情况复制路径会变为一条线A->B->C,当然可以通过以下命令自定义同步源:

secondary.adminCommand({'replSetSyncFrom': 'server0:27017'})
2.3 复制循环

由2.2可知,自定义同步源可能出现复制循环的问题,所以需要rs.status()仔细检查

2.4 禁用复制链

链式复制是指一个从节点从另一个从节点(而不是主节点)进行同步,可以通过如下操作实现强制每个成员从主节点同步(如果主节点不可用,则会从从节点进行同步)

var config = rs.config()
config.settings = config.settings || {}
config.settings.chainingAllowed = false
re.reconfig(config)
2.5 计算延迟
// 给出了主节点oplog的简要信息,包括大小和操作的日期范围
rs.printReplicationInfo()
// 获取每个成员的syncedTo值及最后一条oplog写入每个从节点的时间
rs.printSalveReplicationInfo()
2.6 调整oplog大小
// 检查oplog的当前大小,已MB显示集合大小
> user local
> db.oplog.rs.stats(1024*1024).maxSize
// 更改oplog大小为16G
> db.adminCommand({replSetResizeOplog: 1, size: 16000})

一般情况下,不应减少oplog的大小,毕竟只是占用磁盘空间,并且可以防止复制末尾脱节问题。

欢迎关注公众号算法小生或沈健的技术博客

12.MongoDB系列之副本集管理的更多相关文章

  1. mongodb系列之---副本集配置与说明

    在配置副本集之前,我们先来了解一些关于副本集的知识. 1,副本集的原理 副本集的原理与主从很相似,唯一不同的是,在主节点出现故障的时候,主从配置的从服务器不会自动的变为主服务器,而是要通过手动修改配置 ...

  2. 10.MongoDB系列之副本集组成

    1. 同步 复制是指多台服务器保持相同的数据副本.MongoDB通过保存操作日志(oplog)实现复制功能. oplog存在于主节点local数据库中的一个固定集合,包含了主节点执行的每一次写操作. ...

  3. Mongodb主从复制 及 副本集+分片集群梳理

    转载努力哥原文,原文连接https://www.cnblogs.com/nulige/p/7613721.html 介绍了Mongodb的安装使用,在 MongoDB 中,有两种数据冗余方式,一种 是 ...

  4. MongoDB 复制(副本集)学习

    MongoDB 复制(副本集)学习 replication set复制集,复制集,多台服务器维护相同的数据副本,提高服务器的可用性.MongoDB复制是将数据同步在多个服务器的过程.复制提供了数据的冗 ...

  5. Mongodb 笔记06 副本集的组成、从应用程序连接副本集、管理

    副本集的组成 1. 同步:MongoDB的复制功能是使用操作日志oplog实现的,操作日志包含了主节点的每一次写操作.oplog是主节点的local数据库中的一个固定集合.备份节点通过查询整个集合就可 ...

  6. Mongodb 笔记06 副本集的组成、从应用程序连接副本集、管理

    副本集的组成 1. 同步:MongoDB的复制功能是使用操作日志oplog实现的,操作日志包含了主节点的每一次写操作.oplog是主节点的local数据库中的一个固定集合.备份节点通过查询整个集合就可 ...

  7. MongoDB 副本集管理(不定时更新)

    简介: 前面介绍完了副本集的搭建.用户的管理.参数和日常操作的说明,那副本集搭建好该如何管理呢?现在来说明下副本集的日常查看和管理. 说明: 1)查看命令行参数:db.serverCmdLineOpt ...

  8. MongoDB 副本集管理

    一.以单机模式启动成员节点 有时候出于维护的需要,需要以单机模式启动某个节点而不是一个副本集成员身份. 1).首先查询服务器命令行参数 db.serverCmdLineOpts() 2).关闭当前副本 ...

  9. MongoDB 安装及副本集简单操作

    安装MongoDB 3.4 # 查看现有yum源 [root@localhost ~]# ll /etc/yum.repos.d/ total 36 -rw-r--r--. 1 root root 1 ...

随机推荐

  1. 使用CSS实现多种Noise噪点效果

    声明:本文涉及图文和模型素材仅用于个人学习.研究和欣赏,请勿二次修改.非法传播.转载.出版.商用.及进行其他获利行为. 背景 在插画中添加噪点肌理可以营造出一种自然的氛围.噪点肌理可以用于塑造阴影.高 ...

  2. 【ARK UI】HarmonyOS ETS如何创建PixeMap并显示Image组件上

    ​参考资料 图片处理 Context模块 api讲解 image.createPixelMap createPixelMap(number: fd, options: InitializationOp ...

  3. 125. 验证回文串--LeetCode

    来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/valid-palindrome 著作权归领扣网络所有.商业转载请联系官方授权,非商业转载请注明出处. ...

  4. net::ERR_BLOCKED_BY_CLIENT 错误导致页面加载不出来

    AdBlock 禁止广告的插件屏蔽你的网络请求,屏蔽了一些重要的文件,导致页面加载不出来. 解决方案: 1.修改资源文件的名称,把ad替换成其他字符: 2.关闭广告拦截器: 3.广告拦截器设置白名单.

  5. C#基础_枚举

    一.在学习枚举之前,首先来听听枚举的优点. 1.枚举能够使代码更加清晰,它允许使用描述性的名称表示整数值. 2.枚举使代码更易于维护,有助于确保给变量指定合法的.期望的值. 3.枚举使代码更易输入. ...

  6. 【lwip】005-lwip内核框架剖析

    目录 前言 5.1 lwip初始化 5.2 内核超时 5.2.1 内核超时机制 5.2.2 周期定时机制 5.2.3 内核超时链表数据结构 5.2.4 内核超时初始化 5.2.6 超时的溢出处理 5. ...

  7. Dapr中国社区活动之 分布式运行时开发者日 (2022.09.03)

    自2019年10月首次发布以来,Dapr(Distributed Application Runtime,分布式应用运行时)因其"更稳定"."更可靠".&quo ...

  8. 数据仓库与hive

    数据仓库与hive hive--数据仓库建模工具之一 一.数据库.数据仓库 1.1 数据库 关系数据库本质上是一个二元关系,说的简单一些,就是一个二维表格,对普通人来说,最简单的理解就是一个Excel ...

  9. 《Java基础——break与continue用法详解》

    Java基础--break与continue用法详解       1. break语句: 规则: 1. 仅用于循环语句和switch语句当中,用于跳出循环. 2. 当只有一层循环时,则直接跳出循环,不 ...

  10. 微服务系列之授权认证(三) JWT

    1.JWT简介 官方定义:JWT是JSON Web Token的缩写,JSON Web Token是一个开放标准(RFC 7519),它定义了一种紧凑的.自包含的方式,可以将各方之间的信息作为JSON ...