Skip to main content
NetApp database solutions
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

TR-5006: Hochdurchsatz-Implementierung von Oracle VLDB auf Google Cloud NetApp Volumes mit Data Guard

Beitragende netapp-revathid kevin-hoke

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 Google Cloud NetApp Volumes (GCNV) mit Oracle Data Guard in der Google 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. GCNV ist ein von Google angebotener Premium-Speicherdienst, der unternehmenskritische Oracle Database-Bereitstellungen in der Google Cloud unterstützen kann, die anhaltende IOPS und Leistungsmerkmale mit geringer Latenz erfordern. Die Architektur unterstützt OLTP- und OLAP-Workloads mit konfigurierbaren Serviceebenen, die verschiedene Leistungsprofile unterstützen. GCNV bietet eine blitzschnelle Leistung mit einer Latenz von unter einer Millisekunde und erreicht einen Durchsatz von bis zu 4,5 GiBps pro Volume bei gemischten Lese-/Schreib-Workloads.

Durch die Nutzung der schnellen Snapshot-Backup- (Sekunden) und Klonfunktion (Minuten) von GCNV können vollständige Kopien der Produktionsdatenbank im laufenden Betrieb aus dem physischen Standby geklont werden, um viele andere Anwendungsfälle wie DEV, UAT usw. abzudecken. Sie können auf eine Active Data Guard-Lizenz und ineffizientes und komplexes Snapshot Standby verzichten. Die Kosteneinsparungen können erheblich sein. Bei einer nominalen Oracle Data Guard-Konfiguration mit 64-Core-CPUs auf primären und Standby-Oracle-Servern belaufen sich die alleinigen Kosteneinsparungen bei der Active Data Guard-Lizenzierung auf 1.472.000 US-Dollar, basierend auf der neuesten Oracle-Preisliste.  

In dieser Dokumentation zeigen wir, wie Sie eine Oracle VLDB mit Data Guard-Konfiguration auf GCNVS-Speicher mit mehreren NFS-Volumes und Oracle ASM für den Speicherlastenausgleich einrichten. Die Standby-Datenbankvolumes können schnell per Snapshot gesichert und für Lese-/Schreibzugriff geklont werden. Das NetApp Solutions Engineering-Team bietet ein Automatisierungs-Toolkit zum Erstellen und Aktualisieren von Klonen mit optimiertem Lebenszyklusmanagement.

Diese Lösung ist für die folgenden Anwendungsfälle geeignet:

  • Implementierung von Oracle VLDB in einer Data Guard-Einstellung auf dem GCNV-Speicherdienst in allen Google Cloud-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 Google Cloud für hohe Verfügbarkeit, Datenschutz und Notfallwiederherstellung einrichtet.

  • Ein Datenbanklösungsarchitekt, der an Oracle VLDB mit Data Guard-Konfiguration in der Google Cloud interessiert ist.

  • Ein Speicheradministrator, der GCNV-Speicher verwaltet, der Oracle-Datenbanken unterstützt.

  • Ein Anwendungsbesitzer, der Oracle VLDB mit Data Guard in einer Google-Cloud-Umgebung einrichten möchte.

Test- und Validierungsumgebung für Lösungen

Das Testen und Validieren dieser Lösung wurde in einer Google Cloud-Lab-Umgebung 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

Dieses Bild bietet eine detaillierte Darstellung der Oracle Data Guard-Implementierung in der Google Cloud auf GCNV.

Hardware- und Softwarekomponenten

Hardware

Google Cloud NetApp Volumes

Aktuelles Serviceangebot von Google

Zwei Speicherpools, Premium-Servicelevel, Auto-QoS

Google Compute Engine-VMs für DB-Server

N1 (4 vcpus, 15 GiB Speicher)

Vier DB-VMs, primärer DB-Server, Standby-DB-Server, Klon-DB-Server und Data Guard-Beobachter.

Software

RedHat Linux

Red Hat Enterprise Linux 8.10 (Ootpa) – x86/64

RHEL Marketplace-Image, PAYG

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.cvs-pm-host-1p.internal

Stehen zu

NTAP_LA

NTAP_LA.cvs-pm-host-1p.internal

