Mongo DB 副本集卡在 RECOVERING 状态

Avi*_*ahu 15 replication mongodb restore

我们已经创建了一个副本集,现在问题是副本集的 2 个成员 [3 个成员集] 从 48 小时开始处于恢复模式。最初恢复节点的大小正在增加,现在甚至已经停止。因此,在恢复节点时,它们在 90 GB 数据和 60+ GB 本地数据后卡住了。

如何走出这种模式?

Mar*_*erg 14

简单但有点不安全的方式

  1. 停止第一个二级
  2. 删除它的内容 dbpath
  3. 重启二级
  4. 等待它赶上主要
  5. 对第二个二级重复过程

这有点不安全,因为不知道为什么辅助节点进入 Recovering 状态。

更安全,但也更具侵入性的方式

如上所述,但在此过程中停止您的应用程序。这可以防止您的应用程序插入的数据多于辅助节点能够复制的数据。但是,在生产过程中可能会出现此问题。

最安全,也是最具侵入性的方式

  1. 关闭整个副本集
  2. 删除的内容dbpath两个次级
  3. 将 的内容复制dbpath到两个辅助节点'dbpath
  4. 启动旧的主。
  5. 启动旧的辅助设备之一。
  6. 等待直到选出新的主节点。
  7. 启动剩余的辅助。

一些注意事项:

使用彩信。它是免费的,易于设置,并为您提供有关副本集的良好信息。尝试将“复制延迟”的值保持在 0 左右,并采取一切必要措施使您的复制延迟永远不会大于“复制操作日志窗口”。

始终确保您拥有 1Gb 网络和(抱歉)大量 RAM。越多越好。额外的经验法则:RAM 和 SSD 的一半而不是 RAM 的两倍而不是 SSD(RAM 保持在合理的范围内)。

免责声明: 在摆弄生产数据之前,请务必对其进行备份。

  • 事实并非如此,除了当您插入的数据多于 oplog 在初始重新同步期间可以容纳的数据时,重新同步可能会停止。在这种情况下,请选择选项 2 或 3。 (2认同)