Flex ASM

02.
März
2015

Eines der neuen Schlagworte bei Einführung der Grid Infrastructure 12c ist neben Flex Cluster die Flex ASM-Architektur.

Eines der neuen Schlagworte bei Einführung der Grid Infrastructure 12c ist neben Flex Cluster die Flex ASM-Architektur. Der vorliegende Monatstipp hat das Ziel, einige Aspekte dieser Architektur näher zu erläutern. 12 Fragen und Antworten auf Basis Grid Infrastructure Version 12.1.0.2.

Was ist Oracle Flex ASM?

Mit Oracle Flex ASM kann die Anzahl der ASM-Instanzen in einer Cluster-Konfiguration reduziert werden. Auf einem Cluster-Knoten muss nicht mehr notwendigerweise eine ASM-Instanz laufen – die 1:1-Zuordnung zwischen Server und ASM-Instanz wird aufgehoben. Die von Oracle vorgeschlagene Anzahl von ASM-Instanzen bei einem Mehrknoten-Cluster ist 3 – minimal können 2 ASM-Instanzen konfiguriert sein. Für die Kommunikation von Client und ASM-Instanz existiert mit der Grid Infrastructure 12c ein dediziertes ASM- bzw. ein Private/ASM-Netzwerk. Hinzu kommt pro Clusterknoten noch ein ASM-Listener Clusterservice.

Was sind die Vorteile dieser Architektur?

Neben der Reduzierung der nun nicht mehr nötigen ASM-Hintergrundprozesse ist vor allem die höhere Verfügbarkeit von ASM ein Vorteil. Ein Ausfall einer lokalen Instanz trägt nicht mehr zum Abbruch aller angemeldeten Datenbank-Clients bei. Die Verbindungen zu ASM schwenken automatisch auf eine andere ASM-Instanz um.

Im Falle des Ausfalls einer ASM-Instanz auf einem anderen Server erfolgt ein Failover auf eine noch funktionierende Instanz. Die angegebene Anzahl von ASM-Instanzen (Kardinalität s. u.) innerhalb eines Clusters wird eingehalten, indem auf anderen Knoten weitere ASM-Instanzen gestartet werden.

Ab wie vielen Knoten eines Clusters ist Flex ASM sinnvoll?

Grundsätzlich ist Flex ASM ab einem 4-Knoten-Cluster sinnvoll, die o. g. Vorteile können aber schon bei einem 3-Knoten-Cluster genutzt werden.

Wie installiere ich Flex ASM?

Während der Installation von Grid Infrastructure 12.1.0.2  kann bei den Informationen zu Speicheroptionen „Oracle Flex ASM zur Speicherung verwenden“ ausgewählt werden.

Kann Flex ASM nachträglich noch aktiviert werden?

 Ja, z. B. mit asmca (ASM Configuration Assistant) im Silent-Modus:

[grid@server01:~]> asmca –silent –convertToFlexASM
                      -asmNetworks eth1/10.100.90.0
                      -asmListenerPort 1521
To complete ASM conversion, run the following script as privileged user in local node.
[root@server01 ~]# /…../cfgtoollogs/asmca/scripts/converttoFlexASM.sh

Kann ich Flex ASM auch bei einem Mix aus 11g- und 12c-Datenbanken verwenden?

Ja, bei einem Mix aus 11g- und 12c-Datenbanken können zumindest die 12c-Instanzen von der Failover-Möglichkeit profitieren.

Können ASM Services auch von Leaf Knoten im Flex Cluster Modell aufgerufen werden?

Mit Einführung der Grid Infrastructure 12c können im Rahmen des Flex Cluster Modells Hub-Knoten und sogenannte Leaf-Knoten existieren.

Im Clusterware und Deployment Guide steht hierzu folgendes: 

"Leaf Nodes are different from standard Oracle Grid Infrastructure nodes, in that they do not require direct access to shared storage, but instead request data through Hub Nodes. Hub Nodes can run in an Oracle Flex Cluster configuration without having any Leaf Nodes as cluster member nodes, but Leaf Nodes must be members of a cluster that includes at least one Hub Node."

Die Aussage ist sehr mißverständlich, so dass in der RAC 12c-Literatur schon behauptet wurde, man könnte eine Datenbank-Instanz auf einem Leaf-Knoten implementieren, die via ASM-Netzwerk wie bei einem Hub-Knoten die File Extent Maps von einer ASM-Instanz auf einem Hub Knoten bekommt. Das ist nicht möglich.

