RAC的負載均衡

2021-04-21 18:13:04 字數 2028 閱讀 8785

rac的負載均衡主要是指新會話連線到rac資料庫時,如何判定這個新的連線要連到哪個節點進行工作。在rac中,負載均衡分為兩種,一種是基於客戶端連線的,另外一種是基於伺服器端的。

客戶端的負載均衡配置相對簡單,只需要在tnsnames.ora中新增load_balance=on這麼乙個選項即可。比如下面的tns:

rac =

(description =

(address = (protocol = tcp)(host = rac1-vip)(port = 1521))

(address = (protocol = tcp)(host = rac2-vip)(port = 1521))

(load_balance = on)

(failover = on)

(connect_data =

(server = dedicated)

(service_name = rac)))

這樣當客戶端連線rac資料庫時,會隨機在tns裡面挑個監聽位址進行連線。在oracle10g以前,假如有節點宕機或者類似事故時,客戶端可能 還是選擇連線到這個節點,這樣會發生較長時間的tcp等待超時。而在10g以後,由於vip和fan的引入,這樣的情況可以得到很大程度的改善。客戶端的 負載均衡在通常情況下能夠較好地工作,但是由於連線是在客戶端隨機發起的,這樣客戶端並不知道rac各節點的負荷及連線數情況,有可能負荷大的節點還會源 源不斷地增加新的連線,導致rac節點無法均衡工作。

從oracle 10g開始,伺服器端的負載均衡可以根據rac中各節點的負荷及連線數情況,而判定將新的客戶端連線分配到負荷最小的節點上去。rac中各節點的pmon 程序每3秒會將各自節點的負荷(包括load、最大load、cpu使用率)及連線數更新到service_register裡面,然後假如節點的負荷有 發生變化,將會通知到監聽程式,由監聽程式再決定新的客戶端連線分配至哪個節點。假如rac中乙個節點的監聽失敗了,pmon每一分鐘會去檢查一次是否已 經恢復正常。

伺服器端的監聽配置是在各節點的tnsnames.ora裡面新增乙個連線到各個節點監聽的條目,然後再在初始化引數裡面設定remote_listeners這個引數。比如:

listeners_rac =

(address_list =

(address = (protocol = tcp)(host = rac1-vip)(port = 1521))

(address = (protocol = tcp)(host = rac2-vip)(port = 1521))

)alter system set remote_listener = listeners_rac;

這樣伺服器端的load balance便配置完成。

但是有時候由於pmon取節點負荷的延遲,導致客戶端連線可能還是會連線到負荷較大的節點上,這時候便可以在伺服器各節點的listener.ora裡面 加入prefer_least_loaded_node=off這麼一行,這樣伺服器端的負載均衡將不再根據節點的負荷來進行分配,而是根據節點的連線數 進行分配,達到各個節點連線數比較平衡的效果。

另外乙個不得不說的便是並行操作,假如有個會話連線以後要進行並行操作。由於連線時是按負荷或連線數連線,這樣可能連線時各個節點連線數和負荷等比較平 衡,但是這個並行會話啟動多個並行程序以後,那麼這個節點的負荷及連線數就會有可能上公升得比較快。如果在rac中開啟了節點並行,那麼有可能會把並行程序 分配到多個節點執行以達到負載均衡的效果。

從oracle 10.2開始,oracle引入了load balance advisor,對負載均衡有了進一步的改進。結合service,可以對不同的service設定不同的負載均衡策略。load balance advisor的配置可以通過dbms_service包對service進行更改而完成。在load balance advisor首先必須設定service負載均衡的目標,目標分為3種:

另外可以額外設定連線的負載均衡:

RAC的負載均衡

rac的負載均衡主要是指新會話連線到rac資料庫時,如何判定這個新的連線要連到哪個節點進行工作。在rac中,負載均衡分為兩種,一種是基於客戶端連線的,另外一種是基於伺服器端的。客戶端的負載均衡配置相對簡單,只需要在tnsnames.ora中新增load balance on這麼乙個選項即可。比如下面...

RAC環境下負載均衡配置

典型配置 oralocal description load balance yes failover on address list address protocol tcp host 192.168.1.1 port 1521 address protocol tcp host 192.168....

DNS負載均衡 Nginx 負載均衡的種類

dns負載均衡 當乙個 有足夠多的使用者的時候,假如每次請求的資源都位於同一臺機器上面,那麼這台機器隨時可能會蹦掉。處理辦法就是用dns負載均衡技術,它的原理是在dns伺服器中為同乙個主機名配置多個ip位址,在應答dns查詢時,dns伺服器對每個查詢將以dns檔案中主機記錄的ip位址按順序返回不同的...