Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

MongoDB Replica Set 離線超久的 Slave 節點重新加入叢集操作指南

編輯:Linux 教學

MongoDB Replica Set 中某節點(主或從)離線超過一個月,期間已從 rs.conf() 移除,磁碟資料尚在但嚴重過期。需將其重新加入叢集並完成全量同步。本文記錄標準操作流程。

前置條件

  • 主節點正常運行,Oplog 窗口足以覆蓋離線期間的寫入量(否則需重新初始化)。
  • 離線節點網路連通、磁碟健康、MongoDB 版本相容。

操作步驟

0. 關閉離線節點 MongoDB

> use admin
> db.shutdownServer()

1. 在主節點加入節點並設為 Hidden + Priority 0

rs.add({
  _id: 10,
  host: "mongodb3.example.net:27017",
  priority: 0,
  hidden: true
})
  • priority: 0:不參與主節點選舉。
  • hidden: true:不出現在 isMaster 回應中,避免客戶端讀取過期資料。

2. 清空離線節點 data 目錄

rm -rf /data/db/*

務必清空,否則舊資料會干擾初始同步,甚至導致校驗和不符。

3. 啟動離線節點 MongoDB

cd /home/mongodb && numactl --interleave=all ./bin/mongod -f ./conf/mongod.conf >/dev/null 2>&1 &

啟動後自動觸發 Initial Sync(全量同步),從主節點拉取最新資料。

4. 同步完成後移除 Hidden 與 Priority 限制

cfg = rs.conf()
cfg.members[10].priority = 1
cfg.members[10].hidden = false
rs.reconfig(cfg)

確認 rs.status() 顯示該節點狀態為 SECONDARY、optimeDate 接近主節點即完成。

常見問題與應對

現象原因處理
同步卡在 STARTUP2Oplog 不足覆蓋離線期間擴大主節點 Oplog 大小,或重新初始化該節點
同步極慢網路頻寬不足 / 磁碟 IO 瓶頸調整 replication.oplogWindowMinutes、啟用壓縮 net.compression.compressors=snappy
報錯 StaleConfig節點本地配置版本落後重新執行 rs.add 強制更新配置

最佳實務建議

  • 監控 rs.printSlaveReplicationInfo() 確保同步延遲在可接受範圍。
  • 生產環境建議啟用 enableMajorityReadConcern 確保讀取一致性。
  • 定期演練節點故障恢復流程,納入運維 SOP。
Copyright © Windows教程網 All Rights Reserved