Oracle RAC 負載平衡測試(結合伺服器端與用戶端)

來源:互聯網
上載者:User

標籤:

Oracle RAC 負載平衡使得從用戶端發起的串連能夠有效地分配到監聽器負載較小的執行個體上。有兩種方式實現用戶端負載平衡,一是通過配置用戶端的load_balance,一是通過設定管理員端的remote_listener參數。兩種方式各有優劣,而且兩者並不相互排斥,因此可以結合兩種方式來更加有效實現負載平衡。本文將描述兩者結合的使用方式(oralce 10g rac)。

        有關用戶端與服務端負載平衡的單獨測試請參考:
              Oracle RAC 用戶端串連負載平衡(Load Balance) 
              Oracle RAC 伺服器端串連負載平衡(Load Balance)

        本文的測試將結合前篇文章使用的指令碼與範例,是前兩篇測試的一個總結。

 

一、配置需求

[sql] view plain copy  print?
  1. 1、伺服器端各節點監聽器正常提供服務,如果使用非預設的1521連接埠,請參考 ORACLE RAC 下非預設連接埠監聽配置(listener.ora tnsnames.ora)   
  2.   [email protected]:~> more $ORACLE_HOME/network/admin/listener.ora  
  3.   # listener.ora.bo2dbp Network Configuration File: /u01/oracle/db/network/admin/listener.ora.bo2dbp  
  4.   # Generated by Oracle configuration tools.  
  5.     
  6.   LISTENER_BO2DBP =  
  7.     (DESCRIPTION_LIST =  
  8.       (DESCRIPTION =  
  9.         (ADDRESS = (PROTOCOL = TCP)(HOST = bo2dbp-vip.2gotrade.com)(PORT = 1521)(IP = FIRST))  
  10.         (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.51)(PORT = 1521)(IP = FIRST))  
  11.       )  
  12.     )  
  13.     
  14.   SID_LIST_LISTENER_BO2DBP =  
  15.     (SID_LIST =  
  16.       (SID_DESC =  
  17.         (SID_NAME = PLSExtProc)  
  18.         (ORACLE_HOME = /u01/oracle/db)  
  19.         (PROGRAM = extproc)  
  20.       )  
  21.     )  
  22.     
  23.   [email protected]:~> lsnrctl status  
  24.   Service "GOBO4" has 2 instance(s).  
  25.     Instance "GOBO4A", status READY, has 2 handler(s) for this service...  
  26.     Instance "GOBO4B", status READY, has 1 handler(s) for this service...  
  27.       
  28. 2、伺服器端的remote_listener參數設定  
  29.   要求remote_listener參數的串連標識符在伺服器端的tnsnames.ora中有對應的條目  
  30.     
  31.   SQL> show parameter listener  
  32.     
  33.   NAME                                 TYPE        VALUE  
  34.   ------------------------------------ ----------- ------------------------------  
  35.   local_listener                       string  
  36.   remote_listener                      string      remote_lsnr_gobo4  
  37.   
  38.   [email protected]:~> more $ORACLE_HOME/network/admin/tnsnames.ora  
  39.   # tnsnames.ora Network Configuration File: /u01/oracle/db/network/admin/tnsnames.ora  
  40.   # Generated by Oracle configuration tools.  
  41.   remote_lsnr_gobo4 =  
  42.     (ADDRESS_LIST =  
  43.       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.61)(PORT = 1521))  
  44.       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.62)(PORT = 1521))  
  45.     )  
  46.   
  47. 3、用戶端tnsnames.ora中啟用load_balance  
  48.   [email protected]:~> tail -11 $ORACLE_HOME/network/admin/tnsnames.ora  
  49.     
  50.   GOBO4 =  
  51.     (DESCRIPTION =  
  52.       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.61)(PORT = 1521))  
  53.       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.62)(PORT = 1521))  
  54.       (LOAD_BALANCE = yes)  
  55.       (CONNECT_DATA =  
  56.         (SERVER = DEDICATED)  
  57.         (SERVICE_NAME = GOBO4)  
  58.       )  
  59.     )  

二、測試Load Balance

[python] view plain copy  print?
    1. #還是使用之前的腳步來進行測試  
    2. #Author : Robinson  
    3. #Blog : http://blog.csdn.net/robinson_0612  
    4. [email protected]:~> more load_balance.sh   
    5. #!/bin/bash  
    6. for i in {1..1000}  
    7. do  
    8. echo $i  
    9. sqlplus -S system/[email protected] <<EOF  
    10. select instance_name from v\$instance;  
    11. EOF  
    12. sleep 1  
    13. done  
    14. exit 0  
    15.   
    16. [email protected]:~> ./load_balance.sh >load_bal.log     
    17.   
    18. #查看日誌  
    19. [email protected]:~> grep GOBO4A load_bal.log |wc -l  
    20. 750  
    21. [email protected]:~> grep GOBO4B load_bal.log |wc -l  
    22. 250  
    23.   
    24. #查看監聽器的日誌  
    25. [email protected]:/u01/oracle/db/network/log> grep establish listener_bo2dbp.log |wc -l  
    26. 894  
    27.   
    28. [email protected]:/u01/oracle/db/network/log> grep INSTANCE_NAME=GOBO4 listener_bo2dbp.log |wc -l  
    29. 415  
    30.   
    31. #從上面的查詢中可以得知,節點bo2dbp總共接受了894個串連請求,而有415串連請求是由bo2dbs轉寄過來的  
    32. #因此,實際上從用戶端發起到bo2dbp的實際串連請求數為894-415=479  
    33.   
    34. #下面來看在節點bo2dbs上的監聽日誌  
    35. [email protected]:/u01/oracle/db/network/log> grep establish listener_bo2dbs.log |wc -l  
    36. 665  
    37.   
    38. [email protected]:/u01/oracle/db/network/log> grep INSTANCE_NAME=GOBO4 listener_bo2dbs.log |wc -l   
    39. 144  
    40. #從上面的查詢中可知,節點bo2dbs總共接受了665個串連請求,而有144個串連請求是由bo2dbp轉寄過來的  
    41. #因此,實際上從用戶端發起到bo2dbs的實際串連請求數為655-144=511  
    42.   
    43. #從上面的結果可知,  
    44. #基於用戶端的串連請求數為節點bo2dbp為479,節點bo2dbs為511  
    45. #監聽器路由到本地執行個體數目為,節點bo2dbp,479-144=335,節點bo2dbs,511-415=96  
    46. #遠程監聽器路由道本地執行個體的資料為,節點bo2dpb為415,節點bo2dbs為144  
    47. #監聽器路由的概念是指基於伺服器端的負載平衡  
    48. #即伺服器端的監聽器根據自身以及遠程監聽器的負載情況來確定將當前的串連請求轉寄到本地或遠程,此即為路由。 
    49. 轉:http://blog.csdn.net/leshami/article/details/8072367

Oracle RAC 負載平衡測試(結合伺服器端與用戶端)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.