↓ 快轉到主要內容

Troubleshooting Oracle RAC Node VIP Unreachability and Switch MAC Table Sync Issues

·865 字·2 分鐘·
PolloChang
作者
PolloChang
我是一隻雞

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 位址,將導致外部主機的封包被交換機丟棄或轉發至錯誤連接埠。


三、 狀況確認與排查步驟

  1. 確認實體 IP 與 VIP 通訊差異 從同網段的其他主機(或跨交換機主機)分別測試問題節點的實體 IP 與 VIP:
1
2
3
4
5
# 測試實體 IP(應正常通訊)
ping <節點實體 IP>

# 測試節點 VIP(若 100% packet loss 則為異常)
ping <節點 VIP>
  1. 檢查節點本機 ARP 狀態 登入問題節點,檢查本機 ARP 記錄:
1
arp -a <節點 VIP>

判斷依據:若輸出顯示 <incomplete>,代表該 VIP 未在網路層建立正常的 MAC 對應與對外宣告。


四、 緊急解決方式

登入無法正常連線的 Oracle RAC 節點,以 root 權限手動向網路廣播免費 ARP(Gratuitous ARP),強制更新實體交換機的 MAC/ARP 快取表:

1
2
# 語法:arping -U -c 5 -I <實體網卡名稱> <節點 VIP>
arping -U -c 5 -I bond0 10.11.11.65
  • 參數說明:
  • -U:啟用 Unsolicited ARP 模式(Gratuitous ARP),主動通知鄰近網路設備更新快取。
  • -c 5:連續發送 5 次封包。
  • -I bond0:指定出向的實體網路介面。

五、 驗證程序

  1. 網路層驗證:回到其他主機重新執行 ping 10.11.11.65,確認封包遺失率恢復為 0%。
  2. 應用層驗證:使用 SQL Developer 或連線工具,連線字串指向該 VIP 或 SCAN 名稱,執行連線測試確認恢復為「成功」。

六、 長期改善與根因追蹤建議

  • 聯繫網管人員檢查該主機連接之 Switch Port 是否啟用了過於嚴格的 ARP 安全防禦(如 Dynamic ARP Inspection, DAI 或 Port Security),確認是否阻擋了伺服器發出的 Gratuitous ARP。
  • 若為雙交換機架構(vPC / MLAG),請網管確認跨機 MAC 表同步機制是否正常運作。