Informationen zum Konfigurieren einer Standbydatenbank für Disaster Recovery

Oracle Data Guard gewährleistet High Availability, Datenschutz und Disaster Recovery für Unternehmensdaten in einer Oracle Database. Oracle Data Guard stellt ein umfassendes Set von Services bereit, mit denen eine oder mehrere Standby-Datenbanken erstellt, verwaltet und überwacht werden, damit Oracle-Produktionsdatenbanken Katastrophen und Datenbeschädigungen überleben können.

Oracle Data Guard verwaltet diese Standbydatenbanken als Kopien der Produktionsdatenbank. Wenn die Produktionsdatenbank aufgrund eines geplanten oder ungeplanten Ausfalls nicht verfügbar ist, kann Oracle Data Guard jede Standbydatenbank in die Produktionsrolle umschalten und so die Ausfallzeit des Ausfalls minimieren.

Architektur

Diese Architektur zeigt eine Oracle Data Guard-Konfiguration mit einer primären Datenbank, die Redo-Daten an eine Standbydatenbank überträgt. Die Standbydatenbank ist für Disaster Recovery- und Backupvorgänge aus der Primärdatenbank entfernt.

Beschreibung von dataguard-dr-db.png folgt
Beschreibung der Abbildung dataguard-dr-db.png

dataguard-dr_db-oracle.zip

Oracle Data Guard verwaltet mit Redo Transport Services und Apply Services die Übertragung von Redo-Daten, die Anwendung von Redo-Daten und Änderungen an den Datenbankrollen.

Diese Architektur unterstützt die folgenden Oracle Data Guard-Komponenten:

  • Redo-Transport Services

    Redo Transport Services steuern die automatisierte Übertragung von Redo-Daten aus der Produktionsdatenbank an ein oder mehrere Archivierungsziele.

    Redo Transport Services führen die folgenden Aufgaben aus:

    • Übertragen Sie Redo-Daten vom primären System an die Standby-Systeme in der Konfiguration.
    • Verwalten Sie, wie Lücken in den archivierten Redo Log-Dateien aufgrund eines Netzwerkfehlers behoben werden.
    • Erkennen Sie fehlende oder beschädigte archivierte Redo Log-Dateien automatisch auf einem Standby-System, und rufen Sie die archivierten Ersatz Redo Log-Dateien automatisch aus der primären Datenbank oder einer anderen Standby-Datenbank ab.
  • Services anwenden

    Wenden Sie Services automatisch die Redo-Daten auf der Standbydatenbank an, um die Konsistenz mit der Primärdatenbank zu gewährleisten.

    Die Redo-Daten werden von der primären Datenbank übertragen und in das Standby Redo Log in der Standby-Datenbank geschrieben. Redo-Daten werden direkt aus Standby Redo Log-Dateien angewendet, da sie mit Echtzeit-Apply gefüllt werden. Apply Services ermöglicht auch den schreibgeschützten Zugriff auf die Daten.

  • Rollenübergänge
    Mit Oracle Data Guard können Sie die Rolle einer Datenbank von einer Standbydatenbank in eine Primärdatenbank oder von einer Primärdatenbank in eine Standbydatenbank mit einem Switchover- oder Failover-Vorgang ändern. Oracle Data Guard vereinfacht Rollenübergänge und automatisiert Failover.
    • Ein Switchover ist eine Rollenumkehr zwischen der primären Datenbank und einer ihrer Standby-Datenbanken. Ein Switchover erfolgt ohne Datenverlust. Dies geschieht in der Regel für die geplante Wartung des primären Systems. Während eines Switchovers wechselt die primäre Datenbank zu einer Standby-Rolle, und die Standby-Datenbank geht in die primäre Rolle über.
    • Ein Failover tritt auf, wenn die Primärdatenbank nicht verfügbar ist. Ein Failover wird nur bei einem Ausfall der Primärdatenbank ausgeführt, und das Failover führt zu einem Übergang einer Standby-Datenbank zur Primärrolle. Der Datenbankadministrator kann Oracle Data Guard so konfigurieren, dass keine Daten verloren gehen.

Bei der Konfiguration von Oracle Data Guard sind mehrere manuelle Schritte erforderlich, darunter:

  • Vorbereiten der Primärdatenbank mit den empfohlenen Parametern
  • TNS-Aliasnamen in der primären und Standbyumgebung vorbereiten
  • Physische Standby-Datenbank als Duplizierung der primären Datenbank erstellen
  • Data Guard konfigurieren

