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

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

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

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

In this Document   Purpose   _afrLoop=1459311711568804&id=1481647.1&displayIndex=6&_afrWindowMode=0&_adf.ctrl-state=foyvm6hmv_102#REF_TEXT">Details Applies to: Oracle Server - Enterprise Edition - Version 11.2.0.1 and later Informa

How to change Hostname / IP for a Grid Infrastructure Oracle Restart Standalone Configuration (SIHA) (文档 ID 1552810.1)

Therefore, please perform the next steps after the hostname was updated/changed/modified in the Oracle Restart configuration: 1) Configure the CSS & OHAS services as root user as follows: # <11.2 Grid Infrastructure Oracle Home>/crs/install/root

Oracle 11.2.0.4 PSU实施文档

1. 本次服务详细过程 1.1 背景概述 升级数据库PUS,数据库环境,操作系统版本:RedHat5.8 x64,数据库版本Oracle 11.2.0.4 x64 RAC Grid: 11.2.0.4,Oracle database: 11.2.0.4 1.2 安装前准备 -rw-r--r-- 1 oracle oinstall  93376160 Mar 25 11:43 p21948347_112040_Linux-x86-64.zip -rw-r--r-- 1 oracle oinstal

&quot;kewastUnPackStats(): bad magic 1 (0xXXXXXXXXX, 0)&quot; in Alert Logfile After Upgrading to 11.2.0.1 (文档

 "kewastUnPackStats(): bad magic 1 (0xXXXXXXXXX, 0)" in Alert Logfile After Upgrading to 11.2.0.1 (文档 ID 1227524.1) 转到底部 In this Document Symptoms   Cause   Solution   References APPLIES TO: Oracle Database - Enterprise Edition - Version 9.2.0

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

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

ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档

ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档 2015-10-21 12:51 525人阅读 评论(0) 收藏 举报  分类: Oracle RAC 版权声明:本文为博主原创文章,未经博主允许不得转载. VBOX + Oracle Linux 6U3 + ORACLE 11.2.0.3.0 RAC 安装 环境: 虚拟机          VIRTUAL BOX OS                ORACLE LINUX 6.3_X86_64

【翻译自mos文章】11.2 RAC: In &quot;crsctl stat res -t&quot; State Details May Be Missing or Incorrect

11.2 RAC: In "crsctl stat res -t" State Details May Be Missing or Incorrect (Doc ID 1086563.1) 适用于: Oracle Server - Enterprise Edition - Version: 11.2.0.1 and later   [Release: 11.2 and later ] Information in this document applies to any platfor

Redhat 5.8 ORACLE 11gR2 RAC安装文档2-grid安装

3.安装Grid 3.1.安装rpm包 两个节点都要安装,以节点1为例 [[email protected] yum.repos.d]# yum install compat-libstdc++-33 ksh gcc gcc-c++ libgomp elfutils-libelf-devel glibc-devel glibc-headers libaio-devel libstdc++-devel sysstat unixODBC unixODBC-devel –y -----.. Compl

操作系统网关的设置不会影响到11.2 RAC

默认情况下,11.2已经不是通过ping网关的方式来检查public网络是否可用了,所以网关的设置不会影响到11.2 RAC 在11.2之后,可以直接更改网关,不需要对GI进行修改. 也就是说GI里边不记录网关的信息. 但是若是修改网关,要重启网络服务的话(这是os的要求, 是否需要重启网络服务,请咨询os技术支持),这就会影响的GI的正常运行. 因此,建议在业务能停机的时间去修改网关. 如果不关闭GI,在重启网卡的情况下,ora.net VIP等资源都会宕掉