欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > mongodb升级、改单节点模式

mongodb升级、改单节点模式

2025/5/13 20:17:49 来源:https://blog.csdn.net/MacwinWin/article/details/147800740  浏览:    关键词: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”,此时就完成升级为副本节点的工作。

改为单节点

将所有节点终止,再启动

version: "3.8"
services:mongo:container_name: mongo#image: mongo:5.0.16image: mongo:5.0.31expose:- 27017ports:- 27017:27017volumes:- mongo2:/data/dbrestart: alwaysentrypoint:["/usr/bin/mongod","--bind_ip_all","--journal"]networks:- mongovolumes:mongo2:
networks:mongo:name: mongo

设置账号密码

>>> docker exec -it mongo mongo
use admin
db.createUser({user: "admin",pwd: "your_password",roles: [ { role: "root", db: "admin" } ]
})
version: "3.8"
services:mongo:container_name: mongo#image: mongo:5.0.16image: mongo:5.0.31expose:- 27017ports:- 27017:27017volumes:- mongo2:/data/dbrestart: alwaysentrypoint:["/usr/bin/mongod","--bind_ip_all","--journal","--auth"]networks:- mongovolumes:mongo2:
networks:mongo:name: mongo
>>> docker compose down
>>> docker compose up -d

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词