Die ASM-Tools sind aufrufbar, aber letzten Endes sind keine Anwendungen in Verbindung mit ASM oder ACFS (ASM Cluster File System) möglich.

Bei Verwendung des Flex Cluster-Modells muss Flex ASM verwendet werden.

Wie stelle ich fest, ob Flex ASM konfiguriert ist?

[grid@server01:~]>asmcmd showclustermode
ASM cluster : Flex mode enabled                                                                                                                             
[grid@server01:~]>srvctl config asm -detail
ASM home: <CRS home>
Password file: +OCRVOTE/orapwASM
ASM listener: LISTENER
ASM is enabled.
ASM is individually enabled on nodes:
ASM is individually disabled on nodes:
ASM instance count: 2
Cluster ASM listener: ASMNET1LSNR_ASM                                                                                                                       
[grid@server01:~]>crsctl status res -t -w "NAME co ASM"
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr
               ONLINE  ONLINE       server01              STABLE
               ONLINE  ONLINE       server02              STABLE
               ONLINE  ONLINE       server03              STABLE                                                                                         
[grid@server01:~]>srvctl status asm
ASM is running on server03,server02

Wie erkenne ich, auf welchem Knoten die ASM-Verbindung umgezogen ist?

Auszug Alert.log Datenbank

NOTE: ASMB registering with ASM instance as Flex client 0xffffffffffffffff (reg:3507812436) (new connection)
NOTE: Loaded library: /opt/oracle/extapi/64/asm/orcl/1/libasm.so
NOTE: ASMB connected to ASM instance +ASM3 osid: 7535 (Flex mode; client id 0x1000b)

Erfolgt der Schwenk unterbrechungsfrei?

Ja, die Datenbank-Instanz benötigt die ASM-Instanz nur in der Mount- und Open-Phase zum Einlesen der Datenfile-Extent-Maps, ansonsten kommunizieren die Datenbank-Prozesse direkt mit dem Storage.

Kann ich manuell auf eine andere Instanz umschwenken?

Anmeldung an ASM-Instanz

[grid@server01:~]>sqlplus / as sysasm

SYS@+ASM1> select instance_name,db_name,status from v$asm_client;
INSTANCE_NAME                           DB_NAME  STATUS
--------------------------------------- -------- ------------
+ASM1                                   +ASM     CONNECTED
rac1db_1                                rac1db   CONNECTED
rac1db_1                                rac1db   CONNECTED
rac2db_1                                rac2db   CONNECTED
rac2db_1                                rac2db   CONNECTED
-MGMTDB                                 _mgmtdb  CONNECTED

SYS@+ASM1> alter system relocate client 'rac2db_1:rac2db';

SYS@+ASM1> select instance_name,db_name,status from v$asm_client;
INSTANCE_NAME                           DB_NAME  STATUS
--------------------------------------- -------- ------------
+ASM1                                   +ASM     CONNECTED
rac1db_1                                rac1db   CONNECTED
rac1db_1                                rac1db   CONNECTED
-MGMTDB                                 _mgmtdb  CONNECTED

Wie kann die Anzahl (Kardinalität) der ASM-Instanzen geändert werden?

Änderung auf 2 ASM-Instanzen pro Cluster:

[grid@server01:~]>srvctl modify asm -count 2

Fazit:

Flex ASM bietet bei einem Mehrknoten-Cluster durch Aufhebung der Verknüpfung von Datenbank- und ASM-Instanz pro Knoten eine höhere Verfügbarkeit an. Bei Verwendung dieses Features bei einem Mix aus 11g- und 12c-Datenbanken können zumindestens die 12c-Datenbanken davon profiitieren.

Sie planen die Installation oder Migration Ihrer Oracle Grid Infrastucture und benötigen hierfür Unterstützung? Unser Opens window for sending emailConsulting-Team hilft Ihnen gerne weiter.

ASM RAC Oracle Datenbank 12c

Jede Menge Know-how für Sie!

In unserer Know-How Datenbank finden Sie mehr als 300 ausführliche Beiträge zu den Oracle-Themen wie DBA, SQL, PL/SQL, APEX und vielem mehr.
Hier erhalten Sie Antworten auf Ihre Fragen.