Re: Question re IP address mapping in a RAC environment

From: K Gopalakrishnan <>
Date: Fri, 22 Feb 2008 13:45:07 -0600
Message-ID: <>


Quoting from my 'Oracle Database 10g RAC Handbook'...Hope this is what you are looking...

Virtual IP is required to ensure that applications can be designed to be highly available. To design this, system needs to eliminate single point of failures. In oracle we need to ensure that clients connected to a RAC database, survives a node failure. Client applications connect to the oracle instance and access the database through the instance. So a node failure will bring down the instance to which the client might have connected.

The first design available from Oracle was Transparent Application Failover (TAF). With TAF a session can failover to the surviving instances and continue processing. Various limitations existed with TAF; only query failover is supported. Also to achieve less latency in failing over to the surviving node, we had to tweak the tcp timeout (platform dependent, defaults to 10 minutes in most UNIX ports). It wouldn't be a good idea to design a system where a client takes 10 mins to detect that there is no response from the node to which it has connected.
To address this, 10g introduced a new feature called cluster virtual IPs (VIPs). VIP is cluster virtual IP address, which would be used by outside world to connect to the database and this IP address needs to be different from the set of IP addresses, within the cluster. Traditionally listeners would be listening on the public IP of the box. and clients would contact the listener on this IP. If the node dies, then the client would take the tcp timeout value to detect the death of the node. In 10g each node of the cluster has a VIP configured in the same subnet of the public IP. Virtual IP name and addresses must be registered in the DNS in addition to the standard static IP information. Listeners would be configured to listen on VIPs instead of the public IP.

When a node is down, the VIP is automatically failed over to the one of the other nodes. During the failover, the node, which gets the VIP, will re-arp to the world indicating the new MAC address of the VIP. Clients who have connected to this VIP will immediately get a reset packet sent. This results in clients getting errors immediately rather than waiting for the tcp timeout value. When one node goes down in cluster and client is connecting to same node, in this case client connection will be refused by down node and client application will chose next available node from tns descriptor list to get connection. Applications need to be written such that they catch the reset errors and handle them. Typically for queries, they should see ORA-3113 error.

In computer networking the Address Resolution Protocol (ARP) is the method of finding the host's hardware address (MAC address) when only IP address is known. ARP is used by the hosts when they want to communicate each other in the same network. It also used by routers to forward a packet from one host through another router. In cluster Virtual IP failovers, the new node which gets the VIP advertises the new ARP Address to the world. This is typically known as gracious-arp and during this operation, the old hardware address is invalidated in the ARP cache and all the new connections will get the new hardware address.

On Fri, Feb 22, 2008 at 10:19 AM, William Wagman <> wrote:
> Finn,
> I believe that is in fact what it is. I am just looking for a discussion or
> documentation on the architecture of this process. I sort of understand how
> it works but I'm not sure and am looking for an explanation.
> Thanks.
> Bill Wagman
> Univ. of California at Davis
> IET Campus Data Center
> (530) 754-6208
> ________________________________
> From: []
> On Behalf Of Finn Jorgensen
> Sent: Thursday, February 21, 2008 5:28 PM
> To: William Wagman
> Cc:
> Subject: Re: Question re IP address mapping in a RAC environment
> Wouldn't that be the VIP of node 2 that's migrated to node 1?
> Finn

Best Regards,
K Gopalakrishnan
Co-Author: Oracle Wait Interface, Oracle Press 2004

Author: Oracle Database 10g RAC Handbook, Oracle Press 2006
Received on Fri Feb 22 2008 - 13:45:07 CST

Original text of this message