Oracle RAC負載均衡 客戶端配置

2021-06-21 12:16:01 字數 2312 閱讀 9962

附上dba給的客戶端 配置

rac的負載均衡

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)

on 和 yes 作用一致。

(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種:

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

只要配置了remote_listener引數,load_balance引數就自動啟用,即使在tnsnames.ora中明確設定為off,或者在tnsnames.ora中只配置乙個ip位址。

當沒有設定remote_listener引數,則tnsnames.ora中配置的load_balance引數決定是否實現load_balance功能,而如果沒有進行設定,則

預設load_balance引數為on。

Oracle RAC負載均衡

原文 http blue prince.spaces.live.com blog cns 12d6e6ccfacf4283 1058.entry rac的負載均衡 rac的負載均衡主要是指新會話連線到rac資料庫時,如何判定這個新的連線要連到哪個節點進行工作。在rac中,負載均衡分為兩種,一種是基於...

Oracle RAC 之 負載均衡

負載均衡是指把負載平均分配到集群中的各個節點,從而提高整體效能。oracle rac提供兩種方式實現負載均衡,第一種是純技術手段,即在使用者連線時,根據系統當前的負載情況決定由哪個節點處理使用者請求 第二種是面向業務,人為的把應用切分成很多service,通過某個service過來的連線請求都由某個...

客戶端負載均衡

客戶端負載均衡就是服務端負載均衡而言的。服務端負載均衡 就是傳統的nginx的方式,用nginx做負載均衡,我們稱之為服務端負載均衡。這種負載均衡,我們稱為伺服器負載均衡,它的特點是,就是呼叫的客戶端不知道具體是哪乙個server提供的服務,他也不關心,反正請求傳送給nginx,nginx再將請求 ...