Wichtige Faktoren für die Bereitstellungsüberlegungen

  • * Google Cloud NetApp Volumes -Konfiguration.* GCNV werden in der Google Cloud als Storage Pools . Bei diesen Tests und Validierungen haben wir einen 2-TiB-Speicherpool zum Hosten der primären Oracle-Datenbank in der Region East4 und einen 4-TiB-Speicherpool zum Hosten der Standby-Datenbank und des DB-Klons in der Region West4 bereitgestellt. Der GCNV-Speicherpool verfügt über vier Servicelevel: Flex, Standard, Premium und Extreme. 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 legen Sie den Speicherort, das Servicelevel, die Verfügbarkeitszone und die Kapazität des Speicherpools fest. Für die Oracle Data Guard-Konfiguration sollte die zonale Verfügbarkeit ausreichend sein, da Data Guard den Datenbank-Failover-Schutz bei einem Ausfall auf Zonenebene bereitstellt.

  • 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 beim Entwerfen des GCNV-Volume-Layouts für die VLDB-Datenbank die Datenbankgröße, die Durchsatzanforderungen und das Servicelevel. Es wird empfohlen, nur Premium oder Extreme Dienst für Oracle-Datenbank. Die Bandbreite beträgt garantiert 64 MiB/s pro TiB Volumenkapazität bis maximal 4,5 GiBps für Premium Service und 128 MiB/s pro TiB Volumenkapazität bis zu 4,5 GiBps für Extreme Service. Um den Anforderungen für einen höheren Durchsatz gerecht zu werden, ist eine größere Volumengröße erforderlich.

  • Mehrere Volumes und Lastausgleich. Ein einzelnes großes Volume kann ein ähnliches Leistungsniveau bieten wie mehrere Volumes mit derselben Gesamtvolumegröße, da die QoS basierend auf der Volumegröße und dem Servicelevel des Speicherpools strikt durchgesetzt wird. Es wird empfohlen, mehrere Volumes (mehrere NFS-Mount-Punkte) für Oracle VLDB zu implementieren, um den gemeinsam genutzten GCNV-Speicherressourcenpool im Backend besser zu nutzen und Durchsatzanforderungen von über 4,5 GiBps zu erfüllen. Implementieren Sie Oracle ASM für den IO-Lastausgleich auf mehreren NFS-Volumes.

  • Überlegungen zur VM-Instanz von Google Compute Engine. Bei diesen Tests und Validierungen haben wir Compute Engine VM – N1 mit 4 vCPUs und 15 GiB Speicher verwendet. Sie müssen die Compute Engine DB-VM-Instanz 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 der Datenbankspeicherdurchsatz erreicht wird.

  • dNFS-Konfiguration. Durch die Verwendung von dNFS kann eine Oracle-Datenbank, die auf einer Google Compute Engine-VM mit GCNV-Speicher ausgeführt wird, erheblich 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

Der folgende Abschnitt demonstriert die Konfiguration für Oracle VLDB auf GCNV in einer Oracle Data Guard-Einstellung zwischen einer primären Oracle DB in der Google Cloud der Region Ost mit GCNV-Speicher und einer physischen Standby-Oracle DB in der Google Cloud der Region West mit GCNV-Speicher.

Voraussetzungen für die Bereitstellung

Details

Für die Bereitstellung sind die folgenden Voraussetzungen erforderlich.

  1. Ein Google-Cloud-Konto wurde eingerichtet und innerhalb Ihres Google-Kontos wurde ein Projekt erstellt, um Ressourcen für die Einrichtung von Oracle Data Guard bereitzustellen.

  2. Erstellen Sie eine VPC und Subnetze, die die für Data Guard gewünschten Regionen umfassen. Für eine robuste DR-Konfiguration sollten Sie die primäre und die Standby-Datenbank an verschiedenen geografischen Standorten platzieren, die größere Katastrophen in einer lokalen Region tolerieren können.

  3. Stellen Sie über die Google Cloud-Portalkonsole vier Linux-VM-Instanzen der Google Compute Engine bereit: eine als primären Oracle-DB-Server, eine als Standby-Oracle-DB-Server, einen Klon-Ziel-DB-Server und einen Oracle Data Guard-Beobachter. Weitere Einzelheiten zur Umgebungseinrichtung finden Sie im Architekturdiagramm im vorherigen Abschnitt. Folgen Sie der Google-Dokumentation"Erstellen Sie eine Linux-VM-Instanz in Compute Engine" für detaillierte Anweisungen.

    Hinweis Stellen Sie sicher, dass Sie im Stammvolume der Azure-VMs mindestens 50 GB zugewiesen haben, um ausreichend Speicherplatz für die Bereitstellung der Oracle-Installationsdateien zu haben. Google Compute Engine-VMs sind standardmäßig auf Instanzebene gesperrt. Um die Kommunikation zwischen VMs zu ermöglichen, sollten spezielle Firewall-Regeln erstellt werden, um den Datenverkehr des TCP-Ports zu öffnen, beispielsweise den typischen Oracle-Port 1521.
  4. Stellen Sie über die Google Cloud-Portalkonsole zwei GCNV-Speicherpools bereit, um Oracle-Datenbankvolumes zu hosten. Verweis auf Dokumentation"Schnellstart: Erstellen eines Speicherpools" für schrittweise Anleitungen. Nachfolgend finden Sie einige Screenshots zur schnellen Referenz.

    Screenshot, der die GCNV-Umgebungskonfiguration zeigt. Screenshot, der die GCNV-Umgebungskonfiguration zeigt. Screenshot, der die GCNV-Umgebungskonfiguration zeigt. Screenshot, der die GCNV-Umgebungskonfiguration zeigt.

  5. Erstellen Sie Datenbankvolumes in Speicherpools. Verweis auf Dokumentation"Schnellstart: Erstellen eines Volumes" für schrittweise Anleitungen. Nachfolgend finden Sie einige Screenshots zur schnellen Referenz.

    Screenshot, der die GCNV-Umgebungskonfiguration zeigt. Screenshot, der die GCNV-Umgebungskonfiguration zeigt. Screenshot, der die GCNV-Umgebungskonfiguration zeigt. Screenshot, der die GCNV-Umgebungskonfiguration zeigt. Screenshot, der die GCNV-Umgebungskonfiguration zeigt. Screenshot, der die GCNV-Umgebungskonfiguration zeigt.

  6. 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. Hilfe zur Installation und Konfiguration der Oracle-Grid-Infrastruktur und -Datenbank mit NFS/ASM finden Sie unter TR-4974. Obwohl die Lösung in der AWS FSx/EC2-Umgebung validiert ist, kann sie gleichermaßen auf die Google GCNV/Compute Engine-Umgebung angewendet werden.

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 DB-Server mit acht NFS-Mount-Punkten eingerichtet: /u01 für die Oracle-Binärdatei, /u02, /u03, /u04, /u05, /u06, /u07 für die Oracle-Datendateien und Lastausgleich mit der Oracle ASM-Datenträgergruppe +DATA; /u08 für die aktiven Oracle-Protokolle, archivierten Protokolldateien und Lastausgleich mit der Oracle ASM-Datenträgergruppe +LOGS. Aus Redundanzgründen werden Oracle-Steuerdateien sowohl auf den Datenträgergruppen +DATA als auch +LOGS abgelegt. Dieser Aufbau dient als Referenzkonfiguration. Bei Ihrer tatsächlichen Bereitstellung sollten Sie Ihre spezifischen Bedürfnisse und Anforderungen hinsichtlich der Größe des Speicherpools, 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 in TR-5002 –"Kostensenkung für Oracle Active Data Guard mit Azure NetApp Files" . Obwohl die Verfahren in TR-5002 in der Azure ANF-Umgebung validiert wurden, sind sie gleichermaßen auf die Google GCNV-Umgebung anwendbar.