Diese manuellen Schritte sind in mehreren Oracle-Dokumenten ausführlich dokumentiert. Dieses Playbook bietet eine Reihe von Skripten, mit denen Sie die meisten dieser Aktionen automatisieren können. Diese Skripte unterstützen die Konfiguration von Oracle Data Guard, indem eine Standbydatenbank für eine vorhandene Primärdatenbank eingerichtet wird. Die Skripte verwenden das Feature restore from service Oracle Recovery Manager (RMAN) und Oracle Data Guard Broker.

Bevor Sie beginnen

Bevor Sie Oracle Data Guard mit den in diesem Dokument bereitgestellten Skripten konfigurieren, prüfen Sie die folgenden Annahmen und Anforderungen:

  • Primärdatenbank ist bereits vorhanden.

  • Die Standby-Knoten sind bereits mit oder ohne eine vorhandene Datenbank vorhanden.

    Hinweis:

    Wenn sich bereits eine Datenbank im Standby-Verzeichnis befindet, werden die Skripte gelöscht, bevor die Standby-Datenbank neu erstellt wird.
  • Die Verbindung zwischen Primär- und Standbydatenbank erfolgt über den Listener-Port der Datenbank.

    • Bei Einzelinstanzdatenbanken muss eine bidirektionale Verbindung zwischen dem primären DB-Host und dem IP- und Port des Standby-Datenbank-Listeners bestehen.
    • Bei Oracle Real Application Clusters-(Oracle RAC-) Datenbanken muss eine bidirektionale Verbindung zwischen den primären DB-Hosts und den Scan- und VIP-IPs und -Ports der Standby-Datenbank bestehen.

    Die Skripte führen Konnektivitätsprüfungen aus, können aber die Remotekonnektivität mit dem Befehl nc -vw 5 -z IP PORT verifizieren.

  • Oracle Automatic Storage Management (Oracle ASM) wird für Datendateien, Kontrolldateien, Online Redo Log-Dateien und Archive Redo Log-Dateien verwendet.

    • Bei Einzelinstanzdatenbanken können sich die Kennwortdatei und die spfile in regulären Dateisystemen oder in Oracle ASM befinden.
    • Bei Oracle RAC-Datenbanken müssen sich die Kennwortdatei und die spfile in Oracle ASM befinden.
  • Die Primär- und die Standbydatenbank werden von Oracle Clusterware verwaltet (Oracle Grid Infrastructure muss installiert sein, da sowohl einzelne als auch Oracle RAC-Topologien srvctl verwenden).
  • Da Oracle Managed Files verwendet werden, müssen die Datenbankparameter db_create_file_dest, db_create_online_log_dest_1 und db_recovery_file_dest bereits in der primären Datenbank mit dem entsprechenden Verzeichnis der Oracle ASM-Datenträgergruppe definiert werden (wie +DATA oder +RECO).
  • Der Softwareeigentümer des relationalen Datenbankmanagementsystems (RDBMS) (z.B. oracle-Benutzer) legt die erforderlichen Oracle-Umgebungsvariablen (ORACLE_HOME, LD_LIBRARY_PATH, PATH, ORACLE_UNQNAME und ORACLE_SID) in seinem Profil fest.
  • Es wird davon ausgegangen, dass eine symmetrische Topologie verwendet wird (d.h. wenn es sich bei der primären Datenbank um eine einzelne DB handelt, handelt es sich bei der Standby-Datenbank um eine einzelne DB. Wenn es sich bei der primären Datenbank um eine Oracle RAC-Datenbank handelt, handelt es sich bei der Standby-Datenbank um eine Oracle RAC-Datenbank).
  • Wenn die Datenbanken Oracle RAC sind, wird davon ausgegangen, dass jede Oracle RAC über 2 Knoten verfügt.
  • Die Skripte sind für die Konfiguration einer Standbydatenbank für eine Primärdatenbank gültig, die noch keine Standbydatenbank aufweist.
  • Die Skripte sind auch gültig, um einer vorhandenen Oracle Data Guard eine neue zusätzliche Standbydatenbank hinzuzufügen. Für dieses Szenario müssen Sie die Eigenschaft ADDITIONAL_STANDBY=YES in der Eigenschaftendatei verwenden. In diesem Fall wird die neue Standby-Datenbank der vorhandenen Data Guard Broker-Konfiguration hinzugefügt.

Informationen zu den Skriptfunktionen

