oracle-11gR2 RAC service Side TAF的配置

crowdcountingp2p代码复现 前面学习了一下论文:Improved Field-Based Soybean Seed Counting and Localization with Feature Level Considered该论文的模型原型由CrowdCounting-P2PNet改进而来这里先复现一下CrowdCounting-P2PNet模型,然后再学习P2PNet-Soy模型。 阅读详情

现在使用oracle 11gr2 版本的RAC已经越来越多了,这里我们来测试一下服务器端的TAF。

TAF( Transparent Application Failover  allows Oracle clients to reconnect to a surviving instance in the event of a failure of the instance to which it is connected. There are two types of TAF available, SESSION and SELECT. 

TAF允许oracle客户端重新连接到一个可持续的实例,当客户端连接的实例出现失败时。有2中有效的TAF类型,session and select.


SESSION: Session Failover re-creates the connections and sessions to the surviving instance.

session: 会话失败重建连接,会话连接到依然存在的实例
SELECT:  In addition to recreating the session, Select Failover also replays the queries that were in progress. 

select:除重建session之外,在进程中,select failover 回放以前的请求。

There are two methods in which TAF estabilishes the failover connection, BASIC and PRECONNECT.

 有2中模式在TAF建立的故障转移连接,basic 和preconnect.

BASIC: The second connection is re-established only after the first connection to the instance failed.

basic:第二次连接被重新建立 仅仅在第一次连接的实例出现失败以后。
PRECONNECT: Two connections are established when the client logs in to the database. A login to database will create two connection at the same time. For this to work, clusterware actually starts two services. One main service and another shadow service. 

preconnect:2次连接被建立,当客户端连接到数据库。一个登录数据库将创建2个连接在同一时间。在这种模式下,集群通常启动2种service。主服务和另外的影子服务。

TAF can be configured at the Oracle Client side in tnsnames.ora or at the Database Server side using the SRVCTL utility.  Configuring it at the server is preferred as it is convenient to put the configuration in one place i.e. on the server. This article covers the configuration at the server using SRVCTL.  TAF configuration is associated with the database service. 

TAF可以配置在oracle客户端的tnsnames.ora文件中或者在数据库端使用srvctl命令。配置在服务器端是首选,他方便的将配置放在一个地方。这篇文章包括服务器端使用srvctl 配置服务。TAF配置与数据库服务是交织在一起的。

1. Create the service with SRVCTL
SRVCTL defines services in OCR which is accessible across nodes. The service configuration details can be viewed with the SRVCTL config service command.

2. Start the Service with SRVCTL
When the service is started with SRVCTL, it actually creates a service in the database. The service name and the configuration details of the service created at the database can be viewed with DBA_SERVICES view. Then the SERVICE_NAMES database parameter is set, which allows PMON to register this service with the listener.  Once the new service is registered, remote client connections can established through the listener.

NOTE:
The clusterware automatically starts/stops and manages the services in the database according to the configuration of the service. Manually setting the SERVICE_NAMES parameter in RAC is not allowed as clusterware manages setting this parameter.

Let's have a look at the srvctl syntax for creating service. Databases in 11gR2 can be Administrator-managed or Policy-managed. Certain options

创建一个service服务

-->在oracle用户下执行
[oracle@rac-2 ~]$ srvctl add service -d oratest -s ervice1 -r oratest1,oratest2 -P basic -e select -m basic -q true -j long -z 10 -w 2


下面是命令的帮助信息
srvctl add service -d <db_unique_name> -s <service_name> 
-r "<preferred_list>" [-a "<available_list>"] [-P {BASIC | NONE | PRECONNECT}] 
-g <server_pool> [-c {UNIFORM | SINGLETON}] 
[-k <net_num>] 
[-l [PRIMARY][,PHYSICAL_STANDBY][,LOGICAL_STANDBY][,SNAPSHOT_STANDBY]] 
[-y {AUTOMATIC | MANUAL}] 
[-q {TRUE|FALSE}] 
[-x {TRUE|FALSE}] 
[-j {SHORT|LONG}] 
[-B {NONE|SERVICE_TIME|THROUGHPUT}] 
[-e {NONE|SESSION|SELECT}] 
[-m {NONE|BASIC}] 
[-z <failover_retries>] 
[-w <failover_delay>]
信息说明:

FAILOVER_MODE项分析  
  FAILOVER_MODE项是实现TAF的主要配置内容,下面对其进行描述.  
    
  METHOD: 用户定义何时创建到其实例的连接,有BASIC 和 PRECONNECT 两种可选值  
    BASIC: 客户端通过地址列表成功建立连接后,即仅当客户端感知到节点故障时才创建到其他实例的连接  
    PRECONNECT: 预连接模式,是在最初建立连接时就同时建立到所有实例的连接,当发生故障时,立刻就可以切换到其他链路上  
      
    上述两种方式各有优劣,前者建立连接的开销相对较小,但failover时会产生延迟,而后者正好与前者相反  
      
  TYPE: 用于定义发生故障时对完成的SQL 语句如何处理,其中有2种类型:session 和select  
    select:使用select方式,Oracle net会跟踪事务期间的所有select语句,并跟踪每一个与当前select相关的游标已返回多少行给客户  
      端。此时,假定select查询已返回500行,客户端当前连接的节点出现故障,Oracle Net自动建立连接到幸存的实例上并继续返回  
      剩余的行数给客户端。假定总行数为1500,行,则1000行从剩余节点返回。  
    session: 使用session方式,所有select查询相关的结果在重新建立新的连接后将全部丢失,需要重新发布select命令。  
      
    上述两种方式适用于不同的情形,对于select方式,通常使用与OLAP数据库,而对于session方式则使用与OLTP数据库。因为select   
    方式,Oracle 必须为每个session保存更多的内容,包括游标,用户上下文等,需要更多的资源。  
      
    其次,两种方式期间所有未提交的DML事务将自动回滚且必须重启启动。alter session语句不会failover。  
    临时对象不会failover也不能被重新启动。  
      
  RETRIES: 表示重试的次数  
  DELAY:表示重试的间隔时间  

启动service服务

[oracle@rac-2 ~]$ srvctl start service -d oratest -s ervice1

查询建立的service服务信息

select name,failover_method,failover_type,failover_retries,goal,clb_goal,aq_ha_notifications from dba_services where name='ervice1';

查询连接建立信息

select inst_id,username,service_name,failover_type,failover_method,failed_over from gv$session where username='TEST' and service_name='ervice1';
select username,service_name,failover_type,failover_method,failed_over from v$session where username='TEST' and service_name='ervice1';


连接配置总结

1、客户端版本是11.2.0.3

客户端可以做如下配置

-->使用scanIP
scan =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.24.49.245)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = ervice1)
    )
  )
