数据库 · 2 1 月, 2024

如何修復 MongoDB 錯誤碼 – 270 – RepairedReplicaSetNode

如何修復 MongoDB 錯誤碼 – 270 – RepairedReplicaSetNode

MongoDB 是一個流行的開源 NoSQL 數據庫,提供高性能、可擴展性和靈活性。然而,像所有軟件一樣,它也可能遇到需要解決的錯誤。其中一個錯誤是 MongoDB 錯誤碼 – 270 – RepairedReplicaSetNode。在本文中,我們將探討這個錯誤的含義以及如何修復它。

理解 MongoDB 錯誤碼 – 270 – RepairedReplicaSetNode

當一個副本集成員被修復並需要重新整合到副本集中時,會出現 MongoDB 錯誤碼 – 270 – RepairedReplicaSetNode。這種錯誤通常發生在副本集的某個成員變得不可用或出現故障時,並且在重新加入集群之前需要進行修復。

當此錯誤發生時,您會在 MongoDB 日誌中看到以下消息:

RepairedReplicaSetNode: replSetReconfig should only be run on PRIMARY; not on recovered member with _id: {memberId}

修復 MongoDB 錯誤碼 – 270 – RepairedReplicaSetNode

要修復 MongoDB 錯誤碼 – 270 – RepairedReplicaSetNode,您需要遵循以下步驟:

步驟 1:識別修復后的副本集成員

第一步是識別需要重新整合的修復副本集成員。您可以通過查看 MongoDB 日誌或在 MongoDB shell 中運行以下命令來完成此操作:

rs.status()

此命令將顯示副本集的狀態,包括所有成員及其當前狀態。

步驟 2:移除修復副本集成員

一旦識別出修復副本集成員,您需要將其從副本集中移除。為此,請使用 MongoDB shell 連接到副本集的主節點,並運行以下命令:

rs.remove({ "_id": {memberId}})

{memberId} 替換為修復後副本集成員的實際 ID。

步驟 3:重新整合修復副本集成員

在移除修復副本集成員後,您可以將其重新整合回副本集中。為此,請使用 MongoDB shell 連接到副本集的主節點,並運行以下命令:

rs.add({ "_id": {memberId}, "host": "{hostname}:{port}"})

{memberId} 替換為修復後副本集成員的 ID,將 {hostname}:{port} 替換為該節點的主機名和端口。

步驟 4:驗證副本集狀態

最後,您應該驗證副本集的狀態,以確保修復副本集成員已成功重新整合。請在 MongoDB shell 中運行以下命令:

rs.status()

此命令將顯示副本集的當前狀態,包括所有成員。

總結

總之,MongoDB 錯誤碼 – 270 – RepairedReplicaSetNode 發生在副本集成員需要修復並重新整合到副本集中。要修復此錯誤,您需要識別修復副本集成員,將其從副本集中移除,然後重新整合並驗證副本集狀態。如果您遇到任何問題或需要進一步的幫助,考慮聯繫可靠的 VPS 主機提供商,如 Server.HK,以獲得專業支持。