Oracle 12c应用连接VIP轮训负载均衡?

本文通过实验展示了如何配置客户端连接到两节点RAC的VIP,并实现负载均衡。通过测试脚本验证了负载均衡并非严格的轮询机制,揭示了实际的负载分发情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前很多生产数据库都是两节点RAC,应用连接的数据库通常会连接SCAN IP或者VIP,这里做一个小实验,如果我们使用VIP连接,

应该怎样配置我们的客户端,负载均衡是否是严格意义上的轮训机制,只有通过自己的测试才能得到准备的答案。


  1. tnsnames.ora配置

<rac01:orcl1:/u01/app/oracle/product/12.1.0/dbhome_1/network/admin>$less tnsnames.ora 

# tnsnames.ora Network Configuration File: /u01/app/oracle/product/12.1.0/dbhome_1/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.


orcl =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = rac-scan)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcl)

    )

  )


vip =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.203)(PORT = 1521))

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.204)(PORT = 1521))

    (LOAD_BALANCE = yes) 

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcl)

    )

  )


2.测试脚本如下

<rac01:orcl1:/u01/app/oracle/product/12.1.0/dbhome_1/network/admin>$

<rac01:orcl1:/u01/app/oracle/product/12.1.0/dbhome_1/network/admin>$less load_balance.sh 

#!/bin/bash  

for i in {1..100}  

do  

echo $i

sqlplus -S system/oracle@vip <<EOF

select instance_name from v\$instance;

select count(*) from t1;

EOF

sleep 1  

done  

exit 0 


3.开始测试,观察

<rac01:orcl1:/u01/app/oracle/product/12.1.0/dbhome_1/network/admin>$sh load_balance.sh 

1


INSTANCE_NAME

----------------

orcl1



  COUNT(*)

----------

   2910624


2


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


3


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


4


INSTANCE_NAME

----------------

orcl1



  COUNT(*)

----------

   2910624


5


INSTANCE_NAME

----------------

orcl1



  COUNT(*)

----------

   2910624


6


INSTANCE_NAME

----------------

orcl1



  COUNT(*)

----------

   2910624


7


INSTANCE_NAME

----------------

orcl1



  COUNT(*)

----------

   2910624


8


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


9


INSTANCE_NAME

----------------

orcl1



  COUNT(*)

----------

   2910624


10


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


11


INSTANCE_NAME

----------------

orcl1



  COUNT(*)

----------

   2910624


12


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


13


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


14


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


15


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


16


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


17


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


18


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


19


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


20


INSTANCE_NAME

----------------

orcl1



  COUNT(*)

----------

   2910624


21


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


22


INSTANCE_NAME

----------------

orcl1



  COUNT(*)

----------

   2910624


23


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


24


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


25


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


26


INSTANCE_NAME

----------------

orcl1



  COUNT(*)

----------

   2910624


27


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


28


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


29


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


30


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


31


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


32


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


33


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


34


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


35


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


36


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


37


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


38


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


39


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


40


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


41


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


42


INSTANCE_NAME

----------------

orcl1



  COUNT(*)

----------

   2910624


43


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


44


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


45


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


46


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


47


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


48


INSTANCE_NAME

----------------

orcl2



  COUNT(*)

----------

   2910624


49


INSTANCE_NAME

----------------

orcl1



  COUNT(*)

----------

   2910624


50


INSTANCE_N

....省略...............


  COUNT(*)

----------

   2910624


100


INSTANCE_NAME

----------------

orcl1



  COUNT(*)

----------

   2910624










本文转自 roidba 51CTO博客,原文链接:http://blog.51cto.com/roidba/2044144,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值