LOAD_BALANCE&TAF總結

yingyifeng306發表於2021-02-20

 

load_balance 負載均衡

客戶端方式 loadbalance :一個 listener 指向一個 Instance ,客戶端 tns 指定多個的 listener ,用過客戶端輪訓使用其中的 listener 實現 loadbalance

透過配置 tnsnames.ora 中的配置,如下:

SERVICEA =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.224)(PORT = 1521)))(CONNECT_DATA =

(SERVER = DEDICATED)(SERVICE_NAME = TESTRAC)(INSTANCE_NAME = TESTRAC1)

(FAILOVER_MODE =(TYPE = SELECT)(METHOD = BASIC)

(BACKUP = SERVICEA_BACKUP))))

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.225)(PORT = 1521)))(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = TESTRAC)

(INSTANCE_NAME = TESTRAC2)

(FAILOVER_MODE =

(TYPE = SELECT)

(METHOD = BASIC)

(BACKUP = SERVICEA_BACKUP))))

 

(LOAD_BALANCE = yes))

伺服器端 : 一個 listener 指向多個 Instance ,客戶端 tns 指定特定的 listener ,透過伺服器端的 listener 的分發實現 loadbalance

remote_listener  設定了以後,根據 cpu 的使用頻率進行負載均衡。

 

TAF 處理 failover

客戶端配置

   

SERVICEA =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.224)(PORT = 1521)))(CONNECT_DATA =

(SERVER = DEDICATED)(SERVICE_NAME = TESTRAC)(INSTANCE_NAME = TESTRAC1)

(FAILOVER_MODE =(TYPE = SELECT)(METHOD = BASIC)

(BACKUP = SERVICEA_BACKUP))))

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.225)(PORT = 1521)))(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = TESTRAC)

(INSTANCE_NAME = TESTRAC2)

(FAILOVER_MODE =

(TYPE = SELECT)

(METHOD = BASIC)

(BACKUP = SERVICEA_BACKUP))))

伺服器端:

透過配置 service_name instance 之間的訪問原則來實現。

過程描述:
    
當客戶端發出連線請求給 server listener 的時候,透過 local_listener 註冊的服務接收這個連線請求,然後由 master instance 來決定這個連線請求應該由哪個目標 instance 發出 server process 響應這個連線請求。如果啟用負載均衡,那麼主節點會選擇 cpu 負載最小的那個 instance ,此時
  
如果 master 分配的目標 instance local listener machine ,那麼直接透過 local server listener ,開啟後臺的 server process ,處理發出 conn 的客戶端,建立連線,處理會話 ;
      
如果 master 分配的目標 instance 不是 local listener machine ,那麼會透過 remote_listener 這個引數,把連線請求轉移到 remote machine 上的 listener, 然後由 remote service listener 發出一個 server process 返回客戶端,建立連線,處理會話 .
     
conn 建立連線以後, listener 就沒有用了,不會再用到了,如果這個時候,已經連線的那個 instance down 了,會重新由新分配的 master instance 透過 remote_listener 切換到可用 instance ,此時客戶不會發現連線中斷。 conn select 操作是不會中斷的。


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