Dedicated Connections to a Migrated VIP Can Lose their Connection after the VIP is Switched Back (Doc ID 339107.1)

Last updated on MARCH 05, 2009

Applies to:

Oracle Net Services - Version: 10.1.0.2.0 to 11.1.0.6.0
This problem can occur on any platform.

Symptoms

After a node is reinstated and the VIP address has moved back to the original node, connections established to the VIP when it was associated with the surviving node are no longer valid.

i.e.

1. Node A fails and the VIP1 associated with Node A moves to Node B
2. Client connects to VIP1 and the connection is handed off to a dedicated process on Node B
3. Node A is restored and VIP1 moves back to Node A
4. Connection established in step 2 is now using the IP address associated with Node A, but the server process is on Node B

Example :

 

sqlplus scott/tiger@rac
SQL*Plus: Release 11.1.0.6.0 - Production on Wed Nov 5 09:55:47 2008
Copyright (c) 1982, 2007, Oracle.  All rights reserved.

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

SQL> select instance_name from v$instance;

INSTANCE_NAME
----------------
rac11g1 

Rac service name is setup thus :

RAC = 
 (DESCRIPTION = 
   (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521)) 
     (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521)) 
   ) 
   (CONNECT_DATA = 
     (SERVICE_NAME = rac11g) 
     (failover_mode = 
       (type = select) 
       (method = basic) 
     ) 
   ) 
 )

Then to get the rac1-vip to relocate to other node, on node A we run crsctl stop crs command.

$ crsctl stop crs
Stopping resources.
This could take several minutes.
Successfully stopped Oracle Clusterware resources
Stopping Cluster Synchronization Services.
Shutting down the Cluster Synchronization Services daemon.
Shutdown request successfully issued.

Confirmed rac1-vip from Node A is now on Node B with command crs_stat -t | grep vip

$ crs_stat -t  |  grep vip  
ora.rac1-vip application    ONLINE    ONLINE    NodeA  
ora.rac2-vip application    ONLINE    ONLINE    NodeB  

$ crs_stat -t  |  grep vip 
ora.rac1-vip application    ONLINE    OFFLINE 
ora.rac2-vip application    ONLINE    ONLINE    NodeB  
 
$ crs_stat -t  |  grep vip 
ora.rac1-vip application    ONLINE    ONLINE    NodeB 
ora.rac2-vip application    ONLINE    ONLINE    NodeB 

Connection failed over 

SQL> / 

INSTANCE_NAME 
---------------- 
rac11g2 

Restart the crs services on Node A

$ crsctl start crs
Attempting to start Oracle Clusterware stack
The CRS stack will be started shortly

And run command and session fails

SQL> / 
select instance_name from v$instance 

ERROR at line 1: 
ORA-03135: connection lost contact 
Process ID: 12910 
Session ID: 0 Serial number: 0

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms