(3)MongoDB 副本集运维策略

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 本文聊一聊 MongoDB 副本集运维窗口期的操作策略,最大程度地减少主节点不可用的时间。

P1 滚动维护/升级


MongoDB 副本集的维护/升级通常以滚动方式执行,依次在辅助节点上执行维护,而最后执行主节点维护。


  1. 在辅助节点上停止MongoDB服务,执行运维操作


  1. 在服务器上启动MongoDB服务


  1. 等待节点的MongoDB同步到最新的Oplog(追赶)


  1. 在副本集中的其他辅助节点上重复上述操作


假定一个副本集包含mon01(主节点),mon02(辅助)mon03(辅助),滚动运维通常需要:


  1. 先后在辅助节点mon03、mon02上进行维护


  1. 将主节点mon01降级(stepDown),等待选举新主节点,比如说mon02


  1. 在以前的主节点mon01上执行维护


如果主服务器意外终止/大多数辅助节点觉得与主节点失联,则辅助节点会在丢失心跳10秒钟后要求进行选举。


P2 快速选举


主节点降级,触发快速选举


退出(stepDown)主节点可加快故障转移过程,建议使用stepDown命令退出主节点以强制触发选举,而不是关闭(shutDownServer)主数据库 (辅助节点需花时间识别主节点失联)


减少electionTimeoutMillis阈值


辅助节点认定主节点失联的默认阈值是10s, 在滚动维护期间我们可人为缩短这个阈值,加快选举。但是运维完毕,请恢复这个默认设置。


rs.isMaster().me
// mon02:27000
// rs0:PRIMARY>
// on the new primary
var conf = rs.conf()
conf.settings.electionTimeoutMillis=10000
/*
rs.reconfig(conf)
{
  "ok": 1,
  "operationTime": Timestamp(1529034252, 1),
  "$clusterTime": {
    "clusterTime": Timestamp(1529034252, 1),
    "signature": {
      "hash": BinData(0, "AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
      "keyId": NumberLong(0)
    }
  }
}
*/

10s的阈值是合适的,我们要确保集群能够忽略和忍耐网络抖动或网络延迟, 减少不必要的重选。


P3  优选新主节点


一般情况下,会根据如下因素选择 主节点


  • 低复制滞后


  • 低网络延迟


若想指定某辅助节点mon02为下一个主节点,在其他辅助节点上运行rs.freeze(60)冻结它们成为主节点的资格;当你stepDown主节点mon01时,辅助节点mon02是唯一可以选择的主节点,这将加快选举速度。



您可以通过给予副本集成员比其他成员更高的member [n] .priority值来使其成为主节点。


cfg = rs.conf()
cfg.members[0].priority = 0.5
cfg.members[1].priority = 0.5
cfg.members[2].priority = 1
相关文章
|
15天前
|
机器学习/深度学习 运维 监控
运维别光救火了,聊聊怎么搞个“聪明点”的数据驱动策略
运维别光救火了,聊聊怎么搞个“聪明点”的数据驱动策略
60 1
|
2月前
|
机器学习/深度学习 运维 监控
运维不怕事多,就怕没数据——用大数据喂饱你的运维策略
运维不怕事多,就怕没数据——用大数据喂饱你的运维策略
79 0
|
3月前
|
运维 监控 负载均衡
高效运维实践:常见问题的应对策略与实践经验
本文探讨了运维工作中的五大核心挑战及应对策略,涵盖负载均衡优化、数据库性能提升、系统监控预警、容器化与微服务运维等方面,旨在帮助企业提升系统稳定性与运维效率。
|
12月前
|
存储 NoSQL MongoDB
掌握MongoDB索引优化策略:提升查询效率的关键
在数据库性能调优中,索引是提升查询效率的利器。本文将带你深入了解MongoDB索引的内部工作原理,探讨索引对查询性能的影响,并通过实际案例指导如何针对不同的查询模式建立有效的索引。不仅将涵盖单一字段索引,还会探讨复合索引的使用,以及如何通过分析查询模式和执行计划来优化索引,最终实现查询性能的最大化。
|
12月前
|
运维 监控 安全
高效运维管理:提升系统稳定性的策略与实践
【10月更文挑战第2天】 在当今数字化时代,运维管理成为企业IT部门的重要任务。本文将探讨如何通过高效的运维管理策略和最佳实践,提升系统的稳定性,确保业务持续平稳运行。通过分析常见问题、预防措施以及应对策略,我们将揭示高效运维的关键要素,助您打造一个可靠的IT环境。
|
12月前
|
存储 NoSQL MongoDB
MongoDB 复制(副本集)
10月更文挑战第17天
166 2
MongoDB 复制(副本集)
|
11月前
|
NoSQL 容灾 MongoDB
MongoDB主备副本集方案:两台服务器使用非对称部署的方式实现高可用与容灾备份
在资源受限的情况下,为了实现MongoDB的高可用性,本文探讨了两种在两台服务器上部署MongoDB的方案。方案一是通过主备身份轮换,即一台服务器作为主节点,另一台同时部署备节点和仲裁节点;方案二是利用`priority`设置实现自动主备切换。两者相比,方案二自动化程度更高,适合追求快速故障恢复的场景,而方案一则提供了更多的手动控制选项。文章最后对比了这两种方案与标准三节点副本集的优缺点,指出三节点方案在高可用性和数据一致性方面表现更佳。
840 5
|
11月前
|
运维 Prometheus 监控
运维自动化:提高IT效率的关键策略
在当今快速发展的IT领域,运维自动化已成为企业提升运营效率、降低错误率和成本的重要手段。随着云计算、大数据和人工智能技术的不断进步,实现运维流程的自动化不仅可行,而且变得日益重要。本文探讨了运维自动化的概念、关键技术及其在实际工作中的应用,旨在为IT专业人士提供一种高效管理和维护系统的方法。
|
运维 监控 安全
构建高效运维体系的策略与实践
在当今信息技术飞速发展的时代,运维作为保障信息系统稳定运行的关键环节,其重要性日益凸显。本文将探讨如何通过优化管理策略、引入先进技术和培养专业人才,构建一个高效、智能的运维体系,以应对日益复杂的技术环境和业务需求。
152 27
|
10月前
|
人工智能 运维 监控
自动化运维:提升IT效率的关键策略
在当今快速发展的信息技术时代,企业面临着不断增长的数据量和复杂的系统架构。为了保持竞争力,自动化运维成为提高IT部门效率和响应速度的关键策略。本文将探讨自动化运维的核心概念、实施步骤以及面临的挑战,旨在为IT专业人员提供实现高效运维管理的实用指南。
176 0

推荐镜像

更多