Oracle Real Application Cluster (RAC) is a well-known product among Oracle’s solutions to maintain high availability of your business data. Oracle RAC allows the work load to be shared among all the cluster nodes, with N-1 tolerance configuration in case of node failures, where N is the total number of nodes. Oracle RAC is constantly improving on every version and this time was not different. The new version incorporates two properties called “Flex ASM” and “Flex Cluster” that gives support to the demand requirements on Cloud Computing oriented environments.

Oracle RAC 12c introduces two new concepts:

Hub Nodes: They are connected among them via private network and have direct access to the shared storage just like previous versions. These nodes are the ones that access the Oracle Cluster Registry (OCR) and Voiting Disk (VD) directly.

Leaf Nodes: These nodes are lighter and are not connected among them, neither access the shared storage like the Hub Nodes. Each Leaf Node communicates with the Hub Node that is attached to, and its connected to the cluster via the Hub Node that is linked to.

This topology allows loosely coupled application servers to form a cluster with tightly coupled database servers. Tightly coupled servers are Hub Servers that share storage for database, OCR and Voting devices as well as peer-to-peer communication with other Hub Servers in the cluster. A loosely coupled server is a Leaf Server that has a loose communication association with a single Hub Server in the cluster and does not require shared storage nor peer-to-peer communication with other Hub or Leaf Servers in the cluster, except to communicate with the Hub to which it is associated. In, Leaf Servers are designed for greater application high availability and multi-tier resource management.

Prior to Oracle 12c, for a database instance to use ASM it is expected that the ASM instance must be up and running on all nodes before the database instance is brought up. Failure of ASM instance to come-up means that database instance using ASM at the storage level cannot be brought up. This literally means that the database instance is not accessible immaterial of the technologies put in use i.e. RAC, ASM and Shared Storage.

With the launch of Oracle 12c the above constraint has been addressed with the feature called Oracle Flex ASM which primarily has a feature to fail over to another node in the cluster. Essentially a Hub and Leaf architecture, the connection of a failed node is seamlessly transferred to another participating node by way of a replacement ASM instance by Oracle Clusterware. The number of ASM instances running in a given cluster is called ASM carnality with a default value of 3. However the carnality value can be amended using the Clusterware command.

Implementation aspects of Oracle Flex ASM

The Oracle Flex ASM can be implemented in two ways:

  • Pure 12c Flex ASM (Same Version)
    • Both Grid Infrasctructure (GI) and Database running on Oracle 12c
  • Pre Oracle 12c Mixed (Different Versions)
    • As normal ASM instance will run on each node with Flex configuration to support pre 12c database. The compatibility parameter of ASM disk group is used to manage the compatibility of between and among database instances. Advantage of this approach is that if an Oracle 12c database instance loses connectivity with an ASM instance, then the database connections will failover to another ASM instance on a different server. This failover is achieved by setting the carnality to all.

Converting Standard Cluster to Flex Cluster

  1. Main requirement for flex cluster requires GNS. If a GNS doesn’t exists setup GNS and add the GNS VIP to cluster.
[root@india2 bin]# ./srvctl status gns

GNS is not running.

GNS is enabled.

[root@india2 ~]# cd /u01/12.2.2/grid/bin

[root@india2 bin]# ./srvctl add gns -i -d

[root@india2 bin]# ./srvctl start gns

[root@india2 bin]# ./srvctl status gns

GNS is running on node india1.

GNS is enabled on node india1.

[root@india2 bin]# ./srvctl config gns -a -l

GNS is enabled.

GNS is listening for DNS server requests on port 53

GNS is using port 5353 to connect to mDNS

GNS status: OK

Domain served by GNS:

GNS version:

Globally unique identifier of the cluster where GNS is running: 30dc35e9c650df8cbfd525ea7fdafaf8

Name of the cluster where GNS is running: india-cluster

Cluster type: server.

GNS log level: 1.

GNS listening addresses: tcp://

GNS is individually enabled on nodes:

GNS is individually disabled on nodes:

[root@india2 bin]#

[root@india1 bin]# ./srvctl config gns

GNS is enabled.

GNS VIP addresses:

Domain served by GNS:
Verify the GNS configuration through cluvfy utility .
[oracle@india1 ~]$ cd /u01/12.2.2/grid/bin

[oracle@india1 bin]$ ./cluvfy comp gns -postcrsinst

Verifying GNS integrity

Checking GNS integrity...

The GNS subdomain name "" is a valid domain name

Checking if the GNS VIP belongs to same subnet as the public network...

Public network subnets "" match the GNS VIP ""

GNS VIP "" resolves to a valid IP address

GNS resource configuration check passed

GNS VIP resource configuration check passed.

GNS integrity check passed

Verification of GNS integrity was successful.

[oracle@india1 bin]$

2. Now convert the standard cluster mode to flex. This requires a cluster downtime.To change the cluster mode to flex as root run the following .

[root@india1 bin]# ./crsctl get cluster mode status

Cluster is running in "standard" mode

[root@india1 bin]# ./crsctl set cluster mode flex

CRS-4933: Cluster mode set to "flex"; restart Oracle High Availability Services on all nodes for cluster to run in "flex" mode.

[root@india1 bin]# ./crsctl stop crs

[root@india1 bin]# ./crsctl start crs

[root@india1 bin]# ./crsctl get cluster mode status

Cluster is running in "flex" mode

[root@india1 bin]# ./crsctl get node role config

Node 'india1' configured role is 'hub'

[root@india1 bin]#

Repeat the above steps to all other nodes

Hope you like this article. In next article we will do conversion of Hub Node to Leaf Node in Flex Cluster.

About The Author

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.