关闭

jdbc对oracle RAC方式的支持

标签: jdbcoracle数据库tcpservice测试
3517人阅读 评论(1) 收藏 举报
分类:
 
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装载来测试,测试方式与上类似
 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:31066次
    • 积分:563
    • 等级:
    • 排名:千里之外
    • 原创:23篇
    • 转载:0篇
    • 译文:0篇
    • 评论:4条