(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
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
2月前
|
运维 监控 数据可视化
构建高效自动化运维体系:策略与实践
【7月更文挑战第55天】 在数字化转型的浪潮中,企业的IT基础设施日益复杂多变。为了确保业务的连续性和效率,构建一个高效的自动化运维体系变得至关重要。本文将探讨自动化运维的核心策略,并分享一系列实践经验,以帮助读者构建和维护一个健壮、灵活且可持续发展的自动化运维环境。从基础架构即代码(Infrastructure as Code, IaC)到持续集成/持续部署(CI/CD),再到监控和日志管理,我们将详细阐述如何通过这些方法和技术来提升运维效率和响应速度。
|
2月前
|
人工智能 运维 监控
构建高效自动化运维流程的策略与实践
【7月更文挑战第55天】在数字化转型的浪潮下,企业IT基础设施日趋复杂多变,传统的手动运维方式已难以满足快速响应和高稳定性的需求。本文将探讨如何通过自动化工具和策略,构建一个高效的自动化运维流程,旨在提高系统部署的速度、准确性和可靠性,同时降低人为错误和运营成本。我们将详细分析自动化运维的关键组件,以及在实施过程中可能遇到的挑战和解决方案。
|
2月前
|
运维 监控 安全
云计算时代的运维新策略
【8月更文挑战第20天】随着云计算的普及,传统的运维模式已不再适应现代企业的需求。本文将探讨云计算时代下,如何转变运维思路,采用新的运维策略以提高效率和降低成本。
50 3
|
6天前
|
运维 监控 大数据
高效运维管理:提升系统稳定性的策略与实践
在当今信息技术飞速发展的时代,运维管理作为保障系统稳定运行的关键环节,其重要性不言而喻。本文将深入探讨如何通过优化运维流程、引入自动化工具和建立完善的监控体系等策略,来有效提升系统的稳定性。同时,结合具体实践案例,分析这些策略在实际工作中的应用效果,为运维人员提供有益的参考和启示。
35 6
|
11天前
|
运维 监控 持续交付
构建高效运维体系的策略与实践xxxx xxxx-xx-xx xx:xx 发布于 xx
在当今数字化浪潮中,运维作为信息技术的重要支柱,其效率与创新能力直接关系到企业信息系统的稳定性和业务发展的可持续性。本文从提升运维效率的角度出发,探讨了如何通过策略规划、自动化工具应用、监控优化及团队建设等手段,实现运维工作的高效化和价值最大化,旨在为运维领域从业者提供一套可借鉴和实施的高效运维体系构建方案。
|
2月前
|
运维 监控 Devops
运维自动化:提升效率与减少人为错误的策略
【8月更文挑战第12天】在信息技术的海洋中,运维自动化如同一艘装备精良的航船,引领企业驶向高效、精准的彼岸。本文将深入探讨运维自动化的重要性,分析其如何通过智能化工具和策略,实现流程优化、效率提升及错误率降低。我们将一同见证,当创新技术与运维实践相结合时,是如何为企业带来革命性变革的。
|
16天前
|
存储 NoSQL Shell
MongoDB复制(副本集)总结
这篇文章是关于MongoDB副本集的总结,包括复制原理、设置副本集、案例分析等内容。
29 1
|
21天前
|
运维 监控 安全
高效运维管理:提升系统可靠性的策略与实践
本文将深入探讨高效运维管理的关键策略和实践,旨在帮助运维团队提高系统的可靠性、可用性和稳定性。通过分析常见的运维挑战,提出相应的解决方案,并结合实际案例进行说明,为读者提供一套行之有效的运维管理指南。无论是新手还是经验丰富的运维工程师,都能从中获得有价值的见解和实用技巧。
|
23天前
|
运维 监控 安全
提升运维效率的五大策略
本文将通过分析五个关键策略,探讨如何在运维工作中实现效率的提升。这些策略包括自动化工具的应用、持续集成与持续部署(CI/CD)的实践、有效的监控和日志管理、优化的文档和知识共享以及定期的安全审计。每个策略都提供了具体实施建议和预期效果,帮助运维团队在快节奏的技术环境中保持高效运作。
|
1月前
|
运维 监控 Cloud Native
云原生时代的运维策略:从反应式到自动化
在云计算的浪潮下,运维领域经历了翻天覆地的变化。本文将带你领略云原生时代下的运维新风貌,探索如何通过自动化和智能化手段,实现从传统的反应式运维向主动、智能的运维模式转变。我们将一起见证,这一变革如何助力企业提升效率,保障服务的连续性与安全性,以及运维人员如何适应这一角色的转变,成为云原生时代的引领者。
27 8