jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.231)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.232)(PORT=1521))(LOAD_BALANCE=ON)(FAILOVER=ON))(CONNECT_DATA=(SERVER=DEDICATED)(INSTANCE_ROLE=PRIMARY)(FAILOVER_MODE=(TYPE=SESSION)(METHOD=BASIC))(SERVICE_NAME=ahbst)))
参数的含义:
LOAD_BALANCE
FAILOVER
ON
ON
客户端新建连接随机尝试ADDRESS_LIST中的监听,直到连接到一个可用监听,或者连完列表中的所有监听,如没有一个监听可用,则返回错误信息
ON
OFF
客户端新建连接随机尝试ADDRESS_LIST中的任一监听,无论这个监听是否可用,如不可用直接返回错误。
OFF
ON
客户端新建连接按顺序尝试ADDRESS_LIST中的监听,直到连接到一个可用监听,或者连完列表中的所有监听如没有一个监听可用,则返回错误信息
OFF
OFF
客户端新建连接仅连接ADDRESS_LIST中第一个监听,无论这个监听是否可用,如不可用直接返回错误。
SERVER
SHARED:意味着为你这个客户端服务的server进程和为其他客户端服务的server进程是共享的。
DEDICATED:意味着你这个客户端锁对应服务的server进程只为你这个客户端服务。
FAILOVER_MODE
TYPE
session:如果用户连接丢失,将创建一个新的会话连接到备用节点,用户的所有未提交的操作必须回滚,然后再次执行,SELECT操作也被中止.
select:如果用户连接丢失,将使用游标和之前的快照继续执行SELECT操作,叫做SQL接管,SQL接管能够无缝接管理的事务类型只有SELECT语句.其它的操作也必须要回滚然后再次执行.
none:客户端默认值,禁止SQL接管功能,主要用于测试的目地,在实际应用中TYPE应指定为session或者select
METHOD
basic:仅仅在FAILOVER发生时才连接备用节点
preconnect:在用户连接到主节点时同时也在备用节点产生一个连接会话,设置预连接模式,能够快速接管SQL
RETRIES:当前节点失败后,失败切换功能会尝试连接备用节点,这个值确定了尝试的次数,如果仅DELAY被指定,RETRIES默认为5
DELAY:两次尝试之间等待的秒数,如果仅指定RETRIES,DELAY默认为1秒
BACKUP:指定另外一个用于备份连接的网络服务名,当RAC设置为主次模式时,使用此参数,并且METHOD应该设为preconnect