Im Folgenden werden die Funktionen der Skripte aufgeführt:

  • Die Skripte sind idempotent: Sie können bei Fehlern erneut ausgeführt werden.
  • Die Betriebssystembenutzernamen (wie oracle und grid) und die Ordner (Database home und Grid home) können konfiguriert werden.
  • Bei den Oracle- und Grid BS-Benutzern kann es sich um denselben Benutzer oder um andere Benutzer handeln.
  • Transparente Datenverschlüsselung (TDE) für die Datenbankdateien ist optional: Die Skripte sind für beide Fälle gültig (TDE und kein TDE).

    Hinweis:

    Eine symmetrische Konfiguration wird ausgeführt: Wenn die Primärdatenbank TDE verwendet, wird die Standbydatenbank mit TDE konfiguriert. Wenn die Primärdatenbank TDE nicht verwendet, verwendet die Standbydatenbank TDE nicht.
  • Schreibgeschütztes Oracle Home (ROOH) wird unterstützt. Die Skripte sind darauf vorbereitet, automatisch in Umgebungen mit ROOH und "traditionellen" Oracle Homes zu arbeiten.
  • Die Skripte sind sowohl für Oracle RAC- als auch für Einzelinstanzumgebungen (in einer symmetrischen Topologie) gültig.
  • Die Skripte werden in den RDBMS-Versionen 12c (12.2), 18c, 19c und 21c validiert.
  • Die Skripte werden in Oracle Cloud Infrastructure (DB-Systeme) und in On-Premise-Umgebungen validiert.
  • Die Skripte wurden zur Konfiguration eines hybriden Oracle Data Guard validiert. Dabei ist die Primärdatenbank On Premise, und die Standbydatenbank ist ein DB-System in Oracle Cloud Infrastructure.

Informationen zu Skriptdateien

Im Folgenden werden die in dieser Lösung verwendeten Skriptdateien beschrieben:

  • 1_prepare_primary_maa_parameters.sh

    Stellt eine Verbindung zur primären Datenbank her und konfiguriert sie mit den empfohlenen Oracle Maximum Availability Architecture-(MAA-)Parametern für Oracle Data Guard. Er erstellt die Standby Redo Log-Dateien, legt die Werte für DB_BLOCK_CHECKSUM, DB_FLASHBACK_RETENTION_TARGET usw. fest. Dieses Skript wird nur einmal ausgeführt, unabhängig davon, ob es sich bei der primären Datenbank um eine Oracle Real Application Clusters-(Oracle RAC-) oder eine Einzelinstanzdatenbank handelt.

  • 2_dataguardit_primary.sh

    Bereitet die primären Hosts für Oracle Data Guard vor. Er fügt die erforderlichen TNS-Aliasnamen zur Datei tnsnames.ora hinzu, prüft die Konnektivität mit der Remote-Standby-Datenbank, konfiguriert die Netzverschlüsselung, falls sie noch nicht festgelegt ist, und generiert die Ausgabe-TAR-Dateien, die die primäre Kennwortdatei und das Transparente Datenverschlüsselungs-Wallet enthalten (sofern verwendet).

  • create_pw_tar_from_asm_root.sh

    Dieses Skript ist nicht immer erforderlich. Dies ist nur erforderlich, wenn die primäre Kennwortdatei in Oracle Automatic Storage Management (Oracle ASM) gespeichert ist. Es erstellt eine Ausgabe-TAR-Datei mit der Kennwortdatei.

  • 3_dataguardit_standby_root.sh

    Bereitet die neuen Standbyhosts vor und erstellt die Standbydatenbank mit dem Feature restore from service Oracle Recovery Manager (RMAN) und Oracle Data Guard Broker. Wenn auf diesen Hosts eine Datenbank vorhanden ist (entweder eine funktionierende Datenbank oder als Ergebnis eines vorherigen nicht erfolgreichen Skripts), werden die Skripte gelöscht, bevor die neue Datenbank als Standbydatenbank neu erstellt wird.

  • DG_properties.ini

    Dies ist die Eigenschaftsdatei, die mit den spezifischen Umgebungswerten angepasst werden muss. Er wird von allen Skripten sowohl in der primären als auch in der Standby-Datenbank verwendet.

Informationen zu erforderlichen Produkten und Rollen

Für diese Lösung sind die folgenden Rollen für die Primär- und die Standbydatenbank erforderlich:

Produktname: Rolle Erforderlich für...
Oracle Database: sys alle Skripte ausführen
Oracle Database-Host (primär): oracle BS-Benutzer mit Ausführungsberechtigungen die folgenden Skripts ausführen:
  • 1_prepare_primary_maa_parameters.sh
  • 2_dataguardit_primary.sh
Oracle Database-Host (primär): root Führen Sie das folgende Skript aus, wenn die primäre Kennwortdatei in ASM gespeichert ist: create_pw_tar_from_asm_root.sh
Oracle Database-Host (sekundär): root folgendes Skript ausführen:
  • 3_dataguardit_standby_root.sh

Unter Oracle-Produkte, -Lösungen und -Services erfahren Sie, was Sie benötigen.