-->使用vip
racvip = 
	(DESCRIPTION=
		(LOAD_BALANCE=yes)
		(ADDRESS=(PROTOCOL=TCP)(HOST= 172.24.49.243)(PORT=1521))
		(ADDRESS=(PROTOCOL=TCP)(HOST= 172.24.49.244)(PORT=1521))
		(CONNECT_DATA=
			(SERVICE_NAME= ervice1)
		)
	)

2、客户端为11.2.0.3以下版本

-->客户端taf
racvip1 = 
	(DESCRIPTION=
		(LOAD_BALANCE=yes)
		(ADDRESS=(PROTOCOL=TCP)(HOST= 172.24.49.243)(PORT=1521))
		(ADDRESS=(PROTOCOL=TCP)(HOST= 172.24.49.244)(PORT=1521))
		(CONNECT_DATA=
			(SERVICE_NAME= oratest)
			(FAILOVER_MODE =  
      	(TYPE = session)  
       	(METHOD = basic)  
       	(RETRIES = 180  
       	(DELAY = 5))  
		)
	)

首先使用scanIP测试节点失败是否自动切换

节点之间可以实现负载均衡
测试节点故障,是否可以自动切换,在11.2.0.3以下客户端版本,都无法实现。
-->保持客户端与节点1连接
SQL> show parameter instance_name;

NAME                                 TYPE
------------------------------------ --------------
VALUE
------------------------------
instance_name                        string
oratest1
-->查看连接的节点,关闭
SQL> show parameter instance_name;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      oratest1
SQL> 
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
-->在客户端再次执行
SQL> show parameter instance_name;
ORA-03113: end-of-file on communication channel
Process ID: 27658
Session ID: 143 Serial number: 317
SQL> show parameter instance_name;
ERROR:
ORA-03114: not connected to ORACLE
-->退出后,可以重新连接到节点2。
-->在这种情况下,无法实现故障的自动切换
SQL> select name,failover_method,failover_type,failover_retries,goal,clb_goal,aq_ha_notifications from dba_services where name='service1';

NAME                           FAILOVER_METHOD                FAILOVER_TYPE                  FAILOVER_RETRIES GOAL         CLB_G AQ_
------------------------------ ------------------------------ ------------------------------ ---------------- ------------ ----- ---
service1                       BASIC                          SELECT                                        5 NONE         LONG  YES
SQL> select inst_id,username,service_name,failover_type,failover_method,failed_over from gv$session where username='SYS' and service_name='service1';

   INST_ID USERNAME                       SERVICE_NAME                   FAILOVER_TYPE                  FAILOVER_METHOD                FAI
---------- ------------------------------ ------------------------------ ------------------------------ ------------------------------ ---
         1 SYS                            service1                       NONE                           NONE                           NO
-->
在11.2.0.3客户端可以实现

-->在11.2.0.3客户端,可以实现
-->
[oracle@rac-2 admin]$ sqlplus test/test@scan

SQL*Plus: Release 11.2.0.3.0 Production on Tue Apr 8 10:42:29 2014

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> show user;
USER is "TEST"
SQL> 
SQL> 
SQL> select table_name from user_tables;

TABLE_NAME
------------------------------
T1
T2
-->
SQL> select inst_id,username,service_name,failover_type,failover_method,failed_over from gv$session where username='TEST' and service_name='ervice1';

   INST_ID USERNAME
---------- ------------------------------
SERVICE_NAME                                                     FAILOVER_TYPE
---------------------------------------------------------------- -------------
FAILOVER_M FAI
---------- ---
         1 TEST
ervice1                                                          SELECT
BASIC      NO

-->
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
-->
SQL> select table_name from user_tables;

TABLE_NAME
------------------------------
T1
T2

使用vip可以在11.2.0.3客户端实现

-->vip在11.2.0.1客户单也无法实现
-->测试在11.2.0.3客户端
[oracle@rac-2 admin]$ sqlplus test/test@racvip

SQL*Plus: Release 11.2.0.3.0 Production on Tue Apr 8 10:49:11 2014

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> show parameter instance_name;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      oratest1
SQL> 

-->
SQL> select inst_id,username,service_name,failover_type,failover_method,failed_over from gv$session where username='TEST' and service_name='ervice1';

   INST_ID USERNAME                       SERVICE_NAME                   FAILOVER_TYPE FAILOVER_M FAI
---------- ------------------------------ ------------------------------ ------------- ---------- ---
         1 TEST                           ervice1                        SELECT        BASIC      NO

客户端配置的TAF我这里没有测试了。网上应该有很多测试的例子了。

--END--




手把手教学:利用AutoDL与vLLM快速部署DeepSeek-R1大模型实战指南 本文详细介绍了如何利用AutoDL平台和vLLM框架快速部署DeepSeek-R1大模型的实战指南。从服务配置、vLLM安装优化到模型部署的两种方案,再到性能调优和生产环境建议,手把手教你高效完成大模型部署。特别针对国内开发者遇到的网络问题提供了稳定解决方案,并分享了显存优化、磁盘清理等实用技巧。 阅读详情

相关推荐

华为OD机试真题 新系统 2026-04-19 C语言 实现【8位LED控制器】

有一个8位LED控制器,包含8个LED灯(编号0-7),初始状态全灭,用8位二进制表示为:00000000。控制器可以接收以下三种指令: Lx:L表示点亮操作,x表示LED的编号(0一7),操作得到的结果是:点亮第x个LED灯,把状态设为1。 Dx:D表示熄灭操作,x表示LED的编号(0-7),操作得到的结果是:熄灭第x个LED灯,把状态设为0。 Tx:T表示切换操作,x表示LED的编号(0-7),操作得到的结果是:切换第x个LED灯的状态,若状态为0则变为1,为1则变为0。 现在给定一组指令字符串(0<

MISAYAONE的博客 108

Oracle11g RAC 服务器端TAF功能配置

TAF定义 Transparent Application Failover(透明应用故障转移)是JDBC和OCI驱动的一个特性。当会话连接的数据库实例发生宕机时TAF允许应用程序自动重新连接到数据库,此时之前未提交的事务将会回滚且保证正在运行的查询操作会话发生中断。 从而实现客户端应用程序对后台RAC数据库部分实例失败毫无感知,保证业务操作的连续性。   2TAF分类 session

lzw5210的博客 2209

华为OD机试真题 新系统2026-04-01 Java&Go【计算数列位置N的值】

如果其前面的M个元素中,存在值相同的元素,则该位置上的数值等于前面M个数中最大的数值与最小的数值之如果其前面的M个元素中,存在值相同的元素,则该位置上的数值等于前面M个数中最大的数值与最小的数值之差;1、输入M、N两个数,则按照以下规则形成一个数列;两个整数,用逗号分割,分别表示M和N。一个整数,表示数列第N个位置上的数值。2、数列的前M个元素的值为1到M;请计算该数列第N个位置上的数值。N取值范围:1<= N<=50。M取值范围:3<=M<=10。

MISAYAONE的博客 1614

11g RAC环境下客户端配置TAF

TAF是Transparent Application Failover的英文缩写,顾名思义就是对应用透明的故障转移,举个例子,当应用连接某个oracle数据库的执行查询操作的时候,数据库服务器网络中断或者实例崩溃,在经过delay参数设置的值之后,将自动连接到其他可用的实例,继续进行查询。(前提是执行计划,输出结果集和输出的顺序能发生变化) TAF的特性: 1:TAFORACLE客户

qyq88888的专栏 777

oracle taf 服务端,Oracle 11gR2 RAC Service-Side TAF 配置示例

Service-Side TAFService-Side TAF配置参考:How To Configure Server Side Transparent Application Failover [ID 460982.1]Service-SideTAF 可以看作是TAF的一种变种,首先Service-SideTAF也是TAF,所有TAF的特点它都有,其次这种TAF是在服务器上配置的,而像TA...

weixin_42130862的博客 341

RAC环境下配置TAF (Final)

TAF是Transparent Application Failover的英文缩写,顾名思义就是对应用透明的故障转移,举个例子,当应用连接某个oracle数据库的执行查询操作的时候,数据库服务器网络中断或者实例崩溃,在经过delay参数设置的值之后,将自动连接到其他可用的实例,继续进行查询。(前提是执行计划,输出结果集和输出的顺序能发生变化) TAF的特性: 1:TAFORACLE客户端提...

weixin_34309543的博客 232

再说 Oracle RAC services

应用程序工作负载在Oracle 10g中可以被定为services,也称之为服务,能够在单实例中使用,也能够在RAC中单独使用和管理。因此整个数据库负载能够被分割为多个同的services,通过管理service能够简化用户或session的管理。其次services特性的重要体现在RAC之中用于实现负载均衡与故障转移。本文描述什么是services,以及使用services的好处,以及如何使用

乐沙弥的世界 1万+

Oracle 11gR2 RAC Service-Side TAF 配置示例

Oracle 11gR2 RAC Service-Side TAF 配置示例   相关的理论说明,参考如下Blog: Oracle RACFailover 详解 http://blog.csdn.net/tianlesoftware/article/details/5340788   How To Configure Server Side Tr

guoliang 965

oracle 12c taf,Oracle 11gR2 RAC Service-Side TAF 配置示例

How To Configure Server Side TransparentApplication Failover [ID 460982.1]1.创建TAFService[Oracle@db1 bin]$ ./srvctl add service -d orcl -s server_taf -r "orcl1,orcl2" -P BASIC--这里的orcl是database name,or...

weixin_39883906的博客 208

oracle taf 服务端,Oracle 11g R2 RAC TAF 服务配置

Oracle RACFailover详解:http://www.51chongdian.net/bbs/thread-31215-1-1.htmlHow To Configure Server Side TransparentApplication Failover[ID 460982.1]1.创建TAFService[oracle@db1 bin]$ ./srvctl add service -...

weixin_27134143的博客 253

11gr2 RAC配置Service-Side TAF

10g可以用dbca 来配置TAF 11.2以后只能通过命令和EM方式来实现,命令方式试验结果如下: 1 创建TAF服务 srvctl add service -d ...

cijinli4767的博客 146

11gR2 RAC connection management

对于RAC来说,当Oracle Instance失败的,应用有几种高可用技术来保证可用性,这些技术对客户端来说都是透明的,客户端可能感知到instance failure。 一.Transparent Application Failover (TAF) 二.Fast Connection Failover (FCF). 当一个节点failure的时候,TAF允许数据库session使用O

1409

oracle rac loadbalance,[zt] Oracle RAC Load Balance [final]

虽然在Oracle的立场上,总是建议客户能够更好地规划自己的应用,在有其它负载平衡方法的时候,尽量要依赖于Oracle的Load Balance方法,但是往往在给客户配置Oracle RAC数据库以后,客户都会要求要测试负载平衡(Load Balance)和TAF(Transparent Application Failover),并且将这两个测试作为RAC是否安装成功的标准。这是一件很无奈的...

weixin_35355560的博客 296

11gR2(11.2) RAC TAF Configuration for Admin and Policy Managed Databases (文档 ID 1312749.1)

In this Document Purpose Scope Details Concepts & Overview Administrator-managed Database Basic Method Preconnect Method Policy-managed Databas...

weixin_33863087的博客 122

oracle用户配置Service-Side TAF(Transparent Application Failover) 示例

1 创建serviceoracle 用户创建 [oracle@rac1 ~]$ srvctl add service -d leo -s leo_taf -r "leo1" -a "leo2" -P basic -e select -m basic -w 5 -z 180 2 启动 server_taf服务 [oracle@rac1 ~]$ srvctl start service ...

leo__1990的博客 339

Oracle RAC failover 测试(TAF方式)

Oracle RAC 客户端故障转移(failover),当采用TAF方式时,对于已经建立连接的客户端,在连接的实例或节点出现故障时,客户端无需再次发出连接请求,仍然可以继续之前的数据库操作,此称之为透明故障转移。本文描述基于Oracle 10g rac,客户端TAF方式的故障转移并给出示例。  下面是一些关于这方面的基础参考链接:  有关负监听配置,载均衡(load balance)以及Orac

乐沙弥的世界 1万+

oracle v$service,dbms_service与dba_services_v$services学习笔记(oracle10g rac)

-----dbms_service与dba_services的学习------dbms_service根据是否启用load balancing advisory参数可配置为:goal_none --禁用lba(lba为load balancing advisory的缩写)goal_service_time --lba根据服务所花的时间及服务可用的带宽goal_throughput --l...

weixin_40008884的博客 457

11g RAC基于服务端的TAF,遇到会话failover到其他节点,但是VIP未漂

Oracle 11g RAC 服务TAF测试  Oracle  RAC 同时具备HA(High Availiablity) 和LB(LoadBalance). 而其高可用性的基础就是Failover(故障转移). 它指集群中任何一个节点的故障都会影响用户的使用,连接到故障节点的用户会被自动转移到健康节点,从用户感受而言, 是感觉到这种切换。   Oracle RACFailover 可...

Mr.pan felix的专栏 3351

解决:“[INS-06006] Passwordless SSH connectivity not set up” 报错

在安装完RAC时,在安装Oraclerac1与rac2互信时,遇到[INS-06006] Passwordless SSH connectivity not set up between the following node(s)。 在执行Setup时成功,在操作系统上已经可以免密登陆,但是Test过,导致下面的步骤无法进行。 解决办法:百度说这个问题是由于/etc/hosts文件主机名大小写问题。后来发现问题在于虚拟机自带的虚拟网卡virbr0,将虚拟网卡删除掉,1、ifconfig v

我有零花钱的博客 6850

[INS-06006] Passwordless SSH connectivity not set up between the following node(s)

问题描述:[INS-06006] Passwordless SSH connectivity not set up between the following node(s): [fgedu1, fgedu2]. setup成功,test失败 法一: Setup成功,在操作系统上已经可以免密登陆,但是Test过,所以下面的步骤无法进行 度娘说这个问题是由于/etc/hosts文件主机名大小写问题,经检查我的配置没有问题,后来发现问题在于虚拟机自带的虚拟网卡virbr0,将虚拟网卡删除掉, 1、ifconf

qq961573863的博客 1202

Oracle搭建集群时报错[INS-06006] Passwordless SSH connectivity not set up between the following node(s): [ra

由于安装命令是用grid用户执行,所以要进入它的家目录,删除/home/grid/.ssh下的所有文件,两台机器都执行,之后编辑环境变量文件,也是两台机器都执行。之后保存退出,并souce /home/grid/.bash_profile。点击setup,返回是成功的,但是点test或next就报错。然后重新执行安装命令。

weixin_44147924的博客 943

双边随机前沿模型,SFA,Two-tier Stochastic Frontier Model:视频讲解+程序命令源代

双边随机前沿模型,SFA,Two-tier Stochastic Frontier Model:视频讲解+程序命令源代码是基于Kumbhakar的Two-tier Stochastic Frontier理论双边随机前沿模型,SFA,Two-tier Stochastic Frontier Model:视频讲解+程序命令源代码是基于Kumbhakar的Two-tier Stochastic Frontier理论双边随机前沿模型,SFA,Two-tier Stochastic Frontier Model:视频讲解+程序命令源代码是基于Kumbhakar的Two-tier Stochastic Frontier理论1.Two-tier Stochastic Frontier Model:程序命令源代码2. 视频讲解: 双边SFA-Kumbhakar.part2.rar (31.28 MB)

instantclient-basic-nt-11.2.0.2.0

免安装Oracle客户端软件配置pl/sql可远程连接oracle具体配置信息可参考http://blog.csdn.net/itmyhome1990/article/details/8796781

上一篇: oracle-flashback的开启
下一篇: 处理TNS-01101: Could not find service name LISTENER_SCAN1
gltyi99
博客等级 码龄16年 20粉丝 34原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值