In this Document

  Purpose
 

_afrLoop=1459323732561579&id=1312749.1&displayIndex=10&_afrWindowMode=0&_adf.ctrl-state=foyvm6hmv_144#SCOPE">Scope

  Details
 

_afrLoop=1459323732561579&id=1312749.1&displayIndex=10&_afrWindowMode=0&_adf.ctrl-state=foyvm6hmv_144#aref_section31">Concepts & Overview

 

_afrLoop=1459323732561579&id=1312749.1&displayIndex=10&_afrWindowMode=0&_adf.ctrl-state=foyvm6hmv_144#aref_section32">Administrator-managed Database

  Basic Method
  Preconnect Method
  Policy-managed Database
  Basic Method

Applies to:

Oracle Database - Enterprise Edition - Version 11.2.0.1 to 11.2.0.3 [Release 11.2]

Oracle Net Services - Version 11.2.0.1 to 11.2.0.3 [Release 11.2]

Information in this document applies to any platform.

Purpose

This article describes Transparent Application Failover (TAF) and provides configuration details for 11gR2(11.2) cluster database.

Scope

This article is intended for Oracle Cluster Administrators who would like more details about TAF. Basic understanding of Oracle Clusterware Database is assumed.

Details

Concepts & Overview

TAF 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.




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

SELECT:  In addition to recreating the session, Select Failover also replays the queries that were in progress.






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




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

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.





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.




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 can be used only with certain type of database.

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>]

Here is the description of the options that we are going to use in configuring TAF.




-r "<preferred_list>" [-a "<available_list>"] [-P {BASIC | NONE | PRECONNECT}]

         This clause is valid only for Administrator-managed database which support PRECONNECT method.


-g <server_pool> [-c {UNIFORM | SINGLETON}]

         This clause is valid only for Policy-managed database where in PRECONNECT method is not available.



The above two options instruct clusterware on how to handle this service.



[-e {NONE|SESSION|SELECT}]

        This defines the type of TAF whether SESSION or SELECT.

[-m {NONE|BASIC}]

        This defines the method of TAF.

[-z <failover_retries>]

        This defines the the number of times to attempt to connect after a failover.


[-w <failover_delay>]

       This defines the amount of time in seconds to wait between connect attempts.




Above four options are passed to database while starting up the service and is viewable in DBA_SERVICES view.

Administrator-managed Database

Basic Method

1. Create Service



Syntax:

          srvctl add service -d <db_unique_name> -s <service_name>

          -r "<preferred_list>" [-a "<available_list>"] [-P {BASIC | NONE | PRECONNECT}]


         [-e {NONE|SESSION|SELECT}]

         [-m {NONE|BASIC}]

         [-z <failover_retries>]

         [-w <failover_delay>]





Example:

         $ srvctl add service -d db112 -s mysrvb
-r db1121,db1122 -P basic -e select -m
basic -z 10 -w 2

Though this example only uses -r option, you can use both -r and -a option.

2. Start the service

$ srvctl start service -d db112 -s mysrvb



Check if the service is registered with the listener.

$lsnrctl status LISTENER_SCAN1

. . .

. . .

Service "mysrvb" has 2 instance(s).

  Instance "db1121", status READY, has 1 handler(s) for this service...

  Instance "db1122", status READY, has 1 handler(s) for this service...

. . .

. . .

3. Make a connection.



The client connect string does not require any special TAF parameters. A simple tnsnames.ora entry as shown below will do.

mysrvb =

  (description =

   (address = (protocol=tcp)(host=secrac-scan)(port=1521))

   (connect_data=

    (service_name=mysrvb)

   )

  )
Note:  Please be aware that pre-11gR2 clients are not fully compatible with SCAN and require a special TNS connect string.  See the following Oracle Documentation:  http://www.oracle.com/technetwork/database/clustering/overview/scan-129069.pdf

$ sqlplus scott/tiger@mysrvb



Once connected GV$SESSION view will reflect the connection made is TAF enabled. The FAILOVER_METHOD and FAILOVER_TYPE column reflects it and this confirms the TAF configuration is correct.

SQL> select inst_id,username,service_name,failover_type,failover_method,failed_over from gv$session where username='SCOTT';



INST_ID USERNAME SERVICE_NAME FAILOVER_TYPE FAILOVER_M FAI

------- -------- ------------ ------------- ---------- ---

      1    SCOTT       mysrvb        SELECT      BASIC  NO

Note that this client has connected to the instance 1 with BASIC method and SELECT type.

Preconnect Method

1. Create service



Syntax:

           srvctl add service -d <db_unique_name> -s <service_name>

          -r "<preferred_list>" [-a "<available_list>"] [-P {BASIC | NONE | PRECONNECT}]


          [-e {NONE|SESSION|SELECT}]

          [-m {NONE|BASIC}]





