相比较单机数据库,
RAC
需要一个共享存储;一个私有网络来进行集群内部通讯;
一个公有网络来连接应用和客户端;配置虚拟
IP
来提高节点故障时的连接速度,
当一个节点出现故障,它的虚拟
ip
立即指向其他节点的
ip
上
(
若不配置
vip
,当一
个节点发生故障时,新的连接将会发生等待,直到与该节点
ip
的通讯出现
time
out)
。
Failover
的连接配置
有两种连接方式可以实现数据库连接的
failover
1. TAF(Transparent Application Failover)
让我们看一下官方文档。
TAF
让
Oracle Net
将一个失效的连接从故障点转移到另
一个监听上,用户能使用这个新的连接来继续未完成的工作,这是一个
client
端的
功能。
TAF
可以配置为使用
client
端的
(Transparent Network Substrate)TNS
连接字符串
来连接,或者使用
server
端的服务。如果两种方式同时使用,则使用
server
端的
服务配置。
TAF
可以工作在两种模式下:
session failover
和
select failover
。前者在
failover
时
会重建失败的连接,后者则能够继续进程中未完成的查询
(
如果
failover
前一个
session
正在从一个游标中获取数据,则新的
session
将在相同的
snapshot
下重新
运行
select
语句,并返回余下的行
)
。如果
failover
时,
session
执行了
DML
操作且
未提交,则
failover
后,若不执行
rollback
回滚而执行新的操作,将会收到一条错
误信息
ORA-25402: transaction must roll back
TAF
在
dataguard
中使用,可以自动进行
failover
一个典型的使用了
TAF
的
TNS
连接串如下:
NEWSDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dyora)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 5)
评论