11gR2(11.2) RAC TAF Configuration for Admin and Policy Managed Databases
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
-r "
-g
[-k
[-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
[-w
Here is the description of the options that we are going to use in configuring TAF.
-r "
This clause is valid only for Administrator-managed database which support PRECONNECT method.
-g
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
This defines the the number of times to attempt to connect after a failover.
[-w
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
-r "
[-e {NONE|SESSION|SELECT}]
[-m {NONE|BASIC}]
[-z
[-w
Example:
$ srvctl add service -d db112 -s mysrvb -r db1121,db1122 -P basic -e select -mbasic -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:
$ 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
-r "
[-e {NONE|SESSION|SELECT}]
[-m {NONE|BASIC}]
Example:
$ srvctl add service -d db112 -s mysrv -r db1121 -a db1122 -Ppreconnect
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
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
-g
[-e {NONE|SESSION|SELECT}]
[-m {NONE|BASIC}]
[-z
[-w
Example:
$ srvctl add service -ddb1 -s mysrvp -g mysrvpool -c uniform -e select -m basic -z10 -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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29337971/viewspace-1077954/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 11gRAC Admin,Policy Managed管理和配置
- RAC資料庫administrator managed管理員管理OR policy managed策略管理資料庫
- 11gr2 RAC配置Service-Side TAFIDE
- Oracle 11gR2 RAC Service-Side TAF 配置示例OracleIDE
- 【Services】Oracle 11g RAC使用Manual和Policy Managed方法配置和使用ServicesOracle
- Oracle RAC TAF [zt]Oracle
- ASM 11.2 Configuration KIT (ASM 11gR2 Installation & Configuration, Deinstallation, Upgrade, ASM JobASM
- Jdbc thin not suppot Rac TAFJDBC
- Oracle 10g RAC TAFOracle 10g
- 【TAF】使用Oracle RAC的TAF技術之SESSION型別OracleSession型別
- Oracle 11.2 DataGuard RAC To RAC搭建Oracle
- Oracle RAC TAF 無縫failoverOracleAI
- RAC TAF 連線 (tnsnames.ora)
- Oracle RAC Failove 之二:TAFOracleAI
- 基於Admin-managed刪除節點
- ORACLE RAC TAF 配置(透明故障轉移)Oracle
- Oracle 10g RAC TAF介紹Oracle 10g
- rac 的Client-side TAF配置clientIDE
- Oracle RAC的TAF簡單測試Oracle
- 【TAF】使用Oracle RAC的TAF技術實現不間斷查詢Oracle
- oracle 11g rac TAF 測試方案Oracle
- TNSNAMES TAF TEMPLATE , LOCAL_LISTENER RAC FAILOVERAI
- 【RAC】RAC中的負載均衡和故障切換--TAF配置負載
- Weblogic Admin Server , Managed Server記憶體調整WebServer記憶體
- [轉載]Oracle 10g RAC TAF介紹Oracle 10g
- Example of SQL Linux Windows Authentication configuration using Managed Service AccountsSQLLinuxWindows
- Oracle 11.2 RAC改IP步驟Oracle
- 11 g rac 安裝 11.2步
- 【雲和恩墨】嵌入雲端:12c Policy-Managed Cluster為Oracle DBaaS助力Oracle
- Linux平臺上Oracle Rac中的TAF配置LinuxOracle
- 在JDBC連線池中啟動Oracle RAC的TAFJDBCOracle
- Oracle RAC Failove 之三:Server-Side TAFOracleAIServerIDE
- Oracle RAC 客戶端故障轉移(failover) TAFOracle客戶端AI
- 修改WebLogic中Managed Server及Admin Server JVM大小 [final]WebServerJVM
- 安裝11gr2 RAC
- 11gR2 RAC修改IP
- Oracle 11.2 RAC改 Private IP步驟Oracle
- rac 11.2R版本新增節點