Example:

          $ srvctl add service -d db112 -s mysrv
-r db1121 -a db1122 -P preconnect

NOTE:

* The -e, -m option should be set to none. Omitting this option actually sets it to none.

* Use both -r and -a option for preconnect so that a shadow service will be started.

2. Start the service.



$ srvctl start service -d db112 -s mysrv



Preconnect creates an additional shadow service.

$ crsctl stat res -t

. . .

. . .

ora.db112.mysrv.svc

          1 ONLINE ONLINE secrac1

ora.db112.mysrv_preconnect.svc

          1 ONLINE ONLINE secrac3

. . .

. . .

Note that the service 'mysrv' is started on the preferred instance. And the shadow service
'mysrv_preconnect' is started on the available instance. The shadow service is always defined as
<servicename>_preconnect.





Check if the service is correctly registered with the listener.

$ lsnrctl status listener_scan1

. . .

. . .

Service "mysrv" has 1 instance(s).

  Instance "db1121", status READY, has 1 handler(s) for this service...

Service "mysrv_preconnect" has 1 instance(s).

  Instance "db1122", status READY, has 1 handler(s) for this service...

. . .

. . .


3. Define TNS entry.



Preconnect requires special parameters at the client side tnsnames.ora file. The TAF Type and the TAF method is actually specified at the client end.

mysrv =

  (description =

   (address = (protocol=tcp)(host=secrac-scan)(port=1521))

   (connect_data=

     (service_name=mysrv)

     (failover_mode=

       (backup=mysrv_preconnect)

       (type=select)

       (method=preconnect)

     )

   )

  )



mysrv_preconnect =

  (description =

   (address = (protocol=tcp)(host=secrac-scan)(port=1521))

   (connect_data=(service_name=mysrv_preconnect))

  )

Connect to the database with this tns entry



$sqlplus scott/tiger@mysrv

SQL> select inst_id,username,service_name,failover_type,failover_method,failed_over from gv$session where username='SCOTT';



INST_ID USERNAME     SERVICE_NAME FAILOVER_TYPE FAILOVER_M FAI

------- -------- ---------------- ------------- ---------- ---

      1    SCOTT            mysrv        SELECT PRECONNECT  NO

      2    SCOTT mysrv_preconnect          NONE       NONE  NO

Note that the client has made two connections. The first one is the active main connection with PRECONNECT method and SELECT type. The second one is the shadow connection that will be used if the connection to the first instance fails.

Policy-managed Database

Basic Method

1. Create the service



Syntax:

          srvctl add service -d <db_unique_name> -s <service_name>

          -g <server_pool> [-c {UNIFORM | SINGLETON}]

          [-e {NONE|SESSION|SELECT}]

          [-m {NONE|BASIC}]

          [-z <failover_retries>]

          [-w <failover_delay>]





Example:

         $ srvctl add service -d db1 -s mysrvp
-g
mysrvpool -c uniform -e select -m basic
-z 10 -w 2





2.
Start the service



$ srvctl start service -d db1 -s mysrvp





Check if the service is correctly registered with the listener

$ lsnrctl status listener_scan1

. . .

. . .

Service "mysrvp" has 2 instance(s).

  Instance "db1_1", status READY, has 1 handler(s) for this service...

  Instance "db1_2", status READY, has 1 handler(s) for this service...

. . .

. . .

3. Make a connection.



The client connect string does not require any special TAF parameters. A simple tnsnames.ora entry as shown below will do.

mysrvp =

  (description =

   (address = (protocol=tcp)(host=secrac-scan)(port=1521))

   (connect_data=

     (service_name=mysrvp)

   )

  )

$ sqlplus scott/tiger@mysrvp

SQL> select inst_id,username,service_name,failover_type,failover_method,failed_over from gv$session where username='SCOTT';



INST_ID USERNAME SERVICE_NAME FAILOVER_TYPE FAILOVER_M FAI

------- -------- ------------ ------------- ---------- ---

      1    SCOTT       mysrvp        SELECT      BASIC  NO

