jdbc对oracle RAC方式的支持

 
1)JDBC连接的配置方式
,既然数据库本身已经支持了RAC,那么只要在JDBC连接字符串中将RAC的配置加上去即可, 根据资料和目前的业务需求,我们的针对HOST=10.87.25.37这台主机的数据库实例的JDBC连接字符串应该这样配置
  
   URL="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)
   (HOST=10.87.25.37)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)
   (HOST=10.87.25.38)(PORT=1521))
   (HOST=10.87.25.39)(PORT=1521))
  (FAILOVER=on)(LOAD_BALANCE=off))
   (CONNECT_DATA= (SERVICE_NAME=bidwb)))"
  
   这个连接配置表示只支持failover,不支持loadbalance.根据蓝色字符串可以表示.即按照顺序,使用该JDBC字符串获取的连接,将根据配置的主机的先后顺序,依次进行failover
   即如果在10.87.25.37数据库实例不能被访问,那么就转到10.87.25.38执行,如果10.87.25.38也数据库实例不能被访问,那么就转到10.87.25.39执行
 
同理
对于HOST=10.87.25.38这台主机的数据库实例的JDBC连接字符串应该这样配置
 
URL="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)
   (HOST=10.87.25.38)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)
   (HOST=10.87.25.39)(PORT=1521))
   (HOST=10.87.25.37)(PORT=1521))
  (FAILOVER=on)(LOAD_BALANCE=off))
   (CONNECT_DATA= (SERVICE_NAME=bidwb)))"
 
 
对于HOST=10.87.25.39这台主机的数据库实例的JDBC连接字符串应该这样配置
 
URL="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)
   (HOST=10.87.25.39)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)
   (HOST=10.87.25.37)(PORT=1521))
   (HOST=10.87.25.38)(PORT=1521))
  (FAILOVER=on)(LOAD_BALANCE=off))
   (CONNECT_DATA= (SERVICE_NAME=bidwb)))"
 
即只是各个Host的顺序不同
2)本地服务名连接的配置方式
对于HOST=10.87.25.37这台主机的数据库实例的本地服务名应该这样配置
 37bidwb =
 (DESCRIPTION = 
    (ADDRESS_LIST= 
     (ADDRESS= (PROTOCOL = TCP)(HOST = 10.87.25.37)(PORT = 1521))
     (ADDRESS= (PROTOCOL = TCP)(HOST = 10.87.25.38)(PORT = 1521))
     (ADDRESS= (PROTOCOL = TCP)(HOST = 10.87.25.39)(PORT = 1521))
     (FAILOVER = on)
     (LOAD_BALANCE = off)
    )   
    (CONNECT_DATA= (SERVICE_NAME = bidwb))
 )
 
对于HOST=10.87.25.38这台主机的数据库实例的本地服务名应该这样配置
 37bidwb =
 (DESCRIPTION = 
    (ADDRESS_LIST= 
     (ADDRESS= (PROTOCOL = TCP)(HOST = 10.87.25.38)(PORT = 1521))
     (ADDRESS= (PROTOCOL = TCP)(HOST = 10.87.25.39)(PORT = 1521))
     (ADDRESS= (PROTOCOL = TCP)(HOST = 10.87.25.37)(PORT = 1521))
     (FAILOVER = on)
     (LOAD_BALANCE =off)
    )   
    (CONNECT_DATA= (SERVICE_NAME = bidwb))
 )
 
对于HOST=10.87.25.39这台主机的数据库实例的本地服务名应该这样配置
 37bidwb =
 (DESCRIPTION = 
    (ADDRESS_LIST= 
     (ADDRESS= (PROTOCOL = TCP)(HOST = 10.87.25.39)(PORT = 1521))
     (ADDRESS= (PROTOCOL = TCP)(HOST = 10.87.25.37)(PORT = 1521))
     (ADDRESS= (PROTOCOL = TCP)(HOST = 10.87.25.38)(PORT = 1521))
     (FAILOVER = on)
    (LOAD_BALANCE = off)
    )   
    (CONNECT_DATA= (SERVICE_NAME =bidwb))
 )
 
配置方式与JDBC连接字符串大同小异
配置也表示只支持failover,不支持loadbalance.根据蓝色字符串可以表示.即按照顺序,使用该JDBC字符串获取的连接,将根据配置的主机的先后顺序,依次进行failover.
 
测试方式也应该分为两种,一种是测试JDBC连接字符串,一种是测试本地服务名.
测试JDBC连接字符串可以通过存储过程任务来执行,这也是我们最初的测试目标.
我们可以通过关闭数据库监听的方式,看是否能够自动地failover.,例如一个存储过程本来是
在37 Oracle上执行,现在关闭37 Oracle的监听,测试该存储过程仍否能够正常执行.
一种是测试本地连接字符串,这种应该没问题,因为是oracle本身的客户端来支持,可以通过
OCI抽取或Oracle装载来测试,测试方式与上类似
 
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值