Converting standard cluster to flex cluster :-

The steps for converting a standard cluster to a flex cluster. There are two phases to converting a standard cluster to flex cluster. First phase involvesconverting Oracle ASM to Flex ASMand second phase is tochange the cluster mode to flex.

1)Current setup is a two node standard cluster .

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

Cluster is running in "standard" mode

$ asmcmd

ASMCMD> showclustermode

ASM cluster : Flex mode disabled

2)There are few per-requisites to converting ASM to flex ASM, these include that OCR, SPFile and password file all stored in a disk group and this group have ASM compatibility (COMPATIBLE.ASM) set to 12.1 or higher. If this is not the case then make the necessary changes to move these files to disk group.

[oracle@india1 dbs]$ sqlplus "/ as sysasm"

SQL*Plus: Release 12.1.0.2.0 Production on Sun Dec 18 16:11:50 2016

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

Connected to:

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

With the Real Application Clusters and Automatic Storage Management options

SQL> alter diskgroup DATA set attribute 'compatible.asm'='12.1.0.0.0';

Diskgroup altered.

[oracle@india1 dbs]$ orapwd file=+DATA password=oracle entries=10 asm=y

[oracle@india1 dbs]$ cd ..

[oracle@india1 grid]$ cd bin

[oracle@india1 bin]$ ./srvctlconfigasm

ASM home: <CRS home>

Password file: +DATA/ASM/PASSWORD/pwdasm.273.930931931

ASM listener: LISTENER

[oracle@india1 bin]$

3)Another key requirement is that flex cluster requires GNS. If a GNS doesn't existssetup GNSand 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 172.17.1.106 -d indiagns.sairam.com

[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 configgns -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: indiagns.sairam.com

GNS version: 12.1.0.2.0

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://172.17.1.106:23552.

GNS is individually enabled on nodes:

GNS is individually disabled on nodes:

[root@india2 bin]#

[root@india1 bin]# ./srvctlconfiggns

GNS is enabled.

GNS VIP addresses: 172.17.1.106

Domain served by GNS: indiagns.sairam.com

Verify the GNS configuration through cluvfyutility .

[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 "indiagns.sairam.com" is a valid domain name

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

Public network subnets "172.17.1.0" match the GNS VIP "172.17.1.106"

GNS VIP "172.17.1.106" 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]$

4)To start the first phase of converting to flex ASM run asmca and click on ASM instances tab. If role separation is used then make sure grid user has write permission for directory $ORACLE_BASE/cfgtoollogs as the conversion script is generated inside it.

Click convert to Flex ASM button. This would prompt to select a network interface for ASM communication and also to specify a port. The default port is 2222.

Conversion to flex ASM will continue restarting one node at time.

Conversion to flex ASM will continue restarting one node at time.

When prompted execute the script on the same node ASMCA was run.

Output from converttoFlexASM.sh execution :

[root@india1 ~]# /u01/app/oracle/cfgtoollogs/asmca/scripts/converttoFlexASM.sh

CRS-2673: Attempting to stop 'ora.crsd' on 'india1'

CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'india1'

CRS-2673: Attempting to stop 'ora.gns' on 'india1'

CRS-2673: Attempting to stop 'ora.DATA.dg' on 'india1'

CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'india1'

CRS-2673: Attempting to stop 'ora.OCRVOTE.dg' on 'india1'

CRS-2677: Stop of 'ora.DATA.dg' on 'india1' succeeded

CRS-2677: Stop of 'ora.OCRVOTE.dg' on 'india1' succeeded

CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'india1' succeeded

CRS-2673: Attempting to stop 'ora.india1.vip' on 'india1'

CRS-2677: Stop of 'ora.india1.vip' on 'india1' succeeded

CRS-2672: Attempting to start 'ora.india1.vip' on 'india2'

CRS-2677: Stop of 'ora.gns' on 'india1' succeeded

CRS-2673: Attempting to stop 'ora.gns.vip' on 'india1'

CRS-2676: Start of 'ora.india1.vip' on 'india2' succeeded

CRS-2677: Stop of 'ora.gns.vip' on 'india1' succeeded

CRS-2672: Attempting to start 'ora.gns.vip' on 'india2'

CRS-2676: Start of 'ora.gns.vip' on 'india2' succeeded

CRS-2672: Attempting to start 'ora.gns' on 'india2'

CRS-2676: Start of 'ora.gns' on 'india2' succeeded

CRS-2673: Attempting to stop 'ora.ons' on 'india1'

CRS-2677: Stop of 'ora.ons' on 'india1' succeeded

CRS-2673: Attempting to stop 'ora.net1.network' on 'india1'

CRS-2677: Stop of 'ora.net1.network' on 'india1' succeeded

CRS-2792: Shutdown of Cluster Ready Services-managed resources on 'india1' has completed

CRS-2677: Stop of 'ora.crsd' on 'india1' succeeded

CRS-2673: Attempting to stop 'ora.ctssd' on 'india1'