11gR2(11.2) RAC TAF Configuration for Admin and Policy Managed Databases (文档 ID 1312749.1)的更多相关文章

  1. 11gR2 Database Services for &quot;Policy&quot; and &quot;Administrator&quot; Managed Databases (文档 ID 1481647.1)

    In this Document   Purpose   _afrLoop=1459311711568804&id=1481647.1&displayIndex=6&_afrW ...

  2. Best Practices and Recommendations for RAC databases with SGA size over 100GB (文档 ID 1619155.1)

    Best Practices and Recommendations for RAC databases with SGA size over 100GB (文档 ID 1619155.1) APPL ...

  3. Troubleshooting 10g and 11.1 Clusterware Reboots (文档 ID 265769.1)

    Troubleshooting 10g and 11.1 Clusterware Reboots (文档 ID 265769.1) This document is intended for DBA' ...

  4. Clusterware 和 RAC 中的域名解析的配置校验和检查 (文档 ID 1945838.1)

    适用于: Oracle Database - Enterprise Edition - 版本 10.1.0.2 到 12.1.0.1 [发行版 10.1 到 12.1]Oracle Database ...

  5. 如何诊断 11.2 集群节点驱逐问题 (文档 ID 1674872.1)

    适用于: Oracle Database - Enterprise Edition - 版本 11.2.0.1 到 11.2.0.2 [发行版 11.2]本文档所含信息适用于所有平台 用途 这篇文档提 ...

  6. How to remove a Data Guard Configuration from Primary Database (文档 ID 733794.1)

    APPLIES TO: Oracle Database - Enterprise Edition - Version 10.1.0.2 to 11.2.0.3 [Release 10.1 to 11. ...

  7. Security Configuration and Auditing Scripts for Oracle E-Business Suite (文档 ID 2069190.1)

    This document provides the security configuration and auditing scripts for Oracle E-Business Suite. ...

  8. 跟我学SharePoint 2013视频培训课程——删除恢复、文档离线工作(11)

    课程简介 第11天,怎样在SharePoint 2013中删除.恢复文档.文档离线工作. 视频 SharePoint 2013 交流群 41032413

  9. 【总文档】rac增加新节点的方法步骤 How to Add Node/Instance or Remove Node/Instance in 10gR2, 11gR1, 11gR2 and 12c Oracle Clusterware and RAC

    [总文档]How to Add Node/Instance or Remove Node/Instance in 10gR2, 11gR1, 11gR2 and 12c Oracle Clusterw ...

随机推荐

  1. CF(437C)The Child and Toy(馋)

    意甲冠军:给定一个无向图,每个小点右键.操作被拉动所有点逐一将去,直到一个点的其余部分,在连边和点拉远了点,在该点右点的其余的费用.寻找所需要的最低成本的运营完全成本. 解法:贪心的思想,每次将剩余点 ...

  2. Poj 3246 Balanced Lineup(线段树基础)

    依旧是线段树基础题 询问区间的最大值和最小值之差,只有询问,没有插入删除.继续理解基础线段树 #include <iostream> #include <algorithm> ...

  3. 利用ant的javac任务来编译java程序

    <?xml version="1.0" encoding="UTF-8"?> <project name="javaTest&quo ...

  4. 知识普及:iOS7搭载新定位技术iBeacon

    摘自:http://iphone.91.com/tutorial/jcjc/131023/21619035.html 在2013年六月举行的WWDC上,作为iOS 7中最重要的新特性之一,苹果正式对外 ...

  5. SuperSocket源码解析之启动过程

    一 简介 这里主要说明从配置系统引导启动SuperScoekt作为应用程序,且以控制台程序方式启动 二 启动过程 2.1 配置解析 从读取配置文件开始,直接拿到一个SocketServiceConfi ...

  6. Server是如何完成针对请求的监听、接收与响应1

    Server是如何完成针对请求的监听.接收与响应的[上] Server是ASP .NET Core管道的第一个节点,负责完整请求的监听和接收,最终对请求的响应同样也由它完成.Server是我们对所有实 ...

  7. Spring MVC视图层:thymeleaf vs. JSP

    本文对比了同一Spring MVC工程中相同页面(一个订阅表单)分别采用Thymeleaf和JSP(包括JSP.JSTL.Spring tag lib)两种方式的实现. 本文的所有代码来自一个可运行的 ...

  8. m2eclipse简单使用,创建Maven项目 ,运行mvn命令(转)

    前面介绍了如何安装m2eclipse,现在,我们使用m2ecilpse导入Hello World项目. 选择菜单项File,然后选择Import,我们会看到一个Import对话框,在该对话框中选择Ge ...

  9. Regionals 2012, North America - Greater NY 解题报告

    这套题..除了几何的都出了 完全没时间学几何.杯具 A,B,J 水题不解释 C.Pen Counts 这题的话 写几个不等式限制边得范围就行了 然后枚举最小边 D.Maximum Random Wal ...

  10. Android 代码混淆

    什么是代码混淆 Java 是一种跨平台的.解释型语言,Java 源代码编译成中间”字节码”存储于 class 文件中.由于跨平台的需要,Java 字节码中包括了很多源代码信息,如变量名.方法名,并且通 ...