Im Folgenden werden die Details einer primären Oracle VLDB in einer Data Guard-Konfiguration in einer Google GCNV-Umgebung veranschaulicht.

  1. Die primäre Datenbank NTAP im primären Compute Engine-DB-Server wird als Einzelinstanzdatenbank in einer eigenständigen Neustartkonfiguration auf dem GCNV-Speicher mit NFS-Protokoll und ASM als Datenbank-Speichervolume-Manager bereitgestellt.

    orap.us-east4-a.c.cvs-pm-host-1p.internal:
    Zone: us-east-4a
    size: n1-standard-4 (4 vCPUs, 15 GB Memory)
    OS: Linux (redhat 8.10)
    pub_ip: 35.212.124.14
    pri_ip: 10.70.11.5
    
    [oracle@orap ~]$ df -h
    Filesystem                Size  Used Avail Use% Mounted on
    devtmpfs                  7.2G     0  7.2G   0% /dev
    tmpfs                     7.3G     0  7.3G   0% /dev/shm
    tmpfs                     7.3G  8.5M  7.2G   1% /run
    tmpfs                     7.3G     0  7.3G   0% /sys/fs/cgroup
    /dev/sda2                  50G   40G   11G  80% /
    /dev/sda1                 200M  5.9M  194M   3% /boot/efi
    10.165.128.180:/orap-u05  250G  201G   50G  81% /u05
    10.165.128.180:/orap-u08  400G  322G   79G  81% /u08
    10.165.128.180:/orap-u04  250G  201G   50G  81% /u04
    10.165.128.180:/orap-u07  250G  201G   50G  81% /u07
    10.165.128.180:/orap-u02  250G  201G   50G  81% /u02
    10.165.128.180:/orap-u06  250G  201G   50G  81% /u06
    10.165.128.180:/orap-u01  100G   21G   80G  21% /u01
    10.165.128.180:/orap-u03  250G  201G   50G  81% /u03
    
    
    [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
  2. 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        ONLINE  ONLINE       orap                     Open,HOME=/u01/app/o
                                                                 racle/product/19.0.0
                                                                 /NTAP,STABLE
    --------------------------------------------------------------------------------
    [oracle@orap ~]$
  3. 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   1228800  1219888                0         1219888              0             N  DATA/
    MOUNTED  EXTERN  N         512             512   4096  4194304    327680   326556                0          326556              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/oradata/asm/orap_data_disk_05
    /u03/oradata/asm/orap_data_disk_06
    /u03/oradata/asm/orap_data_disk_07
    /u03/oradata/asm/orap_data_disk_08
    /u04/oradata/asm/orap_data_disk_09
    /u04/oradata/asm/orap_data_disk_10
    /u04/oradata/asm/orap_data_disk_11
    /u04/oradata/asm/orap_data_disk_12
    /u05/oradata/asm/orap_data_disk_13
    /u05/oradata/asm/orap_data_disk_14
    /u05/oradata/asm/orap_data_disk_15
    /u05/oradata/asm/orap_data_disk_16
    /u06/oradata/asm/orap_data_disk_17
    /u06/oradata/asm/orap_data_disk_18
    /u06/oradata/asm/orap_data_disk_19
    /u06/oradata/asm/orap_data_disk_20
    /u07/oradata/asm/orap_data_disk_21
    /u07/oradata/asm/orap_data_disk_22
    /u07/oradata/asm/orap_data_disk_23
    /u07/oradata/asm/orap_data_disk_24
    /u08/oralogs/asm/orap_logs_disk_01
    /u08/oralogs/asm/orap_logs_disk_02
    /u08/oralogs/asm/orap_logs_disk_03
    /u08/oralogs/asm/orap_logs_disk_04
    ASMCMD>
  4. 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.cvs-pm-host-1p.interna
    
    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
  5. 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.1198026005
    +DATA/NTAP/DATAFILE/sysaux.258.1198026051
    +DATA/NTAP/DATAFILE/undotbs1.259.1198026075
    +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/system.266.1198027075
    +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/sysaux.267.1198027075
    +DATA/NTAP/DATAFILE/users.260.1198026077
    +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/undotbs1.268.1198027075
    +DATA/NTAP/32639B76C9BC91A8E063050B460A2116/DATAFILE/system.272.1198028157
    +DATA/NTAP/32639B76C9BC91A8E063050B460A2116/DATAFILE/sysaux.273.1198028157
    +DATA/NTAP/32639B76C9BC91A8E063050B460A2116/DATAFILE/undotbs1.271.1198028157
    +DATA/NTAP/32639B76C9BC91A8E063050B460A2116/DATAFILE/users.275.1198028185
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP/32639D40D02D925FE063050B460A60E3/DATAFILE/system.277.1198028187
    +DATA/NTAP/32639D40D02D925FE063050B460A60E3/DATAFILE/sysaux.278.1198028187
    +DATA/NTAP/32639D40D02D925FE063050B460A60E3/DATAFILE/undotbs1.276.1198028187
    +DATA/NTAP/32639D40D02D925FE063050B460A60E3/DATAFILE/users.280.1198028209
    +DATA/NTAP/32639E973AF79299E063050B460AFBAD/DATAFILE/system.282.1198028209
    +DATA/NTAP/32639E973AF79299E063050B460AFBAD/DATAFILE/sysaux.283.1198028209
    +DATA/NTAP/32639E973AF79299E063050B460AFBAD/DATAFILE/undotbs1.281.1198028209
    +DATA/NTAP/32639E973AF79299E063050B460AFBAD/DATAFILE/users.285.1198028229
    
    19 rows selected.
    
    
    SQL> select member from v$logfile;
    
    MEMBER
    --------------------------------------------------------------------------------
    +DATA/NTAP/ONLINELOG/group_3.264.1198026139
    +LOGS/NTAP/ONLINELOG/group_3.259.1198026147
    +DATA/NTAP/ONLINELOG/group_2.263.1198026137
    +LOGS/NTAP/ONLINELOG/group_2.258.1198026145
    +DATA/NTAP/ONLINELOG/group_1.262.1198026137
    +LOGS/NTAP/ONLINELOG/group_1.257.1198026145
    +DATA/NTAP/ONLINELOG/group_4.286.1198511423
    +LOGS/NTAP/ONLINELOG/group_4.265.1198511425
    +DATA/NTAP/ONLINELOG/group_5.287.1198511445
    +LOGS/NTAP/ONLINELOG/group_5.266.1198511447
    +DATA/NTAP/ONLINELOG/group_6.288.1198511459
    
    MEMBER
    --------------------------------------------------------------------------------
    +LOGS/NTAP/ONLINELOG/group_6.267.1198511461
    +DATA/NTAP/ONLINELOG/group_7.289.1198511477
    +LOGS/NTAP/ONLINELOG/group_7.268.1198511479
    
    14 rows selected.
    
    
    SQL> select name from v$controlfile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP/CONTROLFILE/current.261.1198026135
    +LOGS/NTAP/CONTROLFILE/current.256.1198026135
  6. Oracle-Listener-Konfiguration.

    lsnrctl status listener
    [oracle@orap admin]$ lsnrctl status
    
    LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 15-APR-2025 16:14:00
    
    Copyright (c) 1991, 2022, Oracle.  All rights reserved.
    
    Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
    STATUS of the LISTENER
    ------------------------
    Alias                     LISTENER
    Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
    Start Date                14-APR-2025 19:44:21
    Uptime                    0 days 20 hr. 29 min. 38 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Parameter File   /u01/app/oracle/product/19.0.0/grid/network/admin/listener.ora
    Listener Log File         /u01/app/oracle/diag/tnslsnr/orap/listener/alert/log.xml
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=orap.us-east4-a.c.cvs-pm-host-1p.internal)(PORT=1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
    Services Summary...
    Service "+ASM" has 1 instance(s).
      Instance "+ASM", status READY, has 1 handler(s) for this service...
    Service "+ASM_DATA" has 1 instance(s).
      Instance "+ASM", status READY, has 1 handler(s) for this service...
    Service "+ASM_LOGS" has 1 instance(s).
      Instance "+ASM", status READY, has 1 handler(s) for this service...
    Service "32639b76c9bc91a8e063050b460a2116.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "32639d40d02d925fe063050b460a60e3.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "32639e973af79299e063050b460afbad.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "86b637b62fdf7a65e053f706e80a27ca.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "NTAPXDB.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "NTAP_NY_DGMGRL.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status UNKNOWN, has 1 handler(s) for this service...
    Service "ntap.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "ntap_pdb1.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "ntap_pdb2.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "ntap_pdb3.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    The command completed successfully
  7. Flashback ist in der primären Datenbank aktiviert.

    SQL> select name, database_role, flashback_on from v$database;
    
    NAME      DATABASE_ROLE    FLASHBACK_ON
    --------- ---------------- ------------------
    NTAP      PRIMARY          YES
  8. dNFS-Konfiguration auf primärer Datenbank.

    SQL> select svrname, dirname from v$dnfs_servers;
    
    SVRNAME
    --------------------------------------------------------------------------------
    DIRNAME
    --------------------------------------------------------------------------------
    10.165.128.180
    /orap-u04
    
    10.165.128.180
    /orap-u05
    
    10.165.128.180
    /orap-u07
    
    
    SVRNAME
    --------------------------------------------------------------------------------
    DIRNAME
    --------------------------------------------------------------------------------
    10.165.128.180
    /orap-u03
    
    10.165.128.180
    /orap-u06
    
    10.165.128.180
    /orap-u02
    
    
    SVRNAME
    --------------------------------------------------------------------------------
    DIRNAME
    --------------------------------------------------------------------------------
    10.165.128.180
    /orap-u08
    
    10.165.128.180
    /orap-u01
    
    
    8 rows selected.

Damit ist die Demonstration eines Data Guard-Setups für VLDB NTAP am primären Standort auf GCNV 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 in der Google GCNV-Umgebung veranschaulicht.

  1. Die Standby-Oracle-DB-Serverkonfiguration am Standby-Standort im Demolabor.

    oras.us-west4-a.c.cvs-pm-host-1p.internal:
    Zone: us-west4-a
    size: n1-standard-4 (4 vCPUs, 15 GB Memory)
    OS: Linux (redhat 8.10)
    pub_ip: 35.219.129.195
    pri_ip: 10.70.14.16
    
    [oracle@oras ~]$ df -h
    Filesystem                Size  Used Avail Use% Mounted on
    devtmpfs                  7.2G     0  7.2G   0% /dev
    tmpfs                     7.3G  1.1G  6.2G  16% /dev/shm
    tmpfs                     7.3G  8.5M  7.2G   1% /run
    tmpfs                     7.3G     0  7.3G   0% /sys/fs/cgroup
    /dev/sda2                  50G   40G   11G  80% /
    /dev/sda1                 200M  5.9M  194M   3% /boot/efi
    10.165.128.197:/oras-u07  250G  201G   50G  81% /u07
    10.165.128.197:/oras-u06  250G  201G   50G  81% /u06
    10.165.128.197:/oras-u02  250G  201G   50G  81% /u02
    10.165.128.196:/oras-u03  250G  201G   50G  81% /u03
    10.165.128.196:/oras-u01  100G   20G   81G  20% /u01
    10.165.128.197:/oras-u05  250G  201G   50G  81% /u05
    10.165.128.197:/oras-u04  250G  201G   50G  81% /u04
    10.165.128.197:/oras-u08  400G  317G   84G  80% /u08
    
    [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
  2. 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
    --------------------------------------------------------------------------------
  3. 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   1228800  1228420                0         1228420              0             N  DATA/
    MOUNTED  EXTERN  N         512             512   4096  4194304    322336   322204                0          322204              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/oradata/asm/oras_data_disk_05
    /u03/oradata/asm/oras_data_disk_06
    /u03/oradata/asm/oras_data_disk_07
    /u03/oradata/asm/oras_data_disk_08
    /u04/oradata/asm/oras_data_disk_09
    /u04/oradata/asm/oras_data_disk_10
    /u04/oradata/asm/oras_data_disk_11
    /u04/oradata/asm/oras_data_disk_12
    /u05/oradata/asm/oras_data_disk_13
    /u05/oradata/asm/oras_data_disk_14
    /u05/oradata/asm/oras_data_disk_15
    /u05/oradata/asm/oras_data_disk_16
    /u06/oradata/asm/oras_data_disk_17
    /u06/oradata/asm/oras_data_disk_18
    /u06/oradata/asm/oras_data_disk_19
    /u06/oradata/asm/oras_data_disk_20
    /u07/oradata/asm/oras_data_disk_21
    /u07/oradata/asm/oras_data_disk_22
    /u07/oradata/asm/oras_data_disk_23
    /u07/oradata/asm/oras_data_disk_24
    /u08/oralogs/asm/oras_logs_disk_01
    /u08/oralogs/asm/oras_logs_disk_02
    /u08/oralogs/asm/oras_logs_disk_03
    /u08/oralogs/asm/oras_logs_disk_04
    ASMCMD>
  4. 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.cvs-pm-host-1p.interna
                                                     l
    
    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
  5. 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.1198520347
    +DATA/NTAP_LA/DATAFILE/sysaux.262.1198520373
    +DATA/NTAP_LA/DATAFILE/undotbs1.263.1198520399
    +DATA/NTAP_LA/32635CC1DCF58A60E063050B460AB746/DATAFILE/system.264.1198520417
    +DATA/NTAP_LA/32635CC1DCF58A60E063050B460AB746/DATAFILE/sysaux.265.1198520435
    +DATA/NTAP_LA/DATAFILE/users.266.1198520451
    +DATA/NTAP_LA/32635CC1DCF58A60E063050B460AB746/DATAFILE/undotbs1.267.1198520455
    +DATA/NTAP_LA/32639B76C9BC91A8E063050B460A2116/DATAFILE/system.268.1198520471
    +DATA/NTAP_LA/32639B76C9BC91A8E063050B460A2116/DATAFILE/sysaux.269.1198520489
    +DATA/NTAP_LA/32639B76C9BC91A8E063050B460A2116/DATAFILE/undotbs1.270.1198520505
    +DATA/NTAP_LA/32639B76C9BC91A8E063050B460A2116/DATAFILE/users.271.1198520513
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP_LA/32639D40D02D925FE063050B460A60E3/DATAFILE/system.272.1198520517
    +DATA/NTAP_LA/32639D40D02D925FE063050B460A60E3/DATAFILE/sysaux.273.1198520533
    +DATA/NTAP_LA/32639D40D02D925FE063050B460A60E3/DATAFILE/undotbs1.274.1198520551
    +DATA/NTAP_LA/32639D40D02D925FE063050B460A60E3/DATAFILE/users.275.1198520559
    +DATA/NTAP_LA/32639E973AF79299E063050B460AFBAD/DATAFILE/system.276.1198520563
    +DATA/NTAP_LA/32639E973AF79299E063050B460AFBAD/DATAFILE/sysaux.277.1198520579
    +DATA/NTAP_LA/32639E973AF79299E063050B460AFBAD/DATAFILE/undotbs1.278.1198520595
    +DATA/NTAP_LA/32639E973AF79299E063050B460AFBAD/DATAFILE/users.279.1198520605
    
    19 rows selected.
    
    
    SQL> select name from v$controlfile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP_LA/CONTROLFILE/current.260.1198520303
    +LOGS/NTAP_LA/CONTROLFILE/current.257.1198520305
    
    
    SQL> select group#, type, member from v$logfile order by 2, 1;
    
        GROUP# TYPE    MEMBER
    ---------- ------- ------------------------------------------------------------
             1 ONLINE  +DATA/NTAP_LA/ONLINELOG/group_1.280.1198520649
             1 ONLINE  +LOGS/NTAP_LA/ONLINELOG/group_1.259.1198520651
             2 ONLINE  +DATA/NTAP_LA/ONLINELOG/group_2.281.1198520659
             2 ONLINE  +LOGS/NTAP_LA/ONLINELOG/group_2.258.1198520661
             3 ONLINE  +DATA/NTAP_LA/ONLINELOG/group_3.282.1198520669
             3 ONLINE  +LOGS/NTAP_LA/ONLINELOG/group_3.260.1198520671
             4 STANDBY +DATA/NTAP_LA/ONLINELOG/group_4.283.1198520677
             4 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_4.261.1198520679
             5 STANDBY +DATA/NTAP_LA/ONLINELOG/group_5.284.1198520687
             5 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_5.262.1198520689
             6 STANDBY +DATA/NTAP_LA/ONLINELOG/group_6.285.1198520697
    
        GROUP# TYPE    MEMBER
    ---------- ------- ------------------------------------------------------------
             6 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_6.263.1198520699
             7 STANDBY +DATA/NTAP_LA/ONLINELOG/group_7.286.1198520707
             7 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_7.264.1198520709
    
    14 rows selected.
  6. Überprüfen Sie den Wiederherstellungsstatus der Standby-Datenbank. Beachten Sie die recovery logmerger In APPLYING_LOG Aktion.

    SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;
    
    ROLE                        THREAD#  SEQUENCE# ACTION
    ------------------------ ---------- ---------- ------------
    post role transition              0          0 IDLE
    recovery apply slave              0          0 IDLE
    recovery apply slave              0          0 IDLE
    recovery apply slave              0          0 IDLE
    recovery apply slave              0          0 IDLE
    recovery logmerger                1         24 APPLYING_LOG
    managed recovery                  0          0 IDLE
    RFS ping                          1         24 IDLE
    archive redo                      0          0 IDLE
    archive redo                      0          0 IDLE
    gap manager                       0          0 IDLE
    
    ROLE                        THREAD#  SEQUENCE# ACTION
    ------------------------ ---------- ---------- ------------
    archive local                     0          0 IDLE
    redo transport timer              0          0 IDLE
    archive redo                      0          0 IDLE
    RFS async                         1         24 IDLE
    redo transport monitor            0          0 IDLE
    log writer                        0          0 IDLE
    
    17 rows selected.
  7. Flashback ist in der Standby-Datenbank aktiviert.

    SQL> select name, database_role, flashback_on from v$database;
    
    NAME      DATABASE_ROLE    FLASHBACK_ON
    --------- ---------------- ------------------
    NTAP      PHYSICAL STANDBY YES
  8. dNFS-Konfiguration auf Standby-DB.

SQL> select svrname, dirname from v$dnfs_servers;

SVRNAME
--------------------------------------------------------------------------------
DIRNAME
--------------------------------------------------------------------------------
10.165.128.197
/oras-u04

10.165.128.197
/oras-u05

10.165.128.197
/oras-u06

10.165.128.197
/oras-u07

10.165.128.197
/oras-u02

10.165.128.197
/oras-u08

10.165.128.196
/oras-u03

10.165.128.196
/oras-u01


8 rows selected.

Damit ist die Demonstration eines Data Guard-Setups für VLDB NTAP mit aktivierter verwalteter Standby-Wiederherstellung am Standby-Standort abgeschlossen.

Richten Sie Data Guard Broker und FSFO mit einem Observer ein

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.

  1. 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;
  2. 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>
  3. 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)
  4. Validieren Sie den Datenbankstatus im Data Guard Broker-Verwaltungsframework.

    DGMGRL> show database ntap_ny;
    
    Database - ntap_ny
    
      Role:               PRIMARY
      Intended State:     TRANSPORT-ON
      Instance(s):
        NTAP
    
    Database Status:
    SUCCESS
    
    
    DGMGRL> show database ntap_la;
    
    Database - ntap_la
    
      Role:               PHYSICAL STANDBY
      Intended State:     APPLY-ON
      Transport Lag:      0 seconds (computed 0 seconds ago)
      Apply Lag:          0 seconds (computed 0 seconds ago)
      Average Apply Rate: 3.00 KByte/s
      Real Time Query:    OFF
      Instance(s):
        NTAP
    
    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.

Konfigurieren Sie FSFO mit einem Beobachter

Details

Optional kann Fast Start Fail Over (FSFO) für Data Guard Broker aktiviert werden, um im Falle eines Fehlers automatisch ein Failover der primären Datenbank auf die Standby-Datenbank durchzuführen. Im Folgenden finden Sie die Verfahren zum Einrichten von FSFO mit einer Beobachterinstanz.

  1. Erstellen Sie eine leichte Google Compute Engine-Instanz, um Observer in einer anderen Zone als dem primären oder Standby-DB-Server auszuführen. Im Testfall haben wir eine N1-Instanz mit 2 vCPUs und 7,5 GB Speicher verwendet. Auf dem Host muss dieselbe Version von Oracle installiert sein.

  2. Melden Sie sich als Oracle-Benutzer an und legen Sie die Oracle-Umgebung im Oracle-Benutzerprofil .bash_profile fest.

    vi ~/.bash_profile
    # .bash_profile
    
    # Get the aliases and functions
    if [ -f ~/.bashrc ]; then
            . ~/.bashrc
    fi
    
    # User specific environment and startup programs
    
    export ORACLE_HOME=/u01/app/oracle/product/19.0.0/NTAP
    export PATH=$ORACLE_HOME/bin:$PATH
  3. Fügen Sie der Datei tnsname.ora TNS-Namenseinträge für die primäre und Standby-DB hinzu.

    vi $ORACLE_HOME/network/admin/tsnames.ora
    NTAP_NY =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = orap.us-east4-a.c.cvs-pm-host-1p.internal)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = NTAP_NY.cvs-pm-host-1p.internal)
          (UR=A)
        )
      )
    
    NTAP_LA =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oras.us-west4-a.c.cvs-pm-host-1p.internal)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = NTAP_LA.cvs-pm-host-1p.internal)
          (UR=A)
        )
      )
  4. Erstellen und initialisieren Sie eine Brieftasche mit einem Passwort.

    mkdir -p /u01/app/oracle/admin/NTAP/wallet
    mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -create
    [oracle@orao NTAP]$ mkdir -p /u01/app/oracle/admin/NTAP/wallet
    [oracle@orao NTAP]$ mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -create
    Oracle Secret Store Tool Release 19.0.0.0.0 - Production
    Version 19.4.0.0.0
    Copyright (c) 2004, 2022, Oracle and/or its affiliates. All rights reserved.
    
    Enter password:
    Enter password again:
    [oracle@orao NTAP]$
  5. Aktivieren Sie die kennwortlose Authentifizierung für Benutzersysteme sowohl der primären als auch der Standby-Datenbank. Geben Sie zuerst das Sys-Passwort und dann das Wallet-Passwort aus dem vorherigen Schritt ein.

    mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -createCredential NTAP_NY sys

    mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -createCredential NTAP_LA sys

    [oracle@orao NTAP]$ mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -createCredential NTAP_NY sys
    Oracle Secret Store Tool Release 19.0.0.0.0 - Production
    Version 19.4.0.0.0
    Copyright (c) 2004, 2022, Oracle and/or its affiliates. All rights reserved.
    
    Your secret/Password is missing in the command line
    Enter your secret/Password:
    Re-enter your secret/Password:
    Enter wallet password:
    [oracle@orao NTAP]$ mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -createCredential NTAP_LA sys
    Oracle Secret Store Tool Release 19.0.0.0.0 - Production
    Version 19.4.0.0.0
    Copyright (c) 2004, 2022, Oracle and/or its affiliates. All rights reserved.
    
    Your secret/Password is missing in the command line
    Enter your secret/Password:
    Re-enter your secret/Password:
    Enter wallet password:
    [oracle@orao NTAP]$
  6. Aktualisieren Sie sqlnet.ora mit dem Wallet-Speicherort.

    vi $ORACLE_HOME/network/admin/sqlnet.ora
    WALLET_LOCATION =
       (SOURCE =
          (METHOD = FILE)
          (METHOD_DATA = (DIRECTORY = /u01/app/oracle/admin/NTAP/wallet))
    )
    SQLNET.WALLET_OVERRIDE = TRUE
  7. Bestätigen Sie die Anmeldeinformationen.

    mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -listCredential
    sqlplus /@NTAP_LA as sysdba
    sqlplus /@NTAP_NY as sysdba
    [oracle@orao NTAP]$ mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -listCredential
    Oracle Secret Store Tool Release 19.0.0.0.0 - Production
    Version 19.4.0.0.0
    Copyright (c) 2004, 2022, Oracle and/or its affiliates. All rights reserved.
    
    Enter wallet password:
    List credential (index: connect_string username)
    2: NTAP_LA sys
    1: NTAP_NY sys
  8. Konfigurieren und aktivieren Sie Fast-Start Failover.

    mkdir /u01/app/oracle/admin/NTAP/fsfo
    dgmgrl
    Welcome to DGMGRL, type "help" for information.
    DGMGRL> connect /@NTAP_NY
    Connected to "ntap_ny"
    Connected as SYSDBA.
    DGMGRL> show configuration;
    
    Configuration - dg_config
    
      Protection Mode: MaxAvailability
      Members:
      ntap_ny - Primary database
        ntap_la - Physical standby database
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 58 seconds ago)
    
    DGMGRL> enable fast_start failover;
    Enabled in Zero Data Loss Mode.
    DGMGRL> show configuration;
    
    Configuration - dg_config
    
      Protection Mode: MaxAvailability
      Members:
      ntap_ny - Primary database
        Warning: ORA-16819: fast-start failover observer not started
    
        ntap_la - (*) Physical standby database
    
    Fast-Start Failover: Enabled in Zero Data Loss Mode
    
    Configuration Status:
    WARNING   (status updated 43 seconds ago)
  9. Starten und validieren Sie den Beobachter.

    nohup dgmgrl /@NTAP_NY "start observer file='/u01/app/oracle/admin/NTAP/fsfo/fsfo.dat'" >> /u01/app/oracle/admin/NTAP/fsfo/dgmgrl.log &
    [oracle@orao NTAP]$ nohup dgmgrl /@NTAP_NY "start observer file='/u01/app/oracle/admin/NTAP/fsfo/fsfo.dat'" >> /u01/app/oracle/admin/NTAP/fsfo/dgmgrl.log &
    [1] 94957
    
    [oracle@orao fsfo]$ dgmgrl
    DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Apr 16 21:12:09 2025
    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.
    DGMGRL> connect /@NTAP_NY
    Connected to "ntap_ny"
    Connected as SYSDBA.
    DGMGRL> show configuration verbose;
    
    Configuration - dg_config
    
      Protection Mode: MaxAvailability
      Members:
      ntap_ny - Primary database
        ntap_la - (*) Physical standby database
    
      (*) Fast-Start Failover target
    
      Properties:
        FastStartFailoverThreshold      = '30'
        OperationTimeout                = '30'
        TraceLevel                      = 'USER'
        FastStartFailoverLagLimit       = '30'
        CommunicationTimeout            = '180'
        ObserverReconnect               = '0'
        FastStartFailoverAutoReinstate  = 'TRUE'
        FastStartFailoverPmyShutdown    = 'TRUE'
        BystandersFollowRoleChange      = 'ALL'
        ObserverOverride                = 'FALSE'
        ExternalDestination1            = ''
        ExternalDestination2            = ''
        PrimaryLostWriteAction          = 'CONTINUE'
        ConfigurationWideServiceName    = 'ntap_CFG'
    
    Fast-Start Failover: Enabled in Zero Data Loss Mode
      Lag Limit:          30 seconds (not in use)
      Threshold:          30 seconds
      Active Target:      ntap_la
      Potential Targets:  "ntap_la"
        ntap_la    valid
      Observer:           orao
      Shutdown Primary:   TRUE
      Auto-reinstate:     TRUE
      Observer Reconnect: (none)
      Observer Override:  FALSE
    
    Configuration Status:
    SUCCESS
    
    DGMGRL>