CRS-2673: Attempting to stop 'ora.evmd' on 'india1'

CRS-2673: Attempting to stop 'ora.storage' on 'india1'

CRS-2677: Stop of 'ora.storage' on 'india1' succeeded

CRS-2673: Attempting to stop 'ora.asm' on 'india1'

CRS-2677: Stop of 'ora.ctssd' on 'india1' succeeded

CRS-2677: Stop of 'ora.evmd' on 'india1' succeeded

CRS-2677: Stop of 'ora.asm' on 'india1' succeeded

CRS-2673: Attempting to stop 'ora.cluster_interconnect.haip' on 'india1'

CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'india1' succeeded

CRS-2673: Attempting to stop 'ora.cssd' on 'india1'

CRS-2677: Stop of 'ora.cssd' on 'india1' succeeded

CRS-2672: Attempting to start 'ora.evmd' on 'india1'

CRS-2672: Attempting to start 'ora.cssdmonitor' on 'india1'

CRS-2676: Start of 'ora.cssdmonitor' on 'india1' succeeded

CRS-2672: Attempting to start 'ora.cssd' on 'india1'

CRS-2672: Attempting to start 'ora.diskmon' on 'india1'

CRS-2676: Start of 'ora.diskmon' on 'india1' succeeded

CRS-2676: Start of 'ora.evmd' on 'india1' succeeded

CRS-2676: Start of 'ora.cssd' on 'india1' succeeded

CRS-2672: Attempting to start 'ora.ctssd' on 'india1'

CRS-2672: Attempting to start 'ora.cluster_interconnect.haip' on 'india1'

CRS-2676: Start of 'ora.ctssd' on 'india1' succeeded

CRS-2676: Start of 'ora.cluster_interconnect.haip' on 'india1' succeeded

CRS-2672: Attempting to start 'ora.asm' on 'india1'

CRS-2676: Start of 'ora.asm' on 'india1' succeeded

CRS-2672: Attempting to start 'ora.storage' on 'india1'

CRS-2676: Start of 'ora.storage' on 'india1' succeeded

CRS-2672: Attempting to start 'ora.crsd' on 'india1'

CRS-2676: Start of 'ora.crsd' on 'india1' succeeded

Oracle Grid Infrastructure restarted in node india1

PRCC-1014 : ASMNET1LSNR_ASM was already running

PRCR-1004 : Resource ora.ASMNET1LSNR_ASM.lsnr is already running

PRCR-1079 : Failed to start resource ora.ASMNET1LSNR_ASM.lsnr

CRS-5702: Resource 'ora.ASMNET1LSNR_ASM.lsnr' is already running on 'india1'

ASM listener ASMNET1LSNR_ASM running already

CRS-2673: Attempting to stop 'ora.crsd' on 'india2'

CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'india2'

CRS-2673: Attempting to stop 'ora.cvu' on 'india2'

CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'india2'

CRS-2673: Attempting to stop 'ora.LISTENER_SCAN1.lsnr' on 'india2'

CRS-2673: Attempting to stop 'ora.ASMNET1LSNR_ASM.lsnr' on 'india2'

CRS-2673: Attempting to stop 'ora.OCRVOTE.dg' on 'india2'

CRS-2673: Attempting to stop 'ora.orcl.db' on 'india2'

CRS-2673: Attempting to stop 'ora.mgmtdb' on 'india2'

CRS-2673: Attempting to stop 'ora.oc4j' on 'india2'

CRS-2677: Stop of 'ora.cvu' on 'india2' succeeded

CRS-2672: Attempting to start 'ora.cvu' on 'india1'

CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'india2' succeeded

CRS-2673: Attempting to stop 'ora.india2.vip' on 'india2'

CRS-2677: Stop of 'ora.LISTENER_SCAN1.lsnr' on 'india2' succeeded

CRS-2673: Attempting to stop 'ora.scan1.vip' on 'india2'

CRS-2677: Stop of 'ora.ASMNET1LSNR_ASM.lsnr' on 'india2' succeeded

CRS-2677: Stop of 'ora.OCRVOTE.dg' on 'india2' succeeded

CRS-2677: Stop of 'ora.orcl.db' on 'india2' succeeded

CRS-2676: Start of 'ora.cvu' on 'india1' succeeded

CRS-2677: Stop of 'ora.india2.vip' on 'india2' succeeded

CRS-2672: Attempting to start 'ora.india2.vip' on 'india1'

CRS-2677: Stop of 'ora.scan1.vip' on 'india2' succeeded

CRS-2672: Attempting to start 'ora.scan1.vip' on 'india1'

CRS-2677: Stop of 'ora.mgmtdb' on 'india2' succeeded

CRS-2673: Attempting to stop 'ora.MGMTLSNR' on 'india2'

CRS-2677: Stop of 'ora.MGMTLSNR' on 'india2' succeeded

CRS-2672: Attempting to start 'ora.MGMTLSNR' on 'india1'

CRS-2676: Start of 'ora.india2.vip' on 'india1' succeeded

