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. Visual Studio Code 中文设置教程

    本文仅供学习交流使用,如侵立删!demo下载见文末 Pycharm中文设置教程 1.首先打开VisualStudioCode,点击扩展:extensions. 2.搜索chinese. 3.选择需要的 ...

  2. B端产品需求分析与优先级判断

    需求分析是产品经理工作中的重要一部分,而对B端产品经理来说,因为业务的特殊性,所以需求分析更考验产品经理的基础能力比如还原场景中业务调研的能力.需求价值分析中对价值的界定等. B端厂商的产品需求多数来 ...

  3. ETCD快速入门-03 常用命令

    3. ETCD 常用命令     etcdctl是一个命令行的客户端,它提供了一些命令,可以方便我们在对服务进行测试或者手动修改数据库内容.etcdctl与kubectl和systemctl的命令原理 ...

  4. MapReduce核心原理(下)

    MapReduce 中的排序 MapTask 和 ReduceTask 都会对数据按key进行排序.该操作是 Hadoop 的默认行为,任何应用程序不管需不需要都会被排序.默认排序是字典顺序排序,排序 ...

  5. java数组---稀疏数组与数组之间的相互转化

    public static void main(String[] args) { int[][]array1=new int[11][11]; array1[1][2]=1; array1[2][3] ...

  6. BI如何配置“花生壳”,看这一篇就够了

    花生壳作为一款免费的内网穿透软件,在软件行业备受青睐.在做好产品的同时,如何让客户轻松看到,也是非常有必要的.本篇将带领大家使用"花生壳"软件完成BI数据分析的配置.第一步:下载安 ...

  7. C语言小游戏: 推箱子 支线(一)--1

    好家伙,考完试了 回顾一下2021 回顾一下某次的作业 妙啊 所以, 做一个推箱子小游戏 1.先去4399找一下关卡灵感 就它了 2.在百度上搜几篇推箱子, 参考其中的"■ ☆"图 ...

  8. docker容器数据卷的使用

    什么是容器数据卷 docker的理念回顾 将应用和运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对于数据的要求,是希望能够持久化的! 就好比,你安装一个MySQL,结果你把容器删了,就相当于 ...

  9. Spring集成测试

    Spring 集成测试 需要再类的头部加入 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration({"classpath ...

  10. Docker_删除none镜像

    Docker 删除 none 镜像 docker images|grep none|awk '{print $3}'|xargs docker rmi