Oracle負載均衡實現方式

liuhaimiao發表於2014-08-19

實現負載均衡(Load Balance)Oracle RAC最重要的特性之一,主要是把負載平均分配到叢集中的各個節點,以提高系統的整體吞吐能力。

  通常情況下有兩種方式來實現負載均衡

一個是基於客戶端連線的負載均衡


客戶端的負載均衡主要是透過為tnsnames.ora增加load_balance=yes條目來實現,下面看看oracle(Note:226880.1)的解釋

        The client load balancing feature enables clients to randomize connection requests among the listeners. Oracle Net progresses through the list of  protocol addresses in a random sequence, balancing the load on the various listeners. Without client load balancing, Oracle Net progresses through the list of protocol addresses sequentially until one succeeds. This normally is referred to connect-time load balance.

    從上面的描述中可以得知,如果未開啟load_balance=yes時,Oracle Net會根據地址列表按順序來選擇一個進行連線,直到連線成功為止。 如果第一個host主機連線失敗,在有多個地址的情形下,接下來選擇第二個地址連線,依此類推,直到連線成功為止。當開啟了load_balance=yes時,則Oracle Net會從多個地址中隨機地選擇一個地址進行連線,直到連線成功為止。注意,此連線方式僅根據地址列表隨機選擇,並不考慮到各個例項上當前真正連線數量的多少,也即是沒有考慮各個節點真實的連線負載情況


    二是基於伺服器端監聽器(Listener)收集到的資訊來將新的連線請求分配到連線數較少例項上的實現方式。


Oracle RAC伺服器端的負載均衡是根據RAC中各節點的連線負荷數情況,將新的連線請求分配到負荷最小的節點上去。當資料庫處於執行時,RAC中各節點的PMON程式每3秒會將各自節點的連線負荷數更新到service_register。而對於節點中任意監聽器故障或監聽器意外失敗時,PMON程式會每1秒鐘檢查當前節點上的監聽是否重啟,以獲得最新的負載資訊來及時調整負載均衡。


引文地址:

http://blog.csdn.net/robinson_0612/article/details/8072367

http://blog.csdn.net/robinson_0612/article/details/8064599

http://blog.csdn.net/robinson_0612/article/details/8060634

http://www.cnblogs.com/millen/archive/2009/05/06/1450844.html

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

相關文章