欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

RAC connection management整理

程序员文章站 2022-04-21 20:39:15
...

对于RAC来说,当Oracle Instance失败的,应用有几种高可用技术来保证可用性,这些技术对客户端来说都是透明的,客户端可能感知不

对于RAC来说,当Oracle Instance失败的,应用有几种高可用技术来保证可用性,这些技术对客户端来说都是透明的,客户端可能感知不到instance failure。

一.Transparent Application Failover (TAF)

二.Fast Connection Failover (FCF).

当一个节点failure的时候,TAF允许数据库session使用OCI libraries进行fail over到其他存活的一个节点。但是如果应用使用JDBC thin driver则不能使用TAF。

Failover Modes:

Session failover

Select failover

None(default)

1.select mode允许query重新在新的节点执行,,并且丢弃已经fetch的行,继续返回结果给客户端。

2.none mode显式的声明不使用TAF

3.TAF不能够恢复任何DML事务,事务将在另一个节点回滚。

Failover Methods:

Basic

Preconnect

1.Basic选项意味着客户端在实例失败后重新建立新的连接,这个method可能导致节点失败时,另一节点的性能下降,因为有很多的session将要重新连接到幸存的节点。

2.客户端产生一个preconnected session作为备份,在实例失败时加速failover。

TAF是client-side feature,我们需要配置它在客户端Tnsnames.ora或者server端通过service来实现

1,客户端实现

RAC中在tnsnames.ora里面典型配置如下:

2,server端实现

FAN是一种消息发布机制,在instance up/down发布消息到客户端,来进行群集的重新配置,FCF是通过FAN来透明的进行
instance failure failover。

FCF支持的客户端驱动:

Java Database Connection Driver (JDBC)
Oracle Universal Connection Pool UCP
Clients using the Oracle Call Interface
Oracle Data Providers for .Net

在11R2(11.2.0.1)中当设置了db_domain参数,FCF将会失效,bug:8779597

更多Oracle相关信息见Oracle 专题页面 ?tid=12

RAC connection management整理