1. 程式人生 > >Oracle Grid Infrastructure SCAN(單一客戶訪問名稱)

Oracle Grid Infrastructure SCAN(單一客戶訪問名稱)

代理 公網 選擇 實例 有一個 服務 準備 本地 並且

SCAN的主要作用是簡化客戶端連接數據庫的配置,無論集群增加還是刪除節點SCAN名稱會一直保持不變,客戶端不需要做任何的修改。


SCAN是一個名稱,通過DNS被解析成最多3個IP地址(SCAN VIP)


SCAN VIP必須與集群的公網資源處於相同的子網。


SCAN VIP會均勻地分布在集群的各個節點,例如:一個包含了8個節點的集群,會選擇其中3個節點運行SCAN VIP,當運行SCAN VIP的節點出現問題時,SCAN VIP會漂移到其他正常節點,對於一個兩節點的集群,如果配置了3個SCAN VIP,一定會有一個節點存在兩個SCAN VIP ,另一個節點存在一個SCAN VIP。


SCAN VIP的作用是接收客戶端連接,每一個SCAN VIP都會有對應的SCAN LISTENER,並且SCAN LISTENER只會監聽對應的SCAN VIP,而且它們必須運行在同一個節點。


SCAN VIP和SCAN LISTENER以集群資源的形式存在,由集群的代理進程進行統一管理,SCAN VIP依賴於集群的公網資源,而SCAN LISTENER依賴於對應的SCAN VIP資源,當本地節點出現問題SCAN VIP漂移到其他節點後,對應的SCAN LISTENER也需要隨著SCAN VIP一起漂移。


通過SCAN連接到數據庫

階段1:每個節點的PMON進程通過訪問數據庫信息將本地實例提供的服務註冊到本地節點的監聽程序和每一個SCAN監聽程序。其中local_listener指定了PMON需要註冊的本地監聽程序位置,而remote_listener指定了需要註冊的SCAN監聽程序位置,之後,無論是本地節點的監聽程序,還是SCAN監聽程序都已經為接收客戶端的連接做好準備。


階段2:客戶端通過tnsnames.ora中的別名向SCAN監聽程序發起連接,由於SCAN監聽程序分布在集群的不同節點,連接到哪個節點取決於DNS將SCAN名解析成哪一個節點的SCAN VIP(DNS使用輪詢的方式返回SCAN對應的IP地址)。


階段3:SCAN監聽程序在收到了客戶端發送的請求後,根據每個節點的負責情況,將客戶端連接轉發給負載最低的節點本地監聽程序,之後對應節點的本地監聽程序完成與客戶端的連接


SCAN類似於一個連接中間層,Oracle RAC事實上通過SCAN實現了服務器端負責均衡的作用。


Oracle Grid Infrastructure SCAN(單一客戶訪問名稱)