Troubleshooting Oracle RAC Node VIP Unreachability and Switch MAC Table Sync Issues
一、 狀況描述
- 現象:應用程式或用戶端使用 SCAN Domain(或直接指定特定節點 VIP)連線時,出現連線不穩定,時通時斷;但直接使用各節點的實體 Public IP 連線資料庫皆正常。
- 影響範圍:連線剛好被 SCAN 導向至問題節點 VIP,或直接指向該節點 VIP 的連線請求會失敗(常見報錯:
IO 錯誤: Socket read interrupted或連線逾時)。
二、 根本原因分析 Oracle RAC 的 VIP 是綁定在實體網卡上的 Secondary IP。當 VIP 資源重啟或節點重開機後,若實體網路交換機(Switch)的 MAC 位址表未即時更新,或因安全原則限制而未學習到該 VIP 對應的 MAC 位址,將導致外部主機的封包被交換機丟棄或轉發至錯誤連接埠。
三、 狀況確認與排查步驟
- 確認實體 IP 與 VIP 通訊差異 從同網段的其他主機(或跨交換機主機)分別測試問題節點的實體 IP 與 VIP:
|
|
- 檢查節點本機 ARP 狀態 登入問題節點,檢查本機 ARP 記錄:
|
|
判斷依據:若輸出顯示 <incomplete>,代表該 VIP 未在網路層建立正常的 MAC 對應與對外宣告。
四、 緊急解決方式
登入無法正常連線的 Oracle RAC 節點,以 root 權限手動向網路廣播免費 ARP(Gratuitous ARP),強制更新實體交換機的 MAC/ARP 快取表:
|
|
- 參數說明:
-U:啟用 Unsolicited ARP 模式(Gratuitous ARP),主動通知鄰近網路設備更新快取。-c 5:連續發送 5 次封包。-I bond0:指定出向的實體網路介面。
五、 驗證程序
- 網路層驗證:回到其他主機重新執行
ping 10.11.11.65,確認封包遺失率恢復為 0%。 - 應用層驗證:使用 SQL Developer 或連線工具,連線字串指向該 VIP 或 SCAN 名稱,執行連線測試確認恢復為「成功」。
六、 長期改善與根因追蹤建議
- 聯繫網管人員檢查該主機連接之 Switch Port 是否啟用了過於嚴格的 ARP 安全防禦(如 Dynamic ARP Inspection, DAI 或 Port Security),確認是否阻擋了伺服器發出的 Gratuitous ARP。
- 若為雙交換機架構(vPC / MLAG),請網管確認跨機 MAC 表同步機制是否正常運作。