gpt4 book ai didi

MongoDB副本集没有primary,需要强制新建primary

转载 作者:可可西里 更新时间:2023-11-01 09:14:22 25 4
gpt4 key购买 nike

我们有一个包含 3 个节点的 mongoDB 副本集;

  1. 小学
  2. 中学
  3. 仲裁者

不知何故,我们的副本集最终将 1 和 2 都设置为次要成员。我不确定这是怎么发生的(我们有一个服务器迁移,其中一个节点在上面运行,但只有一个)。

无论如何,我一直在尝试按照指南here 为副本集重新选择一个新的主节点。

我不能只使用

rs.reconfig(cfg)

因为它只有在针对主要(我没有)时才有效。

使用力参数

rs.reconfig(cfg, { force: true})

似乎可以工作,但是当我重新查询副本集的状态时,两台服务器仍然只显示为辅助服务器。

为什么强制重新配置没有起作用?目前无论我尝试什么,数据库都被锁定。

最佳答案

1.将所有节点转换为独立节点。

停止 mongod deamon 并编辑 /etc/mongod.conf 以注释 replSet 选项。

启动 mongod 守护进程。

2.使用mongodump备份所有节点的数据。

来自 mongo 文档的引用:

https://docs.mongodb.com/manual/reference/program/mongodump/

3.登录到每个节点,并删除本地数据库。

这样做会删除节点上的副本集配置。

或者您可以只删除本地数据库中 system.replset 集合中的一条记录,如下所示:

https://stackoverflow.com/a/31745150/4242454

4.使用replSet选项启动所有节点。

5.在之前的数据节点(不是仲裁者)上,初始化一个新的副本集。

6.最后,使用rs.reconfig 重新配置副本集。

关于MongoDB副本集没有primary,需要强制新建primary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22917523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com