Hinweis Um einen Datenverlust zu vermeiden, muss der Oracle Data Guard-Schutzmodus auf MaxAvailability oder MaxProtection Modus. Der Standardschutzmodus von MaxPerformance kann über die Data Guard Broker-Schnittstelle geändert werden, indem die Data Guard-Konfiguration bearbeitet und geändert wird LogXptMode von ASYNC zu SYNC. Der Protokollmodus des Oracle-Archivprotokollziels muss entsprechend geändert werden. Wenn die Echtzeit-Protokollanwendung für Data Guard aktiviert ist, wie erforderlich für MaxAvailability , vermeiden Sie den automatischen Neustart der Datenbank, da ein automatischer Datenbankneustart die Standby-Datenbank versehentlich öffnen kann READ ONLY WITH APPLY Modus, der eine Active Data Guard-Lizenz erfordert. Starten Sie die Datenbank stattdessen manuell, um sicherzustellen, dass sie in einem MOUNT Zustand mit verwalteter Wiederherstellung in Echtzeit.

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 mit NFS/ASM-Konfiguration auf GCNV bereitgestellt wird, um ein vollständiges Klon-Lebenszyklusmanagement zu gewährleisten.

https://bitbucket.ngage.netapp.com/projects/NS-BB/repos/na_oracle_clone_gcnv/browse
Hinweis 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. Siehe"Automatisierter Oracle-Klon-Lebenszyklus auf GCNV mit ASM" für Gebrauchsanweisungen.

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: