Oracle LOAD_BALANCE&TAF總結

jason_yehua發表於2022-12-02

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/31547506/viewspace-2926348/,如需轉載,請註明出處,否則將追究法律責任。

相關文章