Oracle RAC 11gR2 Client Side TAF.

Oracle RAC

TYPE: TAF supports three types of failover types

1.SESSION failover – If a user’s connection is lost, SESSION failover establishes a new session
automatically created for the user on the backup node. This type of failover does not attempt
to recover selects. This failover is ideal for OLTP (online transaction processing) systems,
where transactions are small.

2.SELECT failover ñ If the connection is lost, Oracle Net establishes a connection to another
node and re-executes the SELECT statements with cursor positioned on the row on which it was
positioned prior to the failover. This mode involves overhead on the client side and Oracle
NET keeps track of SELECT statements. This approach is best for data warehouse systems,
where the transactions are big and complex

3.NONE: This setting is the default and no failover functionality is provided. Use this setting to
prevent failover.

METHOD

BASIC: Use this mode to establish connections at failover time, no work on the backup server until failover time.

PRECONNECT: Use this mode to pre-established connections. This PRECONNECT mode provides faster failover
but requires that the backup instance be capable of supporting all connections from every supported instance.

RETRIES: Use this parameter to specify number of times to attempt to connect to attain a failover. If DELAY is
specified but RETRIES is not specified, RETRIES default to five retry attempts.

DELAY: Use this parameter to Specify the amount of time in seconds to wait between connect attempts. If RETRIES
is specified but DELAY is not specified, DELAY default to one second.

EXAMPLE:

Configure DNS Resolution on client side.

Insert DNS server location in the “/etc/resolv.conf” file.

[[email protected] ~]# cat /etc/resolv.conf

search example.com
nameserver 192.168.1.100

Verify

[[email protected] ~]# nslookup rac-cluster-scan
Server: 192.168.1.100
Address: 192.168.1.100#53

Name: rac-cluster-scan.example.com
Address: 192.168.1.152
Name: rac-cluster-scan.example.com
Address: 192.168.1.150
Name: rac-cluster-scan.example.com
Address: 192.168.1.151

Create tnsnames.ora file.

whenever a database is created using dbca, Sample tnsnames entry are created on each
node in the tnsnames.ora file.
Those entries can be used to configure client.

Sample Tns entry in case of BASIC connection.

DELL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac-cluster-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dell.example.com)
(FAILOVER_MODE= (TYPE=select)(METHOD=basic)(RETRIES=10)(DELAY=5))
)
)

Connect on client

[[email protected] ~]# su – oracle
[[email protected] ~]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Sun Sep 23 21:21:22 2012

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

SQL> conn scott/[email protected]
Connected.

Check on RAC cluster

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

INST_ID SID USERNAME FAILOVER_TYPE FAILOVER_M FAI


     1         55 SCOTT                          SELECT        BASIC      NO

Sample Tns entry in case of Preconnect connection.

DATA1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac-cluster-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dell.example.com)
(INSTANCE_NAME=dell1)
(FAILOVER_MODE= (BACKUP=DATA2)(TYPE=select)(METHOD=preconnect))
)
)

DATA2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac-cluster-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dell.example.com)
(INSTANCE_NAME=dell2)
(FAILOVER_MODE= (BACKUP=DATA1)(TYPE=select)(METHOD=preconnect))

)

)

Connect from client side.

[[email protected] admin]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Sun Sep 23 22:12:46 2012

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

SQL> conn scott/[email protected]
Connected.

Check on RAC cluster.

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

INST_ID SID USERNAME FAILOVER_TYPE FAILOVER_M FAI


     1         53 SCOTT                          SELECT        PRECONNECT NO
     2         60 SCOTT                          NONE          NONE       NO