TR-5003: Hochdurchsatz-Oracle-VLDB-Implementierung auf ANF
Allen Cao, Niyaz Mohamed, NetApp
Die Lösung bietet einen Überblick und Details zur Konfiguration einer Oracle Very Large Database (VLDB) mit hohem Durchsatz auf Microsoft Azure NetApp Files (ANF) mit Oracle Data Guard in der Azure-Cloud.
Zweck
Hoher Durchsatz und unternehmenskritische Oracle VLDB stellen hohe Anforderungen an den Backend-Datenbankspeicher. Um die Service Level Agreements (SLA) einzuhalten, muss der Datenbankspeicher die erforderliche Kapazität und hohe Eingabe-/Ausgabevorgänge pro Sekunde (IOPS) bereitstellen und gleichzeitig eine Latenzleistung von unter einer Millisekunde aufrechterhalten. Dies ist besonders schwierig, wenn eine solche Datenbank-Workload in der öffentlichen Cloud mit einer Umgebung mit gemeinsam genutzten Speicherressourcen bereitgestellt wird. Nicht alle Speicherplattformen sind gleich. Premium Azure NetApp Files Speicher in Kombination mit der Azure-Infrastruktur kann die Anforderungen solch einer äußerst anspruchsvollen Oracle-Workload erfüllen. In einem validierten Leistungsbenchmark ("Oracle-Datenbankleistung auf mehreren Volumes von Azure NetApp Files" ), lieferte ANF 2,5 Millionen Lese-IOPS mit 700 Mikrosekunden Latenz in einer synthetischen 100 % zufällig ausgewählten Arbeitslast über das SLOB-Tool. Bei einer Standardblockgröße von 8 KB entspricht dies einem Durchsatz von etwa 20 GiB/s.
In dieser Dokumentation zeigen wir, wie Sie eine Oracle VLDB mit Data Guard-Konfiguration auf ANF-Speicher mit mehreren NFS-Volumes und Oracle ASM für den Speicherlastenausgleich einrichten. Die Standby-Datenbank kann schnell (in Minuten) per Snapshot gesichert und für den Lese-/Schreibzugriff für gewünschte Anwendungsfälle geklont werden. Das NetApp Solutions Engineering-Team bietet ein Automatisierungs-Toolkit zum einfachen Erstellen und Aktualisieren von Klonen nach einem benutzerdefinierten Zeitplan.
Diese Lösung ist für die folgenden Anwendungsfälle geeignet:
-
Implementierung von Oracle VLDB in einer Data Guard-Einstellung auf Microsoft Azure NetApp Files Speicher in allen Azure-Regionen.
-
Erstellen Sie Snapshot-Backups und klonen Sie die physische Standby-Datenbank, um Anwendungsfälle wie Berichterstellung, Entwicklung, Test usw. per Automatisierung abzuwickeln.
Publikum
Diese Lösung ist für folgende Personen gedacht:
-
Ein DBA, der Oracle VLDB mit Data Guard in der Azure-Cloud für hohe Verfügbarkeit, Datenschutz und Notfallwiederherstellung einrichtet.
-
Ein Datenbanklösungsarchitekt, der an Oracle VLDB mit Data Guard-Konfiguration in der Azure-Cloud interessiert ist.
-
Ein Speicheradministrator, der Azure NetApp Files Speicher verwaltet, der Oracle-Datenbanken unterstützt.
-
Ein Anwendungsbesitzer, der Oracle VLDB mit Data Guard in einer Azure-Cloudumgebung einrichten möchte.
Test- und Validierungsumgebung für Lösungen
Das Testen und Validieren dieser Lösung wurde in einer Azure-Cloud-Laborumgebung durchgeführt, die möglicherweise nicht der tatsächlichen Benutzerbereitstellungsumgebung entspricht. Weitere Informationen finden Sie im Abschnitt Wichtige Faktoren für die Bereitstellungsüberlegungen .
Architektur
Hardware- und Softwarekomponenten
Hardware |
||
Azure NetApp Files |
Aktuelle Version von Microsoft |
Zwei 4-TiB-Kapazitätspools, Premium-Servicelevel, Auto-QoS |
Azure-VMs für DB-Server |
Standard B4ms (4 vcpus, 16 GiB Speicher) |
Drei DB-VMs, eine als primärer DB-Server, eine als Standby-DB-Server und die dritte als Klon-DB-Server |
Software |
||
RedHat Linux |
Red Hat Enterprise Linux 8.6 (LVM) – x64 Gen2 |
RedHat-Abonnement zum Testen bereitgestellt |
Oracle Grid-Infrastruktur |
Version 19.18 |
RU-Patch p34762026_190000_Linux-x86-64.zip angewendet |
Oracle-Datenbank |
Version 19.18 |
RU-Patch p34765931_190000_Linux-x86-64.zip angewendet |
dNFS OneOff Patch |
p32931941_190000_Linux-x86-64.zip |
Wird sowohl auf Raster als auch auf Datenbank angewendet |
Oracle OPatch |
Version 12.2.0.1.36 |
Neuester Patch p6880880_190000_Linux-x86-64.zip |
Ansible |
Versionskern 2.16.2 |
Python-Version – 3.10.13 |
NFS |
Version 3.0 |
dNFS für Oracle aktiviert |
Oracle VLDB Data Guard-Konfiguration mit einem simulierten DR-Setup von NY nach LA
Datenbank |
DB_EINDEUTIGER_NAME |
Oracle Net-Dienstname |
Primär |
NTAP_NY |
NTAP_NY.internal.cloudapp.net |
Stehen zu |
NTAP_LA |
NTAP_LA.internal.cloudapp.net |
Wichtige Faktoren für die Bereitstellungsüberlegungen
-
* Azure NetApp Files -Konfiguration.* Azure NetApp Files werden im Azure NetApp -Speicherkonto wie folgt zugewiesen:
Capacity Pools
. Bei diesen Tests und Validierungen haben wir einen 2-TiB-Kapazitätspool zum Hosten der Oracle-Primärdatenbank in der Region Ost und einen 4-TiB-Kapazitätspool zum Hosten der Standby-Datenbank und des DB-Klons in der Region West 2 bereitgestellt. Der ANF-Kapazitätspool verfügt über drei Servicelevel: Standard, Premium und Ultra. Die E/A-Kapazität des ANF-Kapazitätspools basiert auf der Größe des Kapazitätspools und seinem Servicelevel. Bei der Erstellung eines Kapazitätspools können Sie QoS auf „Automatisch“ oder „Manuell“ und die Datenverschlüsselung im Ruhezustand auf „Einfach“ oder „Doppelt“ einstellen. -
Größenbestimmung der Datenbankvolumes. Für die Produktionsbereitstellung empfiehlt NetApp eine vollständige Bewertung Ihres Durchsatzbedarfs für Oracle-Datenbanken anhand des Oracle AWR-Berichts. Berücksichtigen Sie bei der Dimensionierung von ANF-Volumes für die Datenbank sowohl die Datenbankgröße als auch die Durchsatzanforderungen. Mit der automatischen QoS-Konfiguration für ANF wird eine Bandbreite von 128 MiB/s pro TiB Volumenkapazität garantiert, die mit dem Service Level Ultra zugewiesen wird. Um den Anforderungen für einen höheren Durchsatz gerecht zu werden, ist möglicherweise eine größere Volumengröße erforderlich.
-
Einzelband oder mehrere Bände. Ein einzelnes großes Volume kann ein ähnliches Leistungsniveau bieten wie mehrere Volumes mit derselben Gesamtgröße, da die QoS basierend auf der Volume-Größe und dem Servicelevel des Kapazitätspools strikt durchgesetzt wird. Es wird empfohlen, mehrere Volumes (mehrere NFS-Mount-Punkte) für Oracle VLDB zu implementieren, um den gemeinsam genutzten ANF-Speicherressourcenpool im Backend besser zu nutzen. Implementieren Sie Oracle ASM für den IO-Lastausgleich auf mehreren NFS-Volumes.
-
Anwendungsvolumegruppe. Stellen Sie zur Leistungsoptimierung Application Volume Group (AVG) für Oracle bereit. Von der Anwendungsvolumegruppe bereitgestellte Volumes werden in der regionalen oder zonalen Infrastruktur platziert, um eine optimierte Latenz und einen optimierten Durchsatz für die Anwendungs-VMs zu erreichen.
-
Azure VM-Überlegung. Bei diesen Tests und Validierungen haben wir eine Azure-VM – Standard_B4ms mit 4 vCPUs und 16 GiB Speicher verwendet. Sie müssen die Azure DB-VM entsprechend für Oracle VLDB mit hohen Durchsatzanforderungen auswählen. Neben der Anzahl der vCPUs und der RAM-Menge kann die VM-Netzwerkbandbreite (Ein- und Ausgang oder NIC-Durchsatzlimit) zum Engpass werden, bevor die Datenbankspeicherkapazität erreicht ist.
-
dNFS-Konfiguration. Durch die Verwendung von dNFS kann eine Oracle-Datenbank, die auf einer Azure Virtual Machine mit ANF-Speicher ausgeführt wird, deutlich mehr E/A-Vorgänge ausführen als der native NFS-Client. Stellen Sie sicher, dass der Oracle dNFS-Patch p32931941 angewendet wird, um potenzielle Fehler zu beheben.
Lösungsbereitstellung
Es wird davon ausgegangen, dass Sie Ihre primäre Oracle-Datenbank bereits in einer Azure-Cloudumgebung innerhalb eines VNet als Ausgangspunkt für die Einrichtung von Oracle Data Guard bereitgestellt haben. Idealerweise wird die primäre Datenbank auf einem ANF-Speicher mit NFS-Mount bereitgestellt. Ihre primäre Oracle-Datenbank kann auch auf einem NetApp ONTAP -Speicher oder einem anderen Speicher Ihrer Wahl entweder innerhalb des Azure-Ökosystems oder eines privaten Rechenzentrums ausgeführt werden. Der folgende Abschnitt veranschaulicht die Konfiguration für Oracle VLDB auf ANF in einer Oracle Data Guard-Einstellung zwischen einer primären Oracle-Datenbank in Azure mit ANF-Speicher und einer physischen Standby-Oracle-Datenbank in Azure mit ANF-Speicher.
Voraussetzungen für die Bereitstellung
Details
Für die Bereitstellung sind die folgenden Voraussetzungen erforderlich.
-
Ein Azure-Cloud-Konto wurde eingerichtet und die erforderlichen VNet- und Netzwerksubnetze wurden innerhalb Ihres Azure-Kontos erstellt.
-
Über die Azure-Cloudportalkonsole müssen Sie mindestens drei Azure Linux-VMs bereitstellen: eine als primären Oracle-DB-Server, eine als Standby-Oracle-DB-Server und einen Klon-Ziel-DB-Server für Berichterstellung, Entwicklung, Tests usw. Weitere Einzelheiten zur Einrichtung der Umgebung finden Sie im Architekturdiagramm im vorherigen Abschnitt. Lesen Sie auch die Microsoft"Virtuelle Azure-Computer" für weitere Informationen.
-
Die primäre Oracle-Datenbank sollte auf dem primären Oracle-DB-Server installiert und konfiguriert worden sein. Auf dem Standby-Oracle-DB-Server oder dem geklonten Oracle-DB-Server hingegen wird nur Oracle-Software installiert und es werden keine Oracle-Datenbanken erstellt. Idealerweise sollte das Layout der Oracle-Dateiverzeichnisse auf allen Oracle-DB-Servern genau übereinstimmen. Weitere Informationen zu den NetApp -Empfehlungen für die automatisierte Oracle-Bereitstellung in der Azure-Cloud und ANF finden Sie in den folgenden technischen Berichten.
-
"TR-4987: Vereinfachte, automatisierte Oracle-Bereitstellung auf Azure NetApp Files mit NFS"
Stellen Sie sicher, dass Sie im Stammvolume der Azure-VMs mindestens 128 GB zugewiesen haben, um ausreichend Speicherplatz für die Bereitstellung der Oracle-Installationsdateien zu haben.
-
-
Stellen Sie über die Azure-Cloudportalkonsole zwei ANF-Speicherkapazitätspools bereit, um Oracle-Datenbankvolumes zu hosten. Die ANF-Speicherkapazitätspools sollten in verschiedenen Regionen liegen, um eine echte DataGuard-Konfiguration zu simulieren. Wenn Sie mit der Bereitstellung von ANF-Speicher nicht vertraut sind, lesen Sie die Dokumentation"Schnellstart: Einrichten von Azure NetApp Files und Erstellen eines NFS-Volumes" für schrittweise Anleitungen.
-
Wenn sich die primäre Oracle-Datenbank und die Standby-Oracle-Datenbank in zwei verschiedenen Regionen befinden, sollte ein VPN-Gateway konfiguriert werden, um den Datenverkehr zwischen zwei separaten VNets zu ermöglichen. Eine detaillierte Netzwerkkonfiguration in Azure geht über den Rahmen dieses Dokuments hinaus. Die folgenden Screenshots bieten einige Hinweise dazu, wie die VPN-Gateways konfiguriert und verbunden werden und wie der Datenverkehrsfluss im Labor bestätigt wird.
VPN-Gateways im Labor:
Das primäre VNET-Gateway:
Verbindungsstatus des VNET-Gateways:
Überprüfen Sie, ob die Verkehrsflüsse eingerichtet sind (klicken Sie auf die drei Punkte, um die Seite zu öffnen):
-
Siehe diese Dokumentation"Bereitstellen einer Anwendungsvolumegruppe für Oracle" um Application Volume Group für Oracle bereitzustellen.
Primäre Oracle VLDB-Konfiguration für Data Guard
Details
In dieser Demonstration haben wir eine primäre Oracle-Datenbank namens NTAP auf dem primären Azure DB-Server mit sechs NFS-Mount-Punkten eingerichtet: /u01 für die Oracle-Binärdatei, /u02, /u04, /u05, /u06 für die Oracle-Datendateien und eine Oracle-Steuerdatei, /u03 für die aktiven Oracle-Protokolle, archivierten Protokolldateien und eine redundante Oracle-Steuerdatei. Dieser Aufbau dient als Referenzkonfiguration. Bei Ihrer tatsächlichen Bereitstellung sollten Sie Ihre spezifischen Bedürfnisse und Anforderungen hinsichtlich der Größe des Kapazitätspools, des Servicelevels, der Anzahl der Datenbankvolumes und der Größe jedes Volumes berücksichtigen.
Ausführliche Schritt-für-Schritt-Anleitungen zum Einrichten von Oracle Data Guard auf NFS mit ASM finden Sie unter"TR-5002 – Kostensenkung für Oracle Active Data Guard mit Azure NetApp Files" Und"TR-4974- Oracle 19c im Standalone-Neustart auf AWS FSx/EC2 mit NFS/ASM" entsprechenden Abschnitte. Obwohl die Verfahren in TR-4974 auf Amazon FSx ONTAP validiert wurden, sind sie gleichermaßen auf ANF anwendbar. Im Folgenden werden die Details einer primären Oracle VLDB in einer Data Guard-Konfiguration veranschaulicht.
-
Die primäre Datenbank NTAP auf dem primären Azure DB-Server orap.internal.cloudapp.net wird zunächst als eigenständige Datenbank mit ANF auf NFS und ASM als Datenbankspeicher bereitgestellt.
orap.internal.cloudapp.net: resource group: ANFAVSRG Location: East US size: Standard B4ms (4 vcpus, 16 GiB memory) OS: Linux (redhat 8.6) pub_ip: 172.190.207.231 pri_ip: 10.0.0.4 [oracle@orap ~]$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 7.7G 0 7.7G 0% /dev tmpfs 7.8G 1.1G 6.7G 15% /dev/shm tmpfs 7.8G 17M 7.7G 1% /run tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup /dev/mapper/rootvg-rootlv 22G 20G 2.1G 91% / /dev/mapper/rootvg-usrlv 10G 2.3G 7.8G 23% /usr /dev/sda1 496M 181M 315M 37% /boot /dev/mapper/rootvg-varlv 8.0G 1.1G 7.0G 13% /var /dev/sda15 495M 5.8M 489M 2% /boot/efi /dev/mapper/rootvg-homelv 2.0G 47M 2.0G 3% /home /dev/mapper/rootvg-tmplv 12G 11G 1.9G 85% /tmp /dev/sdb1 32G 49M 30G 1% /mnt 10.0.2.38:/orap-u06 300G 282G 19G 94% /u06 10.0.2.38:/orap-u04 300G 282G 19G 94% /u04 10.0.2.36:/orap-u01 400G 21G 380G 6% /u01 10.0.2.37:/orap-u02 300G 282G 19G 94% /u02 10.0.2.36:/orap-u03 400G 282G 119G 71% /u03 10.0.2.39:/orap-u05 300G 282G 19G 94% /u05 [oracle@orap ~]$ cat /etc/oratab # # This file is used by ORACLE utilities. It is created by root.sh # and updated by either Database Configuration Assistant while creating # a database or ASM Configuration Assistant while creating ASM instance. # A colon, ':', is used as the field terminator. A new line terminates # the entry. Lines beginning with a pound sign, '#', are comments. # # Entries are of the form: # $ORACLE_SID:$ORACLE_HOME:<N|Y>: # # The first and second fields are the system identifier and home # directory of the database respectively. The third field indicates # to the dbstart utility that the database should , "Y", or should not, # "N", be brought up at system boot time. # # Multiple entries with the same $ORACLE_SID are not allowed. # # +ASM:/u01/app/oracle/product/19.0.0/grid:N NTAP:/u01/app/oracle/product/19.0.0/NTAP:N
-
Melden Sie sich als Oracle-Benutzer beim primären DB-Server an. Überprüfen Sie die Netzkonfiguration.
$GRID_HOME/bin/crsctl stat res -t
[oracle@orap ~]$ $GRID_HOME/bin/crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.DATA.dg ONLINE ONLINE orap STABLE ora.LISTENER.lsnr ONLINE ONLINE orap STABLE ora.LOGS.dg ONLINE ONLINE orap STABLE ora.asm ONLINE ONLINE orap Started,STABLE ora.ons OFFLINE OFFLINE orap STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.cssd 1 ONLINE ONLINE orap STABLE ora.diskmon 1 OFFLINE OFFLINE STABLE ora.evmd 1 ONLINE ONLINE orap STABLE ora.ntap.db 1 OFFLINE OFFLINE Instance Shutdown,ST ABLE -------------------------------------------------------------------------------- [oracle@orap ~]$
-
ASM-Datenträgergruppenkonfiguration.
asmcmd
[oracle@orap ~]$ asmcmd ASMCMD> lsdg State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 512 4096 4194304 1146880 1136944 0 1136944 0 N DATA/ MOUNTED EXTERN N 512 512 4096 4194304 286720 283312 0 283312 0 N LOGS/ ASMCMD> lsdsk Path /u02/oradata/asm/orap_data_disk_01 /u02/oradata/asm/orap_data_disk_02 /u02/oradata/asm/orap_data_disk_03 /u02/oradata/asm/orap_data_disk_04 /u03/oralogs/asm/orap_logs_disk_01 /u03/oralogs/asm/orap_logs_disk_02 /u03/oralogs/asm/orap_logs_disk_03 /u03/oralogs/asm/orap_logs_disk_04 /u04/oradata/asm/orap_data_disk_05 /u04/oradata/asm/orap_data_disk_06 /u04/oradata/asm/orap_data_disk_07 /u04/oradata/asm/orap_data_disk_08 /u05/oradata/asm/orap_data_disk_09 /u05/oradata/asm/orap_data_disk_10 /u05/oradata/asm/orap_data_disk_11 /u05/oradata/asm/orap_data_disk_12 /u06/oradata/asm/orap_data_disk_13 /u06/oradata/asm/orap_data_disk_14 /u06/oradata/asm/orap_data_disk_15 /u06/oradata/asm/orap_data_disk_16 ASMCMD>
-
Parametereinstellung für Data Guard auf der primären Datenbank.
SQL> show parameter name NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ cdb_cluster_name string cell_offloadgroup_name string db_file_name_convert string db_name string NTAP db_unique_name string NTAP_NY global_names boolean FALSE instance_name string NTAP lock_name_space string log_file_name_convert string pdb_file_name_convert string processor_group_name string NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ service_names string NTAP_NY.internal.cloudapp.net SQL> sho parameter log_archive_dest NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_dest string log_archive_dest_1 string LOCATION=USE_DB_RECOVERY_FILE_ DEST VALID_FOR=(ALL_LOGFILES,A LL_ROLES) DB_UNIQUE_NAME=NTAP_ NY log_archive_dest_10 string log_archive_dest_11 string log_archive_dest_12 string log_archive_dest_13 string log_archive_dest_14 string log_archive_dest_15 string NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_dest_16 string log_archive_dest_17 string log_archive_dest_18 string log_archive_dest_19 string log_archive_dest_2 string SERVICE=NTAP_LA ASYNC VALID_FO R=(ONLINE_LOGFILES,PRIMARY_ROL E) DB_UNIQUE_NAME=NTAP_LA log_archive_dest_20 string log_archive_dest_21 string log_archive_dest_22 string
-
Primäre DB-Konfiguration.
SQL> select name, open_mode, log_mode from v$database; NAME OPEN_MODE LOG_MODE --------- -------------------- ------------ NTAP READ WRITE ARCHIVELOG SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 NTAP_PDB1 READ WRITE NO 4 NTAP_PDB2 READ WRITE NO 5 NTAP_PDB3 READ WRITE NO SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- +DATA/NTAP/DATAFILE/system.257.1189724205 +DATA/NTAP/DATAFILE/sysaux.258.1189724249 +DATA/NTAP/DATAFILE/undotbs1.259.1189724275 +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/system.266.1189725235 +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/sysaux.267.1189725235 +DATA/NTAP/DATAFILE/users.260.1189724275 +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/undotbs1.268.1189725235 +DATA/NTAP/2B1302C26E089A59E0630400000A4D5C/DATAFILE/system.272.1189726217 +DATA/NTAP/2B1302C26E089A59E0630400000A4D5C/DATAFILE/sysaux.273.1189726217 +DATA/NTAP/2B1302C26E089A59E0630400000A4D5C/DATAFILE/undotbs1.271.1189726217 +DATA/NTAP/2B1302C26E089A59E0630400000A4D5C/DATAFILE/users.275.1189726243 NAME -------------------------------------------------------------------------------- +DATA/NTAP/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/system.277.1189726245 +DATA/NTAP/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/sysaux.278.1189726245 +DATA/NTAP/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/undotbs1.276.1189726245 +DATA/NTAP/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/users.280.1189726269 +DATA/NTAP/2B13061057039B10E0630400000AA001/DATAFILE/system.282.1189726271 +DATA/NTAP/2B13061057039B10E0630400000AA001/DATAFILE/sysaux.283.1189726271 +DATA/NTAP/2B13061057039B10E0630400000AA001/DATAFILE/undotbs1.281.1189726271 +DATA/NTAP/2B13061057039B10E0630400000AA001/DATAFILE/users.285.1189726293 19 rows selected. SQL> select member from v$logfile; MEMBER -------------------------------------------------------------------------------- +DATA/NTAP/ONLINELOG/group_3.264.1189724351 +LOGS/NTAP/ONLINELOG/group_3.259.1189724361 +DATA/NTAP/ONLINELOG/group_2.263.1189724351 +LOGS/NTAP/ONLINELOG/group_2.257.1189724359 +DATA/NTAP/ONLINELOG/group_1.262.1189724351 +LOGS/NTAP/ONLINELOG/group_1.258.1189724359 +DATA/NTAP/ONLINELOG/group_4.286.1190297279 +LOGS/NTAP/ONLINELOG/group_4.262.1190297283 +DATA/NTAP/ONLINELOG/group_5.287.1190297293 +LOGS/NTAP/ONLINELOG/group_5.263.1190297295 +DATA/NTAP/ONLINELOG/group_6.288.1190297307 MEMBER -------------------------------------------------------------------------------- +LOGS/NTAP/ONLINELOG/group_6.264.1190297309 +DATA/NTAP/ONLINELOG/group_7.289.1190297325 +LOGS/NTAP/ONLINELOG/group_7.265.1190297327 14 rows selected. SQL> select name from v$controlfile; NAME -------------------------------------------------------------------------------- +DATA/NTAP/CONTROLFILE/current.261.1189724347 +LOGS/NTAP/CONTROLFILE/current.256.1189724347
-
dNFS-Konfiguration auf primärer Datenbank.
SQL> select svrname, dirname from v$dnfs_servers; SVRNAME -------------------------------------------------------------------------------- DIRNAME -------------------------------------------------------------------------------- 10.0.2.39 /orap-u05 10.0.2.38 /orap-u04 10.0.2.38 /orap-u06 SVRNAME -------------------------------------------------------------------------------- DIRNAME -------------------------------------------------------------------------------- 10.0.2.37 /orap-u02 10.0.2.36 /orap-u03 10.0.2.36 /orap-u01 6 rows selected.
Damit ist die Demonstration eines Data Guard-Setups für VLDB NTAP am primären Standort auf ANF mit NFS/ASM abgeschlossen.
Standby-Oracle-VLDB-Konfiguration für Data Guard
Details
Oracle Data Guard erfordert eine Betriebssystemkernelkonfiguration und Oracle-Software-Stacks einschließlich Patch-Sets auf dem Standby-DB-Server, um eine Übereinstimmung mit dem primären DB-Server zu gewährleisten. Zur Vereinfachung der Verwaltung und Vereinfachung sollte die Datenbankspeicherkonfiguration des Standby-DB-Servers idealerweise auch mit der des primären DB-Servers übereinstimmen, beispielsweise das Datenbankverzeichnislayout und die Größen der NFS-Mount-Punkte.
Detaillierte Schritt-für-Schritt-Anleitungen zum Einrichten des Oracle Data Guard-Standby auf NFS mit ASM finden Sie unter"TR-5002 – Kostensenkung für Oracle Active Data Guard mit Azure NetApp Files" Und"TR-4974 – Oracle 19c im Standalone-Neustart auf AWS FSx/EC2 mit NFS/ASM" entsprechenden Abschnitte. Im Folgenden werden die Details der Standby-Oracle-VLDB-Konfiguration auf dem Standby-DB-Server in einer Data Guard-Einstellung veranschaulicht.
-
Die Standby-Oracle-DB-Serverkonfiguration am Standby-Standort im Demolabor.
oras.internal.cloudapp.net: resource group: ANFAVSRG Location: West US 2 size: Standard B4ms (4 vcpus, 16 GiB memory) OS: Linux (redhat 8.6) pub_ip: 172.179.119.75 pri_ip: 10.0.1.4 [oracle@oras ~]$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 7.7G 0 7.7G 0% /dev tmpfs 7.8G 1.1G 6.7G 15% /dev/shm tmpfs 7.8G 25M 7.7G 1% /run tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup /dev/mapper/rootvg-rootlv 22G 17G 5.6G 75% / /dev/mapper/rootvg-usrlv 10G 2.3G 7.8G 23% /usr /dev/mapper/rootvg-varlv 8.0G 1.1G 7.0G 13% /var /dev/mapper/rootvg-homelv 2.0G 52M 2.0G 3% /home /dev/sda1 496M 181M 315M 37% /boot /dev/sda15 495M 5.8M 489M 2% /boot/efi /dev/mapper/rootvg-tmplv 12G 11G 1.8G 86% /tmp /dev/sdb1 32G 49M 30G 1% /mnt 10.0.3.36:/oras-u03 400G 282G 119G 71% /u03 10.0.3.36:/oras-u04 300G 282G 19G 94% /u04 10.0.3.36:/oras-u05 300G 282G 19G 94% /u05 10.0.3.36:/oras-u02 300G 282G 19G 94% /u02 10.0.3.36:/oras-u01 100G 21G 80G 21% /u01 10.0.3.36:/oras-u06 300G 282G 19G 94% /u06 [oracle@oras ~]$ cat /etc/oratab #Backup file is /u01/app/oracle/crsdata/oras/output/oratab.bak.oras.oracle line added by Agent # # This file is used by ORACLE utilities. It is created by root.sh # and updated by either Database Configuration Assistant while creating # a database or ASM Configuration Assistant while creating ASM instance. # A colon, ':', is used as the field terminator. A new line terminates # the entry. Lines beginning with a pound sign, '#', are comments. # # Entries are of the form: # $ORACLE_SID:$ORACLE_HOME:<N|Y>: # # The first and second fields are the system identifier and home # directory of the database respectively. The third field indicates # to the dbstart utility that the database should , "Y", or should not, # "N", be brought up at system boot time. # # Multiple entries with the same $ORACLE_SID are not allowed. # # +ASM:/u01/app/oracle/product/19.0.0/grid:N NTAP:/u01/app/oracle/product/19.0.0/NTAP:N # line added by Agent
-
Konfiguration der Grid-Infrastruktur auf dem Standby-DB-Server.
[oracle@oras ~]$ $GRID_HOME/bin/crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.DATA.dg ONLINE ONLINE oras STABLE ora.LISTENER.lsnr ONLINE ONLINE oras STABLE ora.LOGS.dg ONLINE ONLINE oras STABLE ora.asm ONLINE ONLINE oras Started,STABLE ora.ons OFFLINE OFFLINE oras STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.cssd 1 ONLINE ONLINE oras STABLE ora.diskmon 1 OFFLINE OFFLINE STABLE ora.evmd 1 ONLINE ONLINE oras STABLE ora.ntap_la.db 1 ONLINE INTERMEDIATE oras Dismounted,Mount Ini tiated,HOME=/u01/app /oracle/product/19.0 .0/NTAP,STABLE --------------------------------------------------------------------------------
-
ASM-Datenträgergruppenkonfiguration auf dem Standby-DB-Server.
[oracle@oras ~]$ asmcmd ASMCMD> lsdg State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 512 4096 4194304 1146880 1136912 0 1136912 0 N DATA/ MOUNTED EXTERN N 512 512 4096 4194304 286720 284228 0 284228 0 N LOGS/ ASMCMD> lsdsk Path /u02/oradata/asm/oras_data_disk_01 /u02/oradata/asm/oras_data_disk_02 /u02/oradata/asm/oras_data_disk_03 /u02/oradata/asm/oras_data_disk_04 /u03/oralogs/asm/oras_logs_disk_01 /u03/oralogs/asm/oras_logs_disk_02 /u03/oralogs/asm/oras_logs_disk_03 /u03/oralogs/asm/oras_logs_disk_04 /u04/oradata/asm/oras_data_disk_05 /u04/oradata/asm/oras_data_disk_06 /u04/oradata/asm/oras_data_disk_07 /u04/oradata/asm/oras_data_disk_08 /u05/oradata/asm/oras_data_disk_09 /u05/oradata/asm/oras_data_disk_10 /u05/oradata/asm/oras_data_disk_11 /u05/oradata/asm/oras_data_disk_12 /u06/oradata/asm/oras_data_disk_13 /u06/oradata/asm/oras_data_disk_14 /u06/oradata/asm/oras_data_disk_15 /u06/oradata/asm/oras_data_disk_16
-
Parametereinstellung für Data Guard auf Standby-DB.
SQL> show parameter name NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ cdb_cluster_name string cell_offloadgroup_name string db_file_name_convert string db_name string NTAP db_unique_name string NTAP_LA global_names boolean FALSE instance_name string NTAP lock_name_space string log_file_name_convert string pdb_file_name_convert string processor_group_name string NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ service_names string NTAP_LA.internal.cloudapp.net SQL> show parameter log_archive_config NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_config string DG_CONFIG=(NTAP_NY,NTAP_LA) SQL> show parameter fal_server NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ fal_server string NTAP_NY
-
Standby-DB-Konfiguration.
SQL> select name, open_mode, log_mode from v$database; NAME OPEN_MODE LOG_MODE --------- -------------------- ------------ NTAP MOUNTED ARCHIVELOG SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED MOUNTED 3 NTAP_PDB1 MOUNTED 4 NTAP_PDB2 MOUNTED 5 NTAP_PDB3 MOUNTED SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- +DATA/NTAP_LA/DATAFILE/system.261.1190301867 +DATA/NTAP_LA/DATAFILE/sysaux.262.1190301923 +DATA/NTAP_LA/DATAFILE/undotbs1.263.1190301969 +DATA/NTAP_LA/2B12C97618069248E0630400000AC50B/DATAFILE/system.264.1190301987 +DATA/NTAP_LA/2B12C97618069248E0630400000AC50B/DATAFILE/sysaux.265.1190302013 +DATA/NTAP_LA/DATAFILE/users.266.1190302039 +DATA/NTAP_LA/2B12C97618069248E0630400000AC50B/DATAFILE/undotbs1.267.1190302045 +DATA/NTAP_LA/2B1302C26E089A59E0630400000A4D5C/DATAFILE/system.268.1190302071 +DATA/NTAP_LA/2B1302C26E089A59E0630400000A4D5C/DATAFILE/sysaux.269.1190302099 +DATA/NTAP_LA/2B1302C26E089A59E0630400000A4D5C/DATAFILE/undotbs1.270.1190302125 +DATA/NTAP_LA/2B1302C26E089A59E0630400000A4D5C/DATAFILE/users.271.1190302133 NAME -------------------------------------------------------------------------------- +DATA/NTAP_LA/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/system.272.1190302137 +DATA/NTAP_LA/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/sysaux.273.1190302163 +DATA/NTAP_LA/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/undotbs1.274.1190302189 +DATA/NTAP_LA/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/users.275.1190302197 +DATA/NTAP_LA/2B13061057039B10E0630400000AA001/DATAFILE/system.276.1190302201 +DATA/NTAP_LA/2B13061057039B10E0630400000AA001/DATAFILE/sysaux.277.1190302229 +DATA/NTAP_LA/2B13061057039B10E0630400000AA001/DATAFILE/undotbs1.278.1190302255 +DATA/NTAP_LA/2B13061057039B10E0630400000AA001/DATAFILE/users.279.1190302263 19 rows selected. SQL> select name from v$controlfile; NAME -------------------------------------------------------------------------------- +DATA/NTAP_LA/CONTROLFILE/current.260.1190301831 +LOGS/NTAP_LA/CONTROLFILE/current.257.1190301833 SQL> select group#, type, member from v$logfile order by 2, 1; GROUP# TYPE MEMBER ---------- ------- -------------------------------------------------------------------------------- 1 ONLINE +DATA/NTAP_LA/ONLINELOG/group_1.280.1190302305 1 ONLINE +LOGS/NTAP_LA/ONLINELOG/group_1.259.1190302309 2 ONLINE +DATA/NTAP_LA/ONLINELOG/group_2.281.1190302315 2 ONLINE +LOGS/NTAP_LA/ONLINELOG/group_2.258.1190302319 3 ONLINE +DATA/NTAP_LA/ONLINELOG/group_3.282.1190302325 3 ONLINE +LOGS/NTAP_LA/ONLINELOG/group_3.260.1190302329 4 STANDBY +DATA/NTAP_LA/ONLINELOG/group_4.283.1190302337 4 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_4.261.1190302339 5 STANDBY +DATA/NTAP_LA/ONLINELOG/group_5.284.1190302347 5 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_5.262.1190302349 6 STANDBY +DATA/NTAP_LA/ONLINELOG/group_6.285.1190302357 GROUP# TYPE MEMBER ---------- ------- -------------------------------------------------------------------------------- 6 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_6.263.1190302359 7 STANDBY +DATA/NTAP_LA/ONLINELOG/group_7.286.1190302367 7 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_7.264.1190302369 14 rows selected.
-
Überprüfen Sie den Wiederherstellungsstatus der Standby-Datenbank. Beachten Sie die
recovery logmerger
InAPPLYING_LOG
Aktion.SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS; ROLE THREAD# SEQUENCE# ACTION ------------------------ ---------- ---------- ------------ recovery logmerger 1 32 APPLYING_LOG recovery apply slave 0 0 IDLE RFS async 1 32 IDLE recovery apply slave 0 0 IDLE recovery apply slave 0 0 IDLE RFS ping 1 32 IDLE archive redo 0 0 IDLE managed recovery 0 0 IDLE archive redo 0 0 IDLE archive redo 0 0 IDLE recovery apply slave 0 0 IDLE ROLE THREAD# SEQUENCE# ACTION ------------------------ ---------- ---------- ------------ redo transport monitor 0 0 IDLE log writer 0 0 IDLE archive local 0 0 IDLE redo transport timer 0 0 IDLE gap manager 0 0 IDLE RFS archive 0 0 IDLE 17 rows selected.
-
dNFS-Konfiguration auf Standby-DB.
SQL> select svrname, dirname from v$dnfs_servers; SVRNAME -------------------------------------------------------------------------------- DIRNAME -------------------------------------------------------------------------------- 10.0.3.36 /oras-u05 10.0.3.36 /oras-u04 10.0.3.36 /oras-u02 10.0.3.36 /oras-u06 10.0.3.36 /oras-u03
Damit ist die Demonstration eines Data Guard-Setups für VLDB NTAP mit aktivierter verwalteter Standby-Wiederherstellung am Standby-Standort abgeschlossen.
Data Guard Broker einrichten
Details
Oracle Data Guard Broker ist ein verteiltes Verwaltungsframework, das die Erstellung, Wartung und Überwachung von Oracle Data Guard-Konfigurationen automatisiert und zentralisiert. Der folgende Abschnitt zeigt, wie Sie Data Guard Broker einrichten, um die Data Guard-Umgebung zu verwalten.
-
Starten Sie den Data Guard Broker sowohl auf der primären als auch auf der Standby-Datenbank mit dem folgenden Befehl über SQLPlus.
alter system set dg_broker_start=true scope=both;
-
Stellen Sie von der primären Datenbank aus als SYSDBA eine Verbindung zum Data Guard Borker her.
[oracle@orap ~]$ dgmgrl sys@NTAP_NY DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Dec 11 20:53:20 2024 Version 19.18.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. Welcome to DGMGRL, type "help" for information. Password: Connected to "NTAP_NY" Connected as SYSDBA. DGMGRL>
-
Erstellen und aktivieren Sie die Data Guard Broker-Konfiguration.
DGMGRL> create configuration dg_config as primary database is NTAP_NY connect identifier is NTAP_NY; Configuration "dg_config" created with primary database "ntap_ny" DGMGRL> add database NTAP_LA as connect identifier is NTAP_LA; Database "ntap_la" added DGMGRL> enable configuration; Enabled. DGMGRL> show configuration; Configuration - dg_config Protection Mode: MaxPerformance Members: ntap_ny - Primary database ntap_la - Physical standby database Fast-Start Failover: Disabled Configuration Status: SUCCESS (status updated 3 seconds ago)
-
Validieren Sie den Datenbankstatus im Data Guard Broker-Verwaltungsframework.
DGMGRL> show database db1_ny; Database - db1_ny Role: PRIMARY Intended State: TRANSPORT-ON Instance(s): db1 Database Status: SUCCESS DGMGRL> show database db1_la; Database - db1_la Role: PHYSICAL STANDBY Intended State: APPLY-ON Transport Lag: 0 seconds (computed 1 second ago) Apply Lag: 0 seconds (computed 1 second ago) Average Apply Rate: 2.00 KByte/s Real Time Query: OFF Instance(s): db1 Database Status: SUCCESS DGMGRL>
Im Falle eines Fehlers kann Data Guard Broker verwendet werden, um ein sofortiges Failover der primären Datenbank auf die Standby-Datenbank durchzuführen. Wenn Fast-Start Failover
aktiviert ist, kann Data Guard Broker bei Erkennung eines Fehlers ohne Benutzereingriff ein Failover der primären Datenbank auf die Standby-Datenbank durchführen.
Klonen Sie die Standby-Datenbank für andere Anwendungsfälle per Automatisierung
Details
Das folgende Automatisierungs-Toolkit ist speziell für die Erstellung oder Aktualisierung von Klonen einer Oracle Data Guard-Standby-Datenbank konzipiert, die in ANF mit NFS/ASM-Konfiguration für ein vollständiges Klon-Lebenszyklusmanagement bereitgestellt wird.
git clone https://bitbucket.ngage.netapp.com/scm/ns-bb/na_oracle_clone_anf.git
|
Auf das Toolkit kann derzeit nur von internen NetApp Benutzern mit Bitbucket-Zugriff zugegriffen werden. Interessierte externe Benutzer fordern den Zugriff bitte bei ihrem Account-Team an oder wenden sich an das NetApp Solutions Engineering-Team. |
Wo Sie weitere Informationen finden
Weitere Informationen zu den in diesem Dokument beschriebenen Informationen finden Sie in den folgenden Dokumenten und/oder auf den folgenden Websites:
-
TR-5002: Kostensenkung für Oracle Active Data Guard mit Azure NetApp Files
-
TR-4974: Oracle 19c im Standalone-Neustart auf AWS FSx/EC2 mit NFS/ASM
-
Azure NetApp Files
-
Konzepte und Verwaltung von Oracle Data Guard