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

來源:互聯網
上載者:User

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

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

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

 

一、配置需求

1、伺服器端各節點監聽器正常提供服務,如果使用非預設的1521連接埠,請參考 ORACLE RAC 下非預設連接埠監聽配置(listener.ora tnsnames.ora)   oracle@bo2dbp:~> more $ORACLE_HOME/network/admin/listener.ora  # listener.ora.bo2dbp Network Configuration File: /u01/oracle/db/network/admin/listener.ora.bo2dbp  # Generated by Oracle configuration tools.    LISTENER_BO2DBP =    (DESCRIPTION_LIST =      (DESCRIPTION =        (ADDRESS = (PROTOCOL = TCP)(HOST = bo2dbp-vip.2gotrade.com)(PORT = 1521)(IP = FIRST))        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.51)(PORT = 1521)(IP = FIRST))      )    )    SID_LIST_LISTENER_BO2DBP =    (SID_LIST =      (SID_DESC =        (SID_NAME = PLSExtProc)        (ORACLE_HOME = /u01/oracle/db)        (PROGRAM = extproc)      )    )    oracle@bo2dbp:~> lsnrctl status  Service "GOBO4" has 2 instance(s).    Instance "GOBO4A", status READY, has 2 handler(s) for this service...    Instance "GOBO4B", status READY, has 1 handler(s) for this service...    2、伺服器端的remote_listener參數設定  要求remote_listener參數的串連標識符在伺服器端的tnsnames.ora中有對應的條目    SQL> show parameter listener    NAME                                 TYPE        VALUE  ------------------------------------ ----------- ------------------------------  local_listener                       string  remote_listener                      string      remote_lsnr_gobo4  oracle@bo2dbp:~> more $ORACLE_HOME/network/admin/tnsnames.ora  # tnsnames.ora Network Configuration File: /u01/oracle/db/network/admin/tnsnames.ora  # Generated by Oracle configuration tools.  remote_lsnr_gobo4 =    (ADDRESS_LIST =      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.61)(PORT = 1521))      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.62)(PORT = 1521))    )3、用戶端tnsnames.ora中啟用load_balance  oracle@SZDB:~> tail -11 $ORACLE_HOME/network/admin/tnsnames.ora    GOBO4 =    (DESCRIPTION =      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.61)(PORT = 1521))      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.62)(PORT = 1521))      (LOAD_BALANCE = yes)      (CONNECT_DATA =        (SERVER = DEDICATED)        (SERVICE_NAME = GOBO4)      )    )

二、測試Load Balance

#還是使用之前的腳步來進行測試#Author : Robinson#Blog : http://blog.csdn.net/robinson_0612oracle@SZDB:~> more load_balance.sh #!/bin/bashfor i in {1..1000}doecho $isqlplus -S system/oracle@GOBO4 <<EOFselect instance_name from v\$instance;EOFsleep 1doneexit 0oracle@SZDB:~> ./load_balance.sh >load_bal.log   #查看日誌oracle@SZDB:~> grep GOBO4A load_bal.log |wc -l750oracle@SZDB:~> grep GOBO4B load_bal.log |wc -l250#查看監聽器的日誌oracle@bo2dbp:/u01/oracle/db/network/log> grep establish listener_bo2dbp.log |wc -l894oracle@bo2dbp:/u01/oracle/db/network/log> grep INSTANCE_NAME=GOBO4 listener_bo2dbp.log |wc -l415#從上面的查詢中可以得知,節點bo2dbp總共接受了894個串連請求,而有415串連請求是由bo2dbs轉寄過來的#因此,實際上從用戶端發起到bo2dbp的實際串連請求數為894-415=479#下面來看在節點bo2dbs上的監聽日誌oracle@bo2dbs:/u01/oracle/db/network/log> grep establish listener_bo2dbs.log |wc -l665oracle@bo2dbs:/u01/oracle/db/network/log> grep INSTANCE_NAME=GOBO4 listener_bo2dbs.log |wc -l 144#從上面的查詢中可知,節點bo2dbs總共接受了665個串連請求,而有144個串連請求是由bo2dbp轉寄過來的#因此,實際上從用戶端發起到bo2dbs的實際串連請求數為655-144=511#從上面的結果可知,#基於用戶端的串連請求數為節點bo2dbp為479,節點bo2dbs為511#監聽器路由到本地執行個體數目為,節點bo2dbp,479-144=335,節點bo2dbs,511-415=96#遠程監聽器路由道本地執行個體的資料為,節點bo2dpb為415,節點bo2dbs為144#監聽器路由的概念是指基於伺服器端的負載平衡#即伺服器端的監聽器根據自身以及遠程監聽器的負載情況來確定將當前的串連請求轉寄到本地或遠程,此即為路由。

三、更多參考

有關Oracle 網路設定相關基礎以及概念性的問題請參考:
        配置ORACLE 用戶端串連到資料庫
        配置非預設連接埠的動態服務註冊
        配置sqlnet.ora限制IP訪問Oracle
       Oracle 監聽器日誌配置與管理
       設定 Oracle 監聽器密碼(LISTENER)
       Oracle RAC 監聽配置
       ORACLE RAC 下非預設連接埠監聽配置(listener.ora tnsnames.ora)

       Oracle RAC 用戶端串連負載平衡(Load Balance)

       配置RAC負載平衡與容錯移轉

   

有關基於使用者管理的備份和備份恢複的概念請參考

    Oracle 冷備份

    Oracle 熱備份

    Oracle 備份恢複概念

    Oracle 執行個體恢複

    Oracle 基於使用者管理恢複的處理

   SYSTEM 資料表空間管理及備份恢複

    SYSAUX資料表空間管理及恢複

   Oracle 基於備份控制檔案的恢複(unsing backup controlfile)

 

有關RMAN的備份恢複與管理請參考

    RMAN 概述及其體繫結構

    RMAN 配置、監控與管理

    RMAN 備份詳解

    RMAN 還原與恢複

    RMAN catalog 的建立和使用

    基於catalog 建立RMAN儲存指令碼

    基於catalog 的RMAN 備份與恢複

    RMAN 備份路徑困惑

 

有關ORACLE體繫結構請參考

    Oracle 資料表空間與資料檔案

    Oracle 密碼檔案

    Oracle 參數檔案

    Oracle 聯機重做記錄檔(ONLINE LOG FILE)

    Oracle 控制檔案(CONTROLFILE)

    Oracle 歸檔日誌

    Oracle 復原(ROLLBACK)和撤銷(UNDO)

    Oracle 資料庫執行個體啟動關閉過程

    Oracle 10g SGA 的自動化管理

    Oracle 執行個體和Oracle資料庫(Oracle體繫結構)      

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.