Oracle RAC环境下的应用连续性

传统企业比如银行业和电信业的数据库大多采用oracle rac+dataguard的高可用架构,在rac项目实施过程中,由于业务连续性的苛刻要求,高可用的实施和测试工作显得尤为重要。

oracle在新版本12cR2的rac官方文档里单独列了一章叫Ensuring application Continuity,重视程度可见一斑。在以前的oracle10g以及11g的版本中,client为实现RAC failover(故障转移)特性,各类应用app以及db需要作各种配置调整工作,随着oracle的12cR2新版本的到来,这些配置步骤变得更简化。

下面简要总结oracle11gR2环境下的failover配置。

首先根据是否使用了事先已经存在的连接(如连接池中的连接)将客户端的连接分为Connect Time Connection Failover和Runtime Connection Failover,runtime前缀指连接已经存在的情况,比如使用了连接池。

1、Connect Time Connection Failover

客户端的tnsnames.ora中配置scan ip和service就可以实现连接数据库时的Failover;

2、Runtime Connection Failover

oracle通过两种手段来实现Runtime Connection Failover,分别为TAF(Transparent           Application Failover)和 FCF(Fast Connection Failover)。

首先是TAF:

它可以在 client 端的tnsnames.ora中的连接串里定义,也可以在 server 端的 service 中定      义。TAF 仅对使用 OCI 连接的客户端和连接池有效,这里的 OCI 连接可以是在 OCI 连接上的封装,比如 JDBC-OCI driver 就支持 TAF,但 JDBC thin driver 就不支持 TAF(因为 JDBC thin driver 不是基于 OCI 的)。

其次是FCF:

Fast Connection Failover,它实际上是客户端通过订阅 FAN HA events 来实现的。

因为 JDBC thin 连接不是基于 OCI 的,所以这种情况下的 Runtime Connection Failover 不能使用 TAF,只能用 FCF。

如果想让应用app具备TAF属性,可进行简单app改造:首先在app的client环境安装oracle客户端程序,然后将jdbc thin连接调整为jdbc oci的连接方式。

在oracle12cR2的版本中,failover可基于事务,且replay dml语句,相对于11g基于会话,failover功能又大大提升了。

时间: 2024-08-10 19:17:15

Oracle RAC环境下的应用连续性的相关文章

Oracle RAC环境下如何更新patch(Rolling Patch)

Oracle RAC数据库环境与单实例数据库环境有很多共性,也有很多异性.对于数据库补丁的更新同样如此,都可以通过opatch来完成.但RAC环境的补丁更新有几种不同的更新方式,甚至于可以在零停机的情况下对所有节点实现滚动升级.本文主要是转述了Doc 244241.1,描述RAC环境下的patch更新方式以及在不同的情形下选择何种更新方式. 1.RAC patch的几种方式 OPatch supports 3 different patch methods on a RAC environmen

Oracle RAC 环境下的连接管理(转) --- 防止原文连接失效

崔华老师的文章!!! 这篇文章详细介绍了Oracle RAC环境下的连接管理,分别介绍了什么是 Connect Time Load Balancing.Runtime Connection Load Balancing.Connect Time Connection Failover 和 Runtime Connection Failover,以及里面所涉及到的 TAF.ONS.FCF.FAN.LBA 等诸多知识点.本文主要是针对 Oracle RAC 11gR2 环境下的连接管理,但同时也会对

Oracle RAC环境下配置statspack

Statspack是Oracle 9i时代的产物,对于监控与分析数据库性能有着跨里程碑的意义,是AWR的前身.在Oracle 10g后AWR取代了statspack.尽管如此,awr异常或者需要调试包license的情况下statpack依旧是不错的选择.然而在RAC环境中,statspack并不支持,需要单独的进行配置以及使用job来进行管理.本文描述的则是通过在RAC环境下创建service,以及job来达到各节点同时产生snapshot的效果. 一.演示环境 suse11a:oracle:

在oracle RAC 环境下用 PL/SQL Developer debug procedure 出现 hang 的情况

现象描述: 用plsql developer 连接编译procedure 的时候都很正常.一旦开始Test进入Debug模式的时候就Hang住了. 初步猜测是没有权限,可是是DBA角色呀,如果没有权限会直接报没有权限的错误吧. 后面猜测是Oracle 或者PL SQL Developer的版本问题,用同一个PLSQL 在相同版本的不同机器上测试,结果另外一台机器可以Debug. 开始猜测是不是RAC的原因. 搜索到这个解释:http://forums.allroundautomations.co

RAC 环境下修改归档模式

RAC环境下的归档模式切换与单实例稍有不同,主要是共享存储所产生的差异.在这种情况下,我们可以将RAC数据库切换到非集群状态下,仅仅在一个实例上来实施归档模式切换即可完成RAC数据库的归档模式转换问题.本文主要描述了由非归档模式切换到归档模式,而由非归档切换的归档步骤相同,不再赘述. [sql] view plain copy print? 1.主要步骤: 备份spfile,以防止参数修改失败导致数据库无法启动 修改集群参数cluster_database为false 启动单实例到mount状态

RAC 环境下的重要参数

Oracle 数据库启动时会根据参数文件中提供的相关参数启动Oracle实例.这些参数包括数据库名字.sga,pga的分配,控制文件的位置,undo,process等等.Oracle RAC数据库同样依赖于这些参数.除了所有单实例情形下的参数值外,RAC数据库还多出了一些重要的参数.本文主要描述RAC环境下的相关参数. 一.单实例下参数文件的重要参数  db_name  db_block_size  Control Files name and location  Initialization

RAC 环境下参数文件(spfile)管理

RAC环境下,初始化参数文件与但实例下参数文件有些异同,主要表现在初始化参数可以为多个实例公用,也可以单独设置各个实例的初始化参数.对于那些非共用的初始化参数则必须要单独设置,而共用的则可以单独设置,但一般不建议这么用.本文描述RAC 环境下参数文件(spfile)的相关管理工作. 有关RAC环境下的重要参数描述,请参考:RAC 环境下重要参数 [python] view plain copy print? 1.参数文件的位置 SQL> show parameter instance_name

利用XAG在RAC环境下实现GoldenGate自动Failover

概述 在RAC环境下配置OGG,要想实现RAC节点故障时,OGG能自动的failover到正常节点,要保证两点: 1. OGG的checkpoint,trail,BR文件放置在共享的集群文件系统上,RAC各节点都能访问到 2. 需要有集群软件的来监测OGG进程,以及发生故障时,自动在正常节点重启OGG(failover) Oracle Grid Infrastructure Standalone Agents (XAG)搭配Oracle支持的集群文件系统,可以实现OGG的自动failover,本

【RAC】在RAC环境下需要惟一设置的重要参数列表

在RAC环境中的数据库参数的设置需要多加关注.在RAC环境中大部分参数要求各节点实例设置一样,然而个别的参数是每个实例特有的,需要单独设置. 1.需要设置为相同值的参数什么样的参数在RAC环境的多实例中需要设置为相同值?那些在创建数据库时至关重要的初始化参数以及会影响特定数据库操作的初始化参数必须具有相同的值.例如下面的这些参数,在RAC环境中每个实例中都需要进行统一设置:ACTIVE_INSTANCE_COUNTARCHIVE_LAG_TARGETCLUSTER_DATABASECONTROL