CRS-2673: Attempting to stop 'ora.gns' on 'india2'

CRS-2673: Attempting to stop 'ora.DATA.dg' on 'india2'

CRS-2677: Stop of 'ora.DATA.dg' on 'india2' succeeded

CRS-2676: Start of 'ora.scan1.vip' on 'india1' succeeded

CRS-2672: Attempting to start 'ora.LISTENER_SCAN1.lsnr' on 'india1'

CRS-2677: Stop of 'ora.gns' on 'india2' succeeded

CRS-2673: Attempting to stop 'ora.gns.vip' on 'india2'

CRS-2677: Stop of 'ora.oc4j' on 'india2' succeeded

CRS-2672: Attempting to start 'ora.oc4j' on 'india1'

CRS-2676: Start of 'ora.MGMTLSNR' on 'india1' succeeded

CRS-2672: Attempting to start 'ora.mgmtdb' on 'india1'

CRS-2677: Stop of 'ora.gns.vip' on 'india2' succeeded

CRS-2672: Attempting to start 'ora.gns.vip' on 'india1'

CRS-2676: Start of 'ora.LISTENER_SCAN1.lsnr' on 'india1' succeeded

CRS-2676: Start of 'ora.gns.vip' on 'india1' succeeded

CRS-2672: Attempting to start 'ora.gns' on 'india1'

CRS-2676: Start of 'ora.gns' on 'india1' succeeded

CRS-2676: Start of 'ora.oc4j' on 'india1' succeeded

CRS-2676: Start of 'ora.mgmtdb' on 'india1' succeeded

CRS-2673: Attempting to stop 'ora.ons' on 'india2'

CRS-2677: Stop of 'ora.ons' on 'india2' succeeded

CRS-2673: Attempting to stop 'ora.net1.network' on 'india2'

CRS-2677: Stop of 'ora.net1.network' on 'india2' succeeded

CRS-2792: Shutdown of Cluster Ready Services-managed resources on 'india2' has completed

CRS-2677: Stop of 'ora.crsd' on 'india2' succeeded

CRS-2673: Attempting to stop 'ora.ctssd' on 'india2'

CRS-2673: Attempting to stop 'ora.evmd' on 'india2'

CRS-2673: Attempting to stop 'ora.storage' on 'india2'

CRS-2677: Stop of 'ora.storage' on 'india2' succeeded

CRS-2673: Attempting to stop 'ora.asm' on 'india2'

CRS-2677: Stop of 'ora.ctssd' on 'india2' succeeded

CRS-2677: Stop of 'ora.evmd' on 'india2' succeeded

CRS-2677: Stop of 'ora.asm' on 'india2' succeeded

CRS-2673: Attempting to stop 'ora.cluster_interconnect.haip' on 'india2'

CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'india2' succeeded

CRS-2673: Attempting to stop 'ora.cssd' on 'india2'

CRS-2677: Stop of 'ora.cssd' on 'india2' succeeded

CRS-2672: Attempting to start 'ora.evmd' on 'india2'

CRS-2672: Attempting to start 'ora.cssdmonitor' on 'india2'

CRS-2676: Start of 'ora.cssdmonitor' on 'india2' succeeded

CRS-2672: Attempting to start 'ora.cssd' on 'india2'

CRS-2672: Attempting to start 'ora.diskmon' on 'india2'

CRS-2676: Start of 'ora.diskmon' on 'india2' succeeded

CRS-2676: Start of 'ora.evmd' on 'india2' succeeded

CRS-2676: Start of 'ora.cssd' on 'india2' succeeded

CRS-2672: Attempting to start 'ora.ctssd' on 'india2'

CRS-2672: Attempting to start 'ora.cluster_interconnect.haip' on 'india2'

CRS-2676: Start of 'ora.ctssd' on 'india2' succeeded

CRS-2676: Start of 'ora.cluster_interconnect.haip' on 'india2' succeeded

CRS-2672: Attempting to start 'ora.asm' on 'india2'

CRS-2676: Start of 'ora.asm' on 'india2' succeeded

CRS-2672: Attempting to start 'ora.storage' on 'india2'

CRS-2676: Start of 'ora.storage' on 'india2' succeeded

CRS-2672: Attempting to start 'ora.crsd' on 'india2'

CRS-2676: Start of 'ora.crsd' on 'india2' succeeded

Oracle Grid Infrastructure restarted in node india2

[root@india1 ~]#

End of the conversion the ASMCA will exit and console will have following output

[oracle@india1 bin]$ ./asmca

Unable to establish connection to ASM instance.

ORA-01034: ORACLE not available

ASMCA will exit now.

[oracle@india1 bin]$

This due to the restart of ASM and ASMCA unable to establish the connection. Rerun ASMCA and verify ASM instances are up an running. Notice the convert to flex ASM button is not there anymore.

verify the ASM flex mode with asmcmd

$ asmcmd

ASMCMD> showclustermode

ASM cluster : Flex mode enabled

The second phase is to 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]#