mongodb - 将 MongoDB Secondary 变为独立实例
问题描述
我有一个以前在副本集中的 mongo 实例。副本集中的其他节点(包括主节点)已经死亡,我将无法将它们取回。
我可以连接到剩余的节点并读取但不能写入。
not master, full error: {'ok': 0.0, 'errmsg': 'not master', 'code': 10107, 'codeName': 'NotMaster'}
我怎样才能将这个实例重新配置为现在是独立的而不丢失它上面的数据?然后我可能会在以后添加更多节点?
解决方案
我通过将实例留在副本集中解决了这个问题,但删除了其他实例。
从我做的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
我现在可以使用与用于更大副本集的相同配置连接到单个实例。
推荐阅读
- c# - 如何在 C# 中用符号拆分字母数字
- php - 如何在 macOS Catalina 或 Big Sur 上的 PHP 7.4 上安装 OCI8 扩展?
- javascript - 使用功能组件在 React js 中进行滚动检测
- c++ - 显示长数字 C++
- vscode-extensions - VSCode 扩展激活方法可以异步吗?
- php - $request->get() 时 laravel + 字符丢失
- sql - WHERE 子句中的 SQLite 计算列似乎正在工作(?)
- unity3d - Unity3D 零件运动
- python - Python如何将列表返回给其他函数?
- javascript - 如何使用节点 js 将字符串路径转换为 JSON 父子树?