10G RAC 的虛擬IP

empo007發表於2007-11-11

10g 中為什麼使用虛擬 IP (VIP)?為什麼當它的主節點發生故障時不只是返回一個無效的連線呢?

[@more@]

這全是出於對應用程式可用性的考慮。當一個節點發生故障時,與其關聯的 VIP 將被自動故障切換到另外某個節點上。當出現這種情況時,會發生兩件事。

  1. 新的節點重新進行地址解析,顯示該地址的一個新的 MAC 地址。對於直接連線的客戶端,這通常使它們在連線舊地址時出現錯誤。
  2. 隨後傳送到 VIP 的資料包前往新的節點,該節點將把錯誤的 RST 資料包返回客戶端。這導致客戶端立即收到錯誤資訊

這意味著,當客戶端向現在已經停機的節點發出 SQL 時,或者在連線狀態下遍歷地址列表時,客戶端不會等待很長的 TCP/IP 超時(大約 10 分鐘),而是接收到一個 TCP 重置資訊。就 SQL 來說,該資訊為 ORA-3113。對於連線,使用 tnsname 中的下一個地址,如果tnsnames中沒有配置下一個地址,連線時將提示沒有監聽

更進一步的操作是使用透明的應用程式故障切換 (TAF)。成功配置 TAF 後,可以完全避免 ORA-3113 錯誤!

如果不使用 VIP,連線停用節點的客戶端經常要等待 10 分鐘的 TCP 超時,然後才收到錯誤資訊。因此,不使用 VIP 您就不會真正擁有好的高可用性解決方案(NOTE 220970.1)。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/85922/viewspace-981731/,如需轉載,請註明出處,否則將追究法律責任。

相關文章