Oracle RAC 负载均衡测试(结合服务器端与客户端)

Oracle RAC 负载均衡使得从客户端发起的连接能够有效地分配到监听器负载较小的实例上。有两种方式实现客户端负载均衡,一是通过配置客户端的load_balance,一是通过配置服务器端的remote_listener参数。两种方式各有优劣,而且两者并不相互排斥,因此可以结合两种方式来更加有效的实现负载均衡。本文将描述两者结合的使用情况(oralce 10g rac)。

        本文的测试将结合前篇文章使用的脚本与样例,是前两篇测试的一个总结。

 

一、配置需求

1.  1、服务器端各节点监听器正常提供服务,如果使用非缺省的1521端口,请参考 ORACLE RAC 下非缺省端口监听配置(listener.ora tnsnames.ora)   

2.    oracle@bo2dbp:~> 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.   oracle@bo2dbp:~> 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.   oracle@bo2dbp:~> 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.   oracle@SZDB:~> 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

1.  #还是使用之前的脚步来进行测试  

2.  #Author : Robinson  

3.  #Blog : http://blog.csdn.net/robinson_0612  

4.  oracle@SZDB:~> more load_balance.sh   

5.  #!/bin/bash  

6.  for i in {1..1000}  

7.  do  

8.  echo $i  

9.  sqlplus -S system/oracle@GOBO4 <<EOF  

10. select instance_name from v\$instance;  

11. EOF  

12. sleep 1  

13. done  

14. exit 0  

15.   

16. oracle@SZDB:~> ./load_balance.sh >load_bal.log     

17.   

18. #查看日志  

19. oracle@SZDB:~> grep GOBO4A load_bal.log |wc -l  

20. 750  

21. oracle@SZDB:~> grep GOBO4B load_bal.log |wc -l  

22. 250  

23.   

24. #查看监听器的日志  

25. oracle@bo2dbp:/u01/oracle/db/network/log> grep establish listener_bo2dbp.log |wc -l  

26. 894  

27.   

28. oracle@bo2dbp:/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. oracle@bo2dbs:/u01/oracle/db/network/log> grep establish listener_bo2dbs.log |wc -l  

36. 665  

37.   

38. oracle@bo2dbs:/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

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31448824/viewspace-2139517/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31448824/viewspace-2139517/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值