What is Oracle Flex ASM?
Oracle Flex ASM is an ASM instance which will be running in the cluster based on cardinality defined. The default cardinality is three, but you can change it using srvctl modify asm command. It means that ASM is not required to run on each node in the cluster.
In the previous release, ASM will be running on each node in the cluster and ASM clients (Database, ACFS, ADVM) can only access ASM by using an ASM on the same host.
With Oracle Flex ASM, the clients can connect to remote ASM using network connection (ie ASM network ). If a server running an ASM instance fails, Oracle Clusterware will start a new ASM instance on a different server to maintain the cardinality. If a 12c database instance is using a particular ASM instance, and that instance is lost because of a server crash or ASM instance failure, then the Oracle 12c database instance will reconnect to an existing ASM instance on another node. These features are collectively called Oracle Flex ASM.
What is Oracle ASM Proxy Instance?
Oracle ASM proxy instance will be configured to support the ACFS/ADVM.In a flex ASM, an Oracle ASM proxy instance can run on the same node as ASM instance or on a different node.
below picture shows ACFS/ADVM on node 2 talks to Oracle ASM proxy on the same node, which connects to Oracle ASM instance on remote node 1.
What is the difference between Oracle Flex Cluster vs Oracle Flex ASM?
Oracle Flex Cluster is a cluster node with Hub and leaf node configuration. only Hub nodes have direct access to OCR and Voting disk.leaf node does not have direct access to shared storage.
Flex Cluster require Flex ASM. Flex ASM does not require a Flex Cluster.
In Flex cluster node, the Flex ASM can run on the Hub nodes servicing clients across the Hub nodes of the Flex Cluster.
The default Oracle Flex Cluster is disabled, users explicitly enable Flex Cluster functionality.
What is ASM Network and ASM listener?
In versions previous to12c, the Oracle Clusterware required a public network for client access and a private network for inter-node communication including ASM inter-node communication in the cluster.
In Flex ASM, ASM network provides the capability to isolate ASM’s internal network traffic to its own dedicated private network. The OUI presents the DBA with the choice as to whether a dedicated network is to be used for ASM. The ASM network is the communication path in which all the traffic between database instances and ASM instances commence. This traffic is mostly the metadata such as a particular file’s extent map. If the customer chooses, the ASM private network can be dedicated for ASM traffic or shared with CSS and a dedicated network is not required.
There will be local ASM listener runs on each node where the flex ASM instance is running.ASM clients connect to Flex ASM over the ASM network by using highly available connection endpoints supplied by up to three ASM listeners. Connections are load balanced across the ASM cluster.
How to implement Flex ASM feature?
The flex ASM can be implemented in the below ways
- Pure 12c Flex ASM – In this mode the Grid Infrastructure and Database are both running the 12c version. In this model, the database fully leverages all the new 12c features
- Pre 12c Mixed – This mode the ASM will run on each node with Flex configuration to support pre 12c database .To achive this, set the the ASM cardinality to “all” which insures that there is an ASM instance on every server in a cluster. The advantage of this approach is that if an Oracle 12c database instance loses connectivity with an ASM instance, then the database connection will failover to another ASM instance on a different server.
How to check Oracle Flex ASM has setup?
ASMCMD> showclustermode ASM cluster : Flex mode enabled
ASMCMD> showclusterstate Normal
How to change the cardinality of the ASM to be up in the cluster?
[root@ol6r02 bin]# ./srvctl modify asm -count 4 [root@ol6r02 bin]# ./srvctl config asm ASM home: /u01/app/12.1.0/grid Password file: +DATA/orapwASM ASM listener: LISTENER ASM instance count: 4 Cluster ASM listener: ASMNET1LSNR_ASM
How to relocate Database client to different ASM?
Clients are automatically relocated to another instance if an ASM instance fails and the connection is load balanced to an available instance. Clients can be manually relocated using the “ALTER SYSTEM RELOCATE CLIENT” command. The command syntax is:
SQL> ALTER SYSTEM RELOCATE CLIENT '[instance_name]:[db_name]';
Query GV$ASM_CLIENT to determine instance_name and db_name.
How to check ASM instances running nodes?
$ srvctl status asm -detail ASM is running on ol6r01,ol6r02 ASM is enabled
How to convert Non-Flex ASM to Flex ASM?
The standard ASM cluster can be converted to Flex ASM using ASMCA GUI or silent mode.
$ asmca -silent -convertToFlexASM -asmNetworks eth1/10.154.138.0 -asmListenerPort 1521 To complete ASM conversion, run the following script as privileged user in local node. /u01/app/oracle/cfgtoollogs/asmca/scripts/converttoFlexASM.sh
/u01/app/oracle/cfgtoollogs/asmca/scripts/converttoFlexASM.sh CRS-2673: Attempting to stop 'ora.crsd' on 'ol6r01' CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'ol6r01' CRS-2673: Attempting to stop 'ora.LISTENER_SCAN2.lsnr' on 'ol6r01' CRS-2673: Attempting to stop 'ora.LISTENER_SCAN3.lsnr' on 'ol6r01' CRS-2673: Attempting to stop 'ora.DATA.dg' on 'ol6r01' CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'ol6r01' CRS-2673: Attempting to stop 'ora.cvu' on 'ol6r01' CRS-2677: Stop of 'ora.LISTENER_SCAN2.lsnr' on 'ol6r01' succeeded CRS-2673: Attempting to stop 'ora.scan2.vip' on 'ol6r01' CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'ol6r01' succeeded CRS-2673: Attempting to stop 'ora.ol6r01.vip' on 'ol6r01' CRS-2677: Stop of 'ora.LISTENER_SCAN3.lsnr' on 'ol6r01' succeeded CRS-2673: Attempting to stop 'ora.scan3.vip' on 'ol6r01' CRS-2677: Stop of 'ora.cvu' on 'ol6r01' succeeded CRS-2672: Attempting to start 'ora.cvu' on 'ol6r02' CRS-2676: Start of 'ora.cvu' on 'ol6r02' succeeded CRS-2677: Stop of 'ora.scan2.vip' on 'ol6r01' succeeded CRS-2672: Attempting to start 'ora.scan2.vip' on 'ol6r02' CRS-2677: Stop of 'ora.scan3.vip' on 'ol6r01' succeeded CRS-2672: Attempting to start 'ora.scan3.vip' on 'ol6r02' CRS-2676: Start of 'ora.scan2.vip' on 'ol6r02' succeeded CRS-2672: Attempting to start 'ora.LISTENER_SCAN2.lsnr' on 'ol6r02' CRS-2677: Stop of 'ora.ol6r01.vip' on 'ol6r01' succeeded CRS-2672: Attempting to start 'ora.ol6r01.vip' on 'ol6r02' CRS-2676: Start of 'ora.scan3.vip' on 'ol6r02' succeeded CRS-2672: Attempting to start 'ora.LISTENER_SCAN3.lsnr' on 'ol6r02' CRS-2676: Start of 'ora.ol6r01.vip' on 'ol6r02' succeeded CRS-2672: Attempting to start 'ora.storage' on 'ol6r02' CRS-2676: Start of 'ora.storage' on 'ol6r02' succeeded + echo 'Cluster bounced in node ol6r02' Cluster bounced in node ol6r02
ASMCMD> showclustermode ASM cluster : Flex mode enabled ASMCMD> showclusterstate Normal