(3)MongoDB 副本集运维策略

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: 本文聊一聊 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月前
|
运维 Prometheus 监控
构建高效自动化运维系统的关键策略
【2月更文挑战第30天】随着云计算和微服务架构的兴起,现代IT运维环境变得愈加复杂多变。为保持业务连续性、提高响应速度并降低成本,企业亟需构建一个高效的自动化运维系统。本文将深入探讨自动化运维系统构建过程中的关键策略,包括工具和技术选型、流程优化、监控与告警体系搭建以及持续集成/持续部署(CI/CD)实践,旨在为读者提供一个清晰的构建蓝图和实用的实施建议。
|
NoSQL 关系型数据库 MySQL
MongoDB 慢查询语句优化分析策略
MongoDB查询语句太慢了,开启 Profiling 功能进行分析后发现,问题其实很好解决,涨知识了
446 0
|
4天前
|
运维 监控 安全
构建高效自动化运维体系的五大策略
【4月更文挑战第27天】在数字化转型的浪潮中,企业对于IT系统的稳定性和敏捷性要求日益增高。自动化运维作为提升效率、降低错误率、实现快速响应的关键技术手段,已经成为现代IT管理的重要组成部分。本文将探讨构建一个高效自动化运维体系的五大策略,包括基础设施即代码(IaC)的应用、监控与告警系统的集成、持续集成和持续部署(CI/CD)的实践、日志管理和分析以及灾难恢复计划的自动化,旨在为运维团队提供一条清晰的道路图,以支持他们在不断变化的技术环境中保持竞争力。
|
2月前
|
运维 监控 持续交付
构建高效自动化运维体系:策略与实践
在数字化时代,企业IT基础设施的管理和维护变得日益复杂。为了提高效率、降低错误率并快速响应市场变化,构建一个高效的自动化运维体系至关重要。本文将探讨自动化运维的核心策略,并通过实际案例分析展示如何将这些策略应用于日常管理中,以实现IT运维的优化。
20 0
|
2月前
|
人工智能 运维 监控
构建高性能微服务架构:现代后端开发的挑战与策略构建高效自动化运维系统的关键策略
【2月更文挑战第30天】 随着企业应用的复杂性增加,传统的单体应用架构已经难以满足快速迭代和高可用性的需求。微服务架构作为解决方案,以其服务的细粒度、独立性和弹性而受到青睐。本文将深入探讨如何构建一个高性能的微服务系统,包括关键的设计原则、常用的技术栈选择以及性能优化的最佳实践。我们将分析微服务在处理分布式事务、数据一致性以及服务发现等方面的挑战,并提出相应的解决策略。通过实例分析和案例研究,我们的目标是为后端开发人员提供一套实用的指南,帮助他们构建出既能快速响应市场变化,又能保持高效率和稳定性的微服务系统。 【2月更文挑战第30天】随着信息技术的飞速发展,企业对于信息系统的稳定性和效率要求
|
1天前
|
监控 NoSQL MongoDB
MongoDB索引机制与优化策略详解
【4月更文挑战第30天】本文深入解析MongoDB的索引机制,包括单字段、复合、地理空间、全文及哈希索引。介绍了创建与查看索引的方法,并提出了优化策略:选择性创建、使用复合索引、定期审查优化、避免不必要的索引扫描、利用索引前缀与覆盖索引,以及监控索引使用。通过这些策略,可提升MongoDB查询性能。
|
6天前
|
运维 监控 安全
构建高效自动化运维体系:策略与实践
【4月更文挑战第25天】在数字化转型的浪潮中,企业IT基础设施日趋复杂多变,传统的手动运维模式已难以满足快速响应和高效管理的需求。本文探讨了构建一个高效自动化运维体系的关键环节,并结合实际案例分析,提出了一系列切实可行的策略与实践方法。文章着重分析了自动化工具选择、流程设计优化以及持续监控的重要性,并讨论了如何通过这些手段降低运维成本,提升系统稳定性和安全性。
|
7天前
|
存储 运维 Kubernetes
构建高效自动化运维体系:Ansible与Kubernetes的协同策略
【4月更文挑战第25天】 在当今快速迭代的软件开发过程中,自动化运维已成为提升效率、保证一致性和降低人为错误的关键。本文将探讨如何利用Ansible作为配置管理工具,以及Kubernetes作为容器编排系统,共同构建一个高效、可靠的自动化运维体系。文章首先概述了自动化运维的基本概念及其重要性,随后详细分析了Ansible与Kubernetes在自动化流程中的作用与优势,并通过一系列实践案例,展示了两者如何协同工作以优化部署、扩缩容和灾难恢复等关键运维任务。最后,文中还讨论了在实际应用中可能遇到的挑战及相应的解决策略,为读者提供了一套完整的自动化运维解决方案参考。
|
12天前
|
存储 运维 监控
提升数据中心效率的关键策略:自动化运维流程
【4月更文挑战第20天】随着企业对数据处理和存储需求的不断增长,数据中心的效率成为了优化的焦点。在本文中,我们将探讨自动化在数据中心运维中的应用,并分析其如何显著提升操作效率、降低成本以及提高服务水平。通过案例研究和最佳实践的分享,读者将获得实施自动化运维流程的实用指南,以支持其在不断变化的技术环境中保持竞争力。
|
22天前
|
机器学习/深度学习 存储 运维
构建高效自动化运维体系的五大策略
【4月更文挑战第10天】在数字化转型的浪潮中,企业IT基础设施的复杂性与日俱增,传统的手动运维模式已难以满足快速响应和高效率的需求。本文将探讨构建一个高效自动化运维体系的五大策略,包括监控与告警的智能化、配置管理自动化、故障自愈能力的提升、日志管理的优化以及持续集成和部署(CI/CD)的实践。这些策略将帮助企业减轻运维负担,提高系统稳定性和业务敏捷性。