[mongo]上线及升级

news/2024/11/22 22:03:36/

MongoDB 上线及升级

性能测试

  • 真实压力,对集群完成充分的性能测试
  • 压测过程中各项指标表现,例如 CRUD 达到多少,连接数达到多少等
  • 根据正常指标范围配置监控阈值
  • 根据压测结果按需调整硬件资源

上线前:环境检查

  • 要求对生产环境所使用的操作系统进行检查和调整
    • 禁用 Transparent Huge Page,否则会影响数据库效率
      • NUMA(非一致性存储访问)是一种计算机体系结构,用于处理多处理器系统中的内存访问。在某些情况下,启用NUMA可能会导致大量的swap交换,这可能会对系统性能产生负面影响。如果你遇到了这个问题,禁用NUMA可能是一个解决方案
      • echo 0 > /proc/sys/kernel/numa_balancing
      • bcdedit /set numa off
      • 重启系统
    • 禁用 NUMA,否则在某些情况下会引起突发大量swap交换
    • tcp_keepalive_time 调整为120秒,避免一些网络问题
    • ulimit -n,避免打开文件句柄不足的情况
    • 关闭 atime提高数据文件访问效率
    • 更多检查参考

上线后

  • 性能监控
    • 为防止突发状况,应对常见性能指标进行监控以及时发现问题
  • 定期健康检查
    • mongod 日志
    • 环境设置是否有变动
    • MongoDB 配置是否有变动

MongoDB 版本号

  • MongoDB 主版本号 大约一年发布一次
    2.0 / 2.2 / 2.4 / 2.6
    3.0 / 3.2 / 3.4 / 3.6
    4.0 / 4.2

  • 小版本号

    • 主版本发布后的 bug fix 及小功能增强和主版本通常没有 API 或不兼容 1-2个月发布一次 小版本通常可以直接原地升级
  • 主版本升级流程

    • image

MongoDB 单机升级流程

  • image

MongoDB 复制集升级流程

  • image

MongoDB 分片集群升级流程

  • image

版本升级:在线升级

  • MongoDB支持在线升级,即升级过程中不需要间断服务

  • 升级过程中虽然会发生主从节点切换,存在短时间不可用

    • 3.6版本开始支持自动写重试可以自动恢复主从切换引起的集群暂时不可写
    • 4.2开始支持的自动读重试则提供了包括主从切换在内的读问题的自动恢复
  • 升级需要逐版本完成,不可以跳版本

    • 正确:3.2->3.4->3.6->4.0->4.2
    • 错误:3.2->4.2
    • 原因:
      • MongoDB复制集仅仅允许相邻版本共存
      • 有一些升级内部数据格式如密码加密字段,需要在升级过程中由mongo进行转换

升级流程:降级

  • 如果升级无论因何种原因失败,则需要降级到原有旧版本
  • 滚动降级过程中集群可以保持在线,仅在切换节点时会产生一定的不可写时间
  • 降级前应先去除已经用到的新版本特性。例如用到了 NumberDecimal 则应把所有使用
    NumberDecimal 的文档先去除该字段
  • 通过设置 FCV(Feature Compatibility Version)可以在功能上降到与旧版本兼容; • - FCV 设置完成后再滚动替换为旧版本。

http://www.ppmy.cn/news/1014266.html

相关文章

Jmeter响应中的乱码问题

文章目录 问题描述解决办法 问题描述 Jmeter在访问接口的时候,响应内容如果有中文可能会显示乱码 响应页面没有做编码处理,JMeter默认按照ISO-8859-1编码格式进行解析 解决办法 在线程组中添加BeanShell PostProcessor后置处理器 prev.setDataEnco…

南卡签约游泳冠军傅园慧,创造防水运动耳机的新天花板!

近日,国内骨传导运动耳机龙头品牌NANK南卡,正式官宣知名游泳冠军傅园慧出任品牌形象大使。在此之外,南卡品牌方还特邀了同样作为游泳冠军的孙杨,以及知名演员张新成、流行歌手段奥娟等多位明星来体验旗下的运动耳机,皆…

走出迷宫的最少步数and第一条出路

题面 题目描述 一个迷宫由 R 行 C 列格子组成,有的格子里有障碍物,不能走;有的格子是空地,可以走。 给定一个迷宫,求从左上角走到右下角最少需要走多少步(数据保证一定能走到)。只能在水平方向或垂直方向走&#xff0c…

无涯教程-Perl - bless函数

描述 此函数告诉REF引用的实体,它现在是CLASSNAME包中的对象,如果省略CLASSNAME,则为当前包中的对象。建议使用bless的两个参数形式。 语法 以下是此函数的简单语法- bless REF, CLASSNAMEbless REF返回值 该函数返回对祝福到CLASSNAME中的对象的引用。 例 以下是显示其…

SolidUI社区-根据Prompt打造人设

背景 随着文本生成图像的语言模型兴起,SolidUI想帮人们快速构建可视化工具,可视化内容包括2D,3D,3D场景,从而快速构三维数据演示场景。SolidUI 是一个创新的项目,旨在将自然语言处理(NLP)与计算机图形学相…

64x8com的LCD液晶屏驱动芯片IC,VK1625完美兼容市面所有1625驱动芯片

产品型号:VK1625 产品品牌:VINKA/元泰 封装形式:QFP100 LQFP100 DICE/裸片 COB邦定片 定制COG 专业工程服务,技术支持!用芯服务! 概述: VK1625B是一个64x8的LCD駆动器. 可软件程控使其适用于多样化的…

【Docker晋升记】No.1--- Docker工具核心组件构成(镜像、容器、仓库)及性能属性

文章目录 前言🌟一、Docker工具🌟二、Docker 引擎🌏2.1.容器管理:🌏2.2.镜像管理:🌏2.3.资源管理:🌏2.4.网络管理:🌏2.5.存储管理:&am…

Redis 加入服务列表自启动

1、下载reids windows版本,选择zip格式下载 2、解压zip,并进入路径; 3、命令提示符(cmd) 进入解压后的路径后,输入指令:redis-server --service-install redis.windows.conf; 4、如…