首页 > 解决方案 > 将 MongoDB Secondary 变为独立实例

问题描述

我有一个以前在副本集中的 mongo 实例。副本集中的其他节点(包括主节点)已经死亡,我将无法将它们取回。

我可以连接到剩余的节点并读取但不能写入。 not master, full error: {'ok': 0.0, 'errmsg': 'not master', 'code': 10107, 'codeName': 'NotMaster'}

我怎样才能将这个实例重新配置为现在是独立的而不丢失它上面的数据?然后我可能会在以后添加更多节点?

标签: mongodb

解决方案


我通过将实例留在副本集中解决了这个问题,但删除了其他实例。

从我做的mongo控制台:

cfg = rs.conf()
printjson(cfg)

这向我展示了副本集成员的列表。然后我将配置修改为仅包含一个成员:

cfg.members = [cfg.members[2]]   // Member 2 is the only one up
rs.reconfig(cfg, {force : true}) // Reconfigure with the new config

我现在可以使用与用于更大副本集的相同配置连接到单个实例。


推荐阅读