当前位置: 首页 > ops >正文

mongodb升级、改单节点模式

目前我有三个节点的mongodb,A:主节点,B:此节点,C:投票节点,目前版本号为5.0.16,后续需要把C节点改为单节点mongodb,保留原来集群的数据,并升级到5.0.31版本。

升级版本

这部分较为顺利,直接通过这篇文章就升级完成了

投票节点改为副本节点

由于之前C节点设置了arbiterOnly参数,使得该节点仅能投票,而没有保存数据,所以需要先将该节点升级为副本节点
在主节点执行:

rs0:PRIMARY> rs.remove("10.6.212.87:27017")
{"ok" : 1,"$clusterTime" : {"clusterTime" : Timestamp(1746699523, 1),"signature" : {"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),"keyId" : NumberLong(0)}},"operationTime" : Timestamp(1746699523, 1)
}rs0:PRIMARY> rs.add({
...   host: "10.6.212.87:27017",
...   priority: 0,      // 表示不会成为 primary
...   votes: 1          // 正常参与投票
... })
{"ok" : 1,"$clusterTime" : {"clusterTime" : Timestamp(1746699594, 1),"signature" : {"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),"keyId" : NumberLong(0)}},"operationTime" : Timestamp(1746699594, 1)
}rs0:PRIMARY> rs.status()
......{"_id" : 2,"name" : "10.6.212.87:27017","health" : 1,"state" : 5,"stateStr" : "STARTUP2","uptime" : 3,"optime" : {"ts" : Timestamp(0, 0),"t" : NumberLong(-1)},"optimeDurable" : {"ts" : Timestamp(0, 0),"t" : NumberLong(-1)},"optimeDate" : ISODate("1970-01-01T00:00:00Z"),"optimeDurableDate" : ISODate("1970-01-01T00:00:00Z"),"lastAppliedWallTime" : ISODate("1970-01-01T00:00:00Z"),"lastDurableWallTime" : ISODate("1970-01-01T00:00:00Z"),"lastHeartbeat" : ISODate("2025-05-08T10:20:00.987Z"),"lastHeartbeatRecv" : ISODate("2025-05-08T10:20:00.043Z"),"pingMs" : NumberLong(17),"lastHeartbeatMessage" : "","syncSourceHost" : "10.11.206.4:27017","syncSourceId" : 0,"infoMessage" : "","configVersion" : 4,"configTerm" : 201}
......

显示该节点"stateStr" : “STARTUP2”,表示该节点正在同步数据,过一会就会变为"stateStr" : “SECONDARY”,此时就完成升级为副本节点的工作。

改为单节点

http://www.xdnf.cn/news/4661.html

相关文章:

  • 为什么虚拟环境下包找错路径?
  • 堡塔云WAF免费WEB防火墙,从搭建到应用
  • k8s监控方案实践(一):部署Prometheus与Node Exporter
  • 排序算法-冒泡排序
  • [数据库之十三] 数据库索引之散列索引
  • 如何在macOS上通过SSHFS挂载远程文件系统
  • 室内无人机自主巡检解决方案-自主方案
  • 批量清洗与修改 YOLO 标签:删除与替换指定类别
  • uniapp index.html怎么改都不生效
  • Redis如何实现分布式锁
  • 论文学习:《RNADiffFold:使用离散扩散模型的生成RNA二级结构预测》
  • 中级网络工程师知识点2
  • 【se-res模块学习】结合CIFAR-10分类任务学习
  • 嵌入式学习--江协51单片机day3
  • 问题 | 当前计算机视觉迫切解决的问题
  • spring中RequestContextHolder
  • Wubuntu安装时创建分区失败解决方案
  • 预渲染 Prerender
  • 图漾相机——Sample_V2示例程序(待补充)
  • 【UltralyticsYolo11图像分类完整项目-03】Onnx版Cpu预测C++实现
  • 解构语言模型推理过程,超越最终答案:通过分析子思考路径提升大语言模型推理准确性的方法研究
  • FastExcel 本地开发和Linux上上传Resource文件的差异性
  • 直接用字符串方式 split(“。“) 来切句,虽然能把句子拆开,但无法和 BERT 模型的 token 位置对应(embedding 用不上)
  • 高炉炼铁:构建全流程工艺可视化管控体系
  • Redis最新入门教程
  • 多返回值(C++)
  • CF后台如何设置TCP 和 UDP 端口?
  • 基于Flink的用户画像 OLAP 实时数仓统计分析
  • springmvc的入门案例
  • npm create vite@latest my-vue-app 解读