Sichern und Wiederherstellen von Oracle Database auf einer Azure Linux-VM mit Azure Backup

Gilt für: ✔️ Linux-VMs

In diesem Artikel wird das Erstellen von Momentaufnahmen der Datenträger von virtuellen Maschinen (VM), einschließlich Oracle-Datenbankdateien und des schnellen Oracle-Wiederherstellungsbereichs (Fast Recovery Area), mithilfe von Azure Backup demonstriert. Mit Azure Backup können Sie vollständige Momentaufnahmen von Datenträgern erstellen, die sich als Sicherungen eignen und in einem Recovery Services-Tresor gespeichert werden.

Azure Backup ermöglicht auch anwendungskonsistente Sicherungen. So wird sichergestellt, dass zum Wiederherstellen der Daten keine zusätzlichen Korrekturen erforderlich sind. Anwendungskonsistente Sicherungen funktionieren sowohl mit Dateisystemdatenbanken als auch mit Datenbanken von Oracle Automatic Storage Management (AMS).

Durch die Wiederherstellung anwendungskonsistenter Daten wird die Wiederherstellungsdauer reduziert, sodass Sie schnell zum Zustand der normalen Ausführung zurückkehren können. Die Wiederherstellung der Oracle Database ist danach dennoch erforderlich. Sie erleichtern die Wiederherstellung mithilfe archivierter Oracle-Wiederholungsprotokolldateien, die in einer separaten Azure-Dateifreigabe erfasst und gespeichert werden.

In diesem Artikel werden die folgenden Aufgaben behandelt:

  • Sichern der Datenbank mit anwendungskonsistenter Sicherung
  • Wiederherstellen der Datenbank mithilfe eines Wiederherstellungspunkts
  • Wiederherstellen der VM mithilfe eines Wiederherstellungspunkts

Voraussetzungen

  • Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.

  • Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.

    • Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.

    • Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.

    • Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.

  • Sie müssen für den Sicherungs- und Wiederherstellungsprozess zuerst eine Linux-VM erstellen, auf der eine Instanz von Oracle Database ab Version 12.1 installiert ist.

  • Erstellen Sie eine Oracle-Datenbankinstanz, indem Sie den Schritten unter Erstellen einer Oracle-Datenbankinstanz auf einer Azure-VM folgen.

Vorbereiten der Umgebung

Führen Sie die folgenden Schritte aus, um die Umgebung vorzubereiten:

  1. Stellen Sie eine Verbindung mit der VM her.
  2. Einrichten des Azure Files-Speichers
  3. Vorbereiten der Datenbanken

Herstellen der Verbindung zur VM

  1. Erstellen Sie mit dem folgenden Befehl eine SSH-Sitzung (Secure Shell) mit dem virtuellen Computer. Ersetzen Sie <publicIpAddress> durch die öffentliche Adresse Ihrer VM.

    ssh azureuser@<publicIpAddress>
    
  2. Wechseln Sie zum Benutzer root:

    sudo su -
    
  3. Fügen Sie den Benutzer oracle in der Datei /etc/sudoers hinzu:

    echo "oracle   ALL=(ALL)      NOPASSWD: ALL" >> /etc/sudoers
    

Einrichten des Azure Files-Speichers für die archivierten Oracle-Wiederholungsprotokolldateien

Die archivierten Wiederholungsprotokolldateien der Oracle-Datenbankinstanz spielen eine wichtige Rolle bei der Datenbankwiederherstellung. Sie speichern die Transaktionen, für die ein Commit ausgeführt wurde. Diese werden benötigt, um von einer in der Vergangenheit erstellten Datenbankmomentaufnahme aus einen Rollforward auszuführen.

Im ARCHIVELOG-Modus archiviert die Datenbank die Inhalte von Online-Wiederholungsprotokolldateien, wenn diese voll sind und ausgetauscht werden. Diese werden zusammen mit einer Sicherung für eine Zeitpunktwiederherstellung benötigt, wenn die Datenbank verloren geht.

Oracle bietet die Möglichkeit, Wiederholungsprotokolldateien an verschiedenen Speicherorten zu archivieren. In der Industrie als bewährte Methode gilt, dass sich mindestens eine dieser Ziele im Remotespeicher befinden sollte, damit es von dem Hostspeicher getrennt und durch verschiedene unabhängige Momentaufnahmen geschützt ist. Azure Files erfüllt diese Anforderungen.

Eine Azure-Dateifreigabe ist ein Speicher, den Sie einer Linux- oder Windows-VM als reguläre Dateisystemkomponente anfügen, indem Sie das SMB-Protokoll (Server Message Block) oder NFS-Protokoll (Network File System) verwenden. Informationen zur Einrichtung einer Azure-Dateifreigabe unter Linux (mithilfe des SMB 3.0-Protokolls) zur Verwendung als Archivprotokollspeicher finden Sie unter Einbinden einer Azure-SMB-Dateifreigabe unter Linux. Wenn Sie die Einrichtung abschließen, kehren Sie zu dieser Anleitung zurück und führen alle verbleibenden Schritte aus.

Vorbereiten der Datenbanken

In diesem Prozessabschnitt wird davon ausgegangen, dass Sie die Schritte unter Erstellen einer Oracle-Datenbankinstanz auf einer Azure-VM ausgeführt haben. Infolgedessen:

  • Sie verfügen über eine Oracle-Instanz namens oratest1, die auf einer VM namens vmoracle19c ausgeführt wird.
  • Sie verwenden das Oracle-Standardskript oraenv mit Abhängigkeit von der Oracle-Standardkonfigurationsdatei /etc/oratab, um Umgebungsvariablen in einer Shell-Sitzung einzurichten.

Führen Sie die folgenden Schritte für jede Datenbank auf der VM durch:

  1. Wechseln Sie zum Benutzer oracle:

     sudo su - oracle
    
  2. Legen Sie die Umgebungsvariable ORACLE_SID fest, indem Sie das Skript oraenv ausführen. Dies fordert Sie zur Eingabe des ORACLE_SID-Namens auf.

    . oraenv
    
  3. Fügen Sie die Azure-Dateifreigabe als weiteres Ziel für Datenbankarchivprotokolldateien hinzu.

    In diesem Schritt wird davon ausgegangen, dass Sie eine Azure-Dateifreigabe auf der Linux-VM konfiguriert und eingebunden haben. Erstellen Sie für jede auf der VM installierte Datenbank ein Unterverzeichnis, das nach Ihrer Datenbank-Sicherheits-ID benannt ist.

    In diesem Beispiel ist /backup der Name des Bereitstellungspunkts und oratest1 die SID. Somit erstellen Sie das Unterverzeichnis /backup/oratest1 und weisen den Benutzer oracle als Eigentümer zu. Ersetzen Sie /backup/SID durch den Namen des Bereitstellungspunkts und die Datenbank-SID.

    sudo mkdir /backup/oratest1
    sudo chown oracle:oinstall /backup/oratest1
    
  4. Stellen Sie eine Verbindung mit der Datenbank her:

    sqlplus / as sysdba
    
  5. Starten Sie die Datenbank, sofern noch nicht erfolgt:

    SQL> startup
    
  6. Legen Sie das erste Archivprotokollziel der Datenbank auf das Dateifreigabeverzeichnis fest, das Sie zuvor erstellt haben:

    SQL> alter system set log_archive_dest_1='LOCATION=/backup/oratest1' scope=both;
    
  7. Definieren Sie die RPO (Recovery Point Objective) für die Datenbank.

    Für ein konsistentes RPO berücksichtigen Sie die Häufigkeit, mit der die Online-Wiederholungsprotokolldateien archiviert werden. Diese Faktoren steuern die Häufigkeit:

    • Größe der Online-Wiederholungsprotokolldateien. Wenn eine Onlineprotokolldatei voll ist, wird sie ausgewechselt und archiviert. Je größer die Onlineprotokolldatei ist, desto länger dauert es, bis sie voll ist. Diese zusätzliche Zeit verringert die Häufigkeit der Archivgenerierung.
    • Die Einstellung des Parameters ARCHIVE_LAG_TARGET bestimmt, wie viele Sekunden maximal vergehen dürfen, bevor die aktuelle Onlineprotokolldatei ausgewechselt und archiviert werden muss.

    Online-Wiederholungsprotokolldateien in Oracle sind in der Regel relativ groß (1024 MB, 4096 MB oder 8192 MB), damit sie so selten wie möglich ausgewechselt und archiviert werden müssen und auch der zugehörige Prüfpunktvorgang so selten wie möglich ausgeführt werden muss. In einer ausgelasteten Datenbankumgebung werden Protokolle wahrscheinlich alle paar Sekunden oder Minuten wechseln und archivieren. In einer weniger aktiven Datenbank, können Stunden oder Tage vergehen, bevor die letzten Transaktionen archiviert werden, was zu einer starken Abnahme der Archivierungsfrequenz führen würde.

    Es wird empfohlen, ARCHIVE_LAG_TARGET zu verwenden, um ein konsistentes RPO sicherzustellen. Eine Einstellung von 5 Minuten (300 Sekunden) ist ein sinnvoller Wert für ARCHIVE_LAG_TARGET. Dies stellt sicher, dass jeder Datenbankwiederherstellungsvorgang innerhalb von 5 Minuten nach dem Ausfall wiederhergestellt werden kann.

    Führen Sie den folgenden Befehl aus, um ARCHIVE_LAG_TARGET zu verwenden:

    SQL> alter system set archive_lag_target=300 scope=both;
    

    Weitere Informationen zum Bereitstellen hochverfügbarer Oracle-Datenbankinstanzen in Azure ohne RPO finden Sie unter Referenzarchitekturen für Oracle Database.

  8. Stellen Sie sicher, dass sich die Datenbank im ARCHIVELOG-Modus befindet, um Onlinesicherungen zu ermöglichen.

    Überprüfen Sie zuerst den Protokollarchivstatus:

    SQL> SELECT log_mode FROM v$database;
    
    LOG_MODE
    ------------
    NOARCHIVELOG
    

    Wenn Sie sich im NOARCHIVELOG-Modus befinden, führen Sie die folgenden Befehle aus:

    SQL> SHUTDOWN IMMEDIATE;
    SQL> STARTUP MOUNT;
    SQL> ALTER DATABASE ARCHIVELOG;
    SQL> ALTER DATABASE OPEN;
    SQL> ALTER SYSTEM SWITCH LOGFILE;
    
  9. Erstellen Sie eine Tabelle zum Testen der Sicherungs- und Wiederherstellungsvorgänge:

    SQL> create user scott identified by tiger quota 100M on users;
    SQL> grant create session, create table to scott;
    SQL> connect scott/tiger
    SQL> create table scott_table(col1 number, col2 varchar2(50));
    SQL> insert into scott_table VALUES(1,'Line 1');
    SQL> commit;
    SQL> quit
    

Sichern Ihrer Daten mithilfe von Azure Backup

Der Azure Backup-Dienst bietet Lösungen, um Ihre Daten zu sichern und aus der Microsoft Azure-Cloud wiederherzustellen. Azure Backup bietet unabhängige und isolierte Sicherungen zum Schutz vor dem versehentlichen Löschen von Originaldaten. Sicherungen werden in einem Recovery Services-Tresor mit integrierter Verwaltung von Wiederherstellungspunkten gespeichert, sodass Sie nach Bedarf Wiederherstellungen ausführen können.

In diesem Abschnitt erstellen Sie mit Azure Backup anwendungskonsistente Momentaufnahmen Ihrer laufenden VM und Oracle-Datenbankinstanzen. Die Datenbanken werden in den Sicherungsmodus versetzt, sodass eine transaktionskonsistente Onlinesicherung erfolgen kann, während Azure Backup eine Momentaufnahme der VM-Datenträger erstellt. Die Momentaufnahme ist eine vollständige Kopie des Speichers und keine inkrementelle Momentaufnahme oder eine des Typs „Kopie bei Schreibvorgang“. Somit ist es ein effektives Medium zum Wiederherstellen Ihrer Datenbank.

Der Vorteil der Verwendung anwendungskonsistenter Momentaufnahmen von Azure Backup besteht darin, dass sie schnell erstellt werden können, unabhängig davon, wie groß Ihre Datenbank ist. Sie können eine Momentaufnahme für Wiederherstellungsvorgänge verwenden, sobald Sie diese erstellen, ohne warten zu müssen, bis sie in den Recovery Services-Tresor übertragen wurde.

Führen Sie die folgenden Schritte aus, um die Datenbank mit Azure Backup zu sichern:

  1. Grundlegendes zum Azure Backup Framework.
  2. Vorbereiten der Umgebung für eine anwendungskonsistente Sicherung.
  3. Einrichten anwendungskonsistenter Sicherungen.
  4. Auslösen einer anwendungskonsistenten Sicherung der VM.

Grundlegendes zum Azure Backup Framework

Der Dienst Azure Backup bietet ein Framework zum Erreichen von Anwendungskonsistenz bei Sicherungen von Windows- und Linux-VMs für verschiedene Anwendungen. Dieses Framework umfasst das Aufrufen eines Pre-Skripts, um die Anwendungen stillzulegen, bevor eine Momentaufnahme von Datenträgern erstellt wird. Es ruft ein Post-Skript auf, um das Einfrieren der Anwendungen aufzuheben, nachdem die Momentaufnahme abgeschlossen wurde.

Microsoft hat das Framework erweitert, sodass der Azure Backup-Dienst vorgefertigte Pre- und Post-Skripte für ausgewählte Anwendungen bereitstellt. Diese Pre- und Post-Skripte sind bereits im Linux-Image geladen, sodass Sie nichts installieren müssen. Sie geben lediglich die Anwendung an, woraufhin Azure Backup automatisch die entsprechenden Skripte aufruft. Für die Pflege der vorgefertigten Pre- und Post-Skripte ist Microsoft zuständig, sodass Sie sich der Unterstützung, des Eigentums und der Gültigkeit dieser Skripte sicher sein können.

Derzeit sind die vom verbesserten Framework unterstützten Anwendungen Oracle ab 12.x und MySQL. Weitere Informationen finden Sie unter Unterstützungsmatrix für Sicherungen virtueller Azure-Computer.

Sie können Ihre eigenen Skripte für Azure Backup erstellen, die mit Datenbanken vor 12.x verwendet werden können. Beispielskripte finden Sie auf GitHub.

Jedes Mal, wenn Sie eine Sicherung durchführen, führt das erweiterte Framework die Pre- und Post-Skripte auf allen Oracle-Datenbankinstanzen aus, die auf der VM installiert sind. Der Parameter configuration_path in der Datei workload.conf verweist auf den Speicherort der Oracle-Datei /etc/oratab (oder eine benutzerdefinierte Datei, die der oratab-Syntax folgt). Weitere Informationen finden Sie unter Einrichten anwendungskonsistenter Sicherungen.

Azure Backup führt die Pre- und Post-Skripte für jede Datenbank aus, die in der Datei aufgeführt ist, auf die configuration_path verweist. Ausnahmen sind Zeilen, die mit # beginnen (als Kommentar behandelt) oder +ASM (eine Oracle ASM-Instanz).

Das erweiterte Azure Backup-Framework führt Onlinesicherungen von Oracle-Datenbankinstanzen durch, die im ARCHIVELOG-Modus betrieben werden. Die Pre- und Post-Skripte verwenden die Befehle ALTER DATABASE BEGIN und END BACKUP, um Anwendungskonsistenz zu erzielen.

Damit die Datenbanksicherung konsistent ist, müssen Datenbanken im NOARCHIVELOG-Modus sauber heruntergefahren werden, bevor die Momentaufnahme gestartet wird.

Vorbereiten der Umgebung für eine anwendungskonsistente Sicherung

In Oracle Database werden Auftragsrollen klar voneinander abgetrennt, um eine Aufgabentrennung nach dem Ansatz der geringsten Rechte umzusetzen. Hierfür werden separate Betriebssystemgruppen (Operating System, OS) separaten Datenbank-Verwaltungsrollen zugeordnet. Benutzer können dann abhängig von ihrer Mitgliedschaft in OS-Gruppen über unterschiedliche Datenbankberechtigungen verfügen.

Die Datenbankrolle SYSBACKUP (generischer Name OSBACKUPDBA) bietet eingeschränkte Berechtigungen zum Ausführen von Sicherungsvorgängen in der Datenbank. Dies ist für Azure Backup erforderlich.

Während der Oracle-Installation empfehlen wir, backupdba als Name der OS-Gruppe zu verwenden, die der Rolle SYSBACKUP zugeordnet werden soll. Sie können jedoch einen beliebigen Namen verwenden. Dafür müssen Sie zuerst den Namen der OS-Gruppe ermitteln, die die Oracle-Rolle SYSBACKUP darstellt.

  1. Wechseln Sie zum Benutzer oracle:

    sudo su - oracle
    
  2. Legen Sie die Oracle-Umgebung fest:

    export ORACLE_SID=oratest1
    export ORAENV_ASK=NO
    . oraenv
    
  3. Ermitteln Sie den Namen der OS-Gruppe, die die Oracle-Rolle SYSBACKUP darstellt:

    grep "define SS_BKP" $ORACLE_HOME/rdbms/lib/config.c
    

    Die Ausgabe sieht etwa folgendermaßen aus:

    #define SS_BKP_GRP "backupdba"
    

    In der Ausgabe entspricht der in doppelte Anführungszeichen eingeschlossene Wert dem Namen der Linux-OS-Gruppe, für die die SYSBACKUP-Rolle von Oracle extern authentifiziert wird. In diesem Beispiel lautet er backupdba. Notieren Sie sich den tatsächlichen Wert.

  4. Überprüfen Sie mit dem folgenden Befehl, ob die OS-Gruppe vorhanden ist. Ersetzen Sie <group name> durch den Wert, den der vorherige Befehl zurückgegeben hat (ohne Anführungszeichen).

    grep <group name> /etc/group
    

    Die Ausgabe sieht etwa folgendermaßen aus:

    backupdba:x:54324:oracle
    

    Wichtig

    Wenn die Ausgabe nicht mit dem Wert der Oracle OS-Gruppe übereinstimmt, den Sie in Schritt 3 abgerufen haben, verwenden Sie den folgenden Befehl, um die OS-Gruppe zu erstellen, die die Oracle-Rolle SYSBACKUP darstellt. Ersetzen Sie <group name> durch den in Schritt 3 erhaltenen Gruppennamen.

    sudo groupadd <group name>
    
  5. Erstellen Sie einen neuen Sicherungsbenutzer namens azbackup, der zu der OS-Gruppe gehört, die Sie in den vorherigen Schritten überprüft oder erstellt haben. Ersetzen Sie <group name> durch den Namen der überprüften Gruppe. Der Benutzer wird auch der Gruppe oinstall hinzugefügt, damit ASM-Datenträger geöffnet werden können.

    sudo useradd -g <group name> -G oinstall azbackup
    
  6. Richten Sie die externe Authentifizierung für den neuen Benutzer für die Sicherung ein.

    Der Sicherungsbenutzer azbackup muss in der Lage sein, über eine externe Authentifizierung auf die Datenbank zuzugreifen, damit kein Kennwort abgefragt wird. Um diesen Zugriff zu ermöglichen, müssen Sie einen Datenbankbenutzer erstellen, der sich extern über azbackup authentifiziert. Die Datenbank verwendet ein Präfix für den Benutzernamen, das Sie ermitteln müssen.

    Führen Sie auf jeder auf der VM installierten Datenbank die folgenden Schritte durch:

    1. Melden Sie sich mit SQL Plus bei der Datenbank an, und überprüfen Sie die Standardeinstellungen für die externe Authentifizierung:

      sqlplus / as sysdba
      SQL> show parameter os_authent_prefix
      SQL> show parameter remote_os_authent
      

      Die Ausgabe sollte diesem Beispiel ähneln, in dem das Präfix für den Datenbank-Benutzernamen ops$ lautet:

      NAME                                 TYPE        VALUE
      ------------------------------------ ----------- ------------------------------
      os_authent_prefix                    string      ops$
      remote_os_authent                    boolean     FALSE
      
    2. Erstellen Sie einen Datenbankbenutzer mit dem Namen ops$azbackup für die externe Authentifizierung des Benutzers azbackup, und erteilen Sie diesem SYSBACKUP-Berechtigungen:

      SQL> CREATE USER ops$azbackup IDENTIFIED EXTERNALLY;
      SQL> GRANT CREATE SESSION, ALTER SESSION, SYSBACKUP TO ops$azbackup;
      
  7. Wenn Sie beim Ausführen der GRANT-Anweisung die Fehlermeldung ORA-46953: The password file is not in the 12.2 format erhalten, führen Sie die folgenden Schritte aus, um die orapwd-Datei in das Format 12.2 zu migrieren. Führen Sie diese Schritte für jede Oracle-Datenbankinstanz auf der VM aus.

    1. Beenden Sie SQL Plus.

    2. Geben Sie der Kennwortdatei im alten Format einen neuen Namen.

    3. Migrieren Sie die Kennwortdatei.

    4. Entfernen Sie die alte Datei.

    5. Führen Sie die folgenden Befehle aus:

      mv $ORACLE_HOME/dbs/orapworatest1 $ORACLE_HOME/dbs/orapworatest1.tmp
      orapwd file=$ORACLE_HOME/dbs/orapworatest1 input_file=$ORACLE_HOME/dbs/orapworatest1.tmp
      rm $ORACLE_HOME/dbs/orapworatest1.tmp
      
    6. Führen Sie in SQL Plus den Vorgang GRANT erneut aus.

  8. Erstellen Sie eine gespeicherte Prozedur zum Protokollieren von Sicherungsmeldungen im Warnungsprotokoll der Datenbank. Nutzen Sie den folgenden Code für jede auf der VM installierte Datenbank:

    sqlplus / as sysdba
    SQL> GRANT EXECUTE ON DBMS_SYSTEM TO SYSBACKUP;
    SQL> CREATE PROCEDURE sysbackup.azmessage(in_msg IN VARCHAR2)
    AS
      v_timestamp     VARCHAR2(32);
    BEGIN
      SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')
      INTO v_timestamp FROM DUAL;
      DBMS_OUTPUT.PUT_LINE(v_timestamp || ' - ' || in_msg);
      SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.ALERT_FILE, in_msg);
    END azmessage;
    /
    SQL> SHOW ERRORS
    SQL> QUIT
    

Einrichten anwendungskonsistenter Sicherungen

  1. Wechseln Sie zum Benutzer root:

    sudo su -
    
  2. Suchen Sie nach dem Ordner /etc/azure. Wenn er nicht vorhanden ist, erstellen Sie das Arbeitsverzeichnis für die anwendungskonsistente Sicherung:

    if [ ! -d "/etc/azure" ]; then
       mkdir /etc/azure
    fi
    
  3. Suchen Sie im Ordner nach der Datei workload.conf . Wenn sie nicht vorhanden ist, erstellen Sie sie im Verzeichnis /etc/azure, und fügen Sie den folgenden Inhalt hinzu. Die Kommentare müssen mit [workload] beginnen. Wenn die Datei bereits vorhanden ist, bearbeiten Sie einfach die Felder, sodass sie mit den folgenden Inhalten übereinstimmen. Andernfalls erstellt der folgende Befehl die Datei und befüllt die Inhalte:

    echo "[workload]
    workload_name = oracle
    configuration_path = /etc/oratab
    timeout = 90
    linux_user = azbackup" > /etc/azure/workload.conf
    

    Die Datei workload.conf verwendet das folgende Format:

    • Der workload_name-Parameter gibt den Typ des Datenbankworkload an. In diesem Fall ermöglicht das Festlegen des Parameters auf Oracle, dass Azure Backup die richtigen Pre- und Post-Skripte (Konsistenzbefehle) für Oracle-Datenbankinstanzen ausführt.
    • Der Parameter timeout gibt die maximale Zeit in Sekunden an, die jede Datenbank zum Anfertigen von Speichermomentaufnahmen hat.
    • Der Parameter linux_user gibt das Linux-Benutzerkonto an, das von Azure Backup zum Ausführen von Datenbank-Stilllegungsvorgängen verwendet wird. Sie haben diesen Benutzer (azbackup) bereits erstellt.
    • Der Parameter configuration_path gibt den absoluten Pfadnamen für eine Textdatei auf der VM an. In jeder Zeile wird eine Datenbankinstanz aufgeführt, die auf der VM ausgeführt wird. Dies ist in der Regel die Datei /etc/oratab, die Oracle während der Datenbankinstallation generiert. Dies kann jedoch auch eine beliebige Datei mit einem beliebigen Namen sein, die Sie auswählen. Sie muss die folgenden Formatregeln befolgen:
      • Die Datei ist eine Textdatei. Jedes Feld wird durch einen Doppelpunkt (:) getrennt.
      • Das erste Feld in jeder Zeile entspricht dem Namen einer ORACLE_SID-Instanz.
      • Das zweite Feld in jeder Zeile ist der Name des absoluten Pfads für ORACLE_HOME für diese ORACLE_SID-Instanz.
      • Der gesamte Text nach den ersten beiden Feldern wird ignoriert.
      • Wenn die Zeile mit einer Raute (#) beginnt, wird die gesamte Zeile als Kommentar ignoriert.
      • Wenn das erste Feld den Wert +ASM hat, der eine Oracle ASM-Instanz bezeichnet, wird es ignoriert.

Auslösen einer anwendungskonsistenten Sicherung der VM

  1. Wechseln Sie im Azure-Portal zu Ihrer Ressourcengruppe rg-oracle und wählen Sie Ihre VM vmoracle19c aus.

  2. Im Bereich Sicherung:

    1. Wählen Sie im Recovery Services-Tresor die Option Neu erstellen aus.
    2. Verwenden Sie für den Namen des Tresors myVault.
    3. Wählen Sie für Ressourcengruppe den Wert rg-oracle aus.
    4. Wählen Sie für Sicherungsrichtlinie auswählen die Option (neu) DailyPolicy. Wenn Sie die Häufigkeit der Sicherung oder den Aufbewahrungszeitraum ändern möchten, wählen Sie stattdessen Neue Richtlinie erstellen aus.

    Screenshot: Bereich zum Konfigurieren eines Recovery Services-Tresors.

  3. Wählen Sie Sicherung aktivieren aus.

    Der Sicherungsprozess wird erst gestartet, wenn die geplante Zeit abgelaufen ist. Führen Sie den nächsten Schritt aus, um eine sofortige Sicherung einzurichten.

  4. Klicken Sie im Bereich „Ressourcengruppe“ auf den neu erstellten Recovery Services-Tresor myVault. Möglicherweise müssen Sie die Seite aktualisieren, damit er angezeigt wird.

  5. Wählen Sie im Bereich myVault – Sicherungselemente unter Anzahl von Sicherungselementen die Anzahl der Sicherungselemente aus.

    Screenshot mit Details über den Recovery Services-Tresor.

  6. Wählen Sie im Bereich Sicherungselemente (Azure Virtual Machine) die Schaltfläche mit den Auslassungspunkten (...) aus, und wählen Sie dann Jetzt sichern aus.

    Screenshot mit dem Befehl für die Sicherung von Recovery Services-Tresoren.

  7. Übernehmen Sie den Standardwert bei Sicherung aufbewahren bis und klicken Sie auf die Schaltfläche OK. Warten Sie, bis der Sicherungsvorgang abgeschlossen ist.

  8. Wählen Sie Sicherungsaufträge, um den Status des Sicherungsauftrags anzuzeigen.

    Screenshot mit dem Bereich, in dem Sicherungsaufträge für einen Recovery Services-Tresor aufgelistet sind.

    Wählen Sie den Sicherungsauftrag aus, um Details zu seinem Status anzuzeigen.

    Screenshot mit detaillierten Statusinformationen für einen Sicherungsauftrag.

    Obwohl die Ausführung der Momentaufnahme nur wenige Sekunden dauert, kann es einige Zeit in Anspruch nehmen, sie in den Tresor zu übertragen. Der Sicherungsauftrag wird erst abgeschlossen, wenn die Übertragung abgeschlossen wurde.

  9. Beheben Sie für eine anwendungskonsistente Sicherung alle Fehler in der Protokolldatei unter /var/log/azure/Microsoft.Azure.RecoveryServices.VMSnapshotLinux/extension.log.

Wiederherstellen der VM

Wenn Sie eine gesamte VM wiederherstellen, stellen Sie diese mitsamt angefügter Datenträger von einem ausgewählten Wiederherstellungspunkt aus auf einer neuen VM her. Mit dieser Aktion werden auch alle Datenbanken wiederhergestellt, die auf der VM ausgeführt werden. Anschließend müssen Sie jede Datenbank wiederherstellen.

Führen Sie diese Schritte aus, um eine gesamte VM wiederherzustellen:

  1. Beenden und löschen Sie die VM.
  2. Stellen Sie die VM wieder her.
  3. Legen Sie die öffentliche IP-Adresse fest.
  4. Stellen Sie die Datenbank wieder her.

Beim Wiederherstellen einer VM gibt es zwei Hauptoptionen:

  • Wiederherstellen der VM, von der die Sicherungen ursprünglich erstellt wurden
  • Wiederherstellen (klonen) einer neuen VM ohne Auswirkungen auf die VM, von der die Sicherungen ursprünglich erstellt wurden

Die ersten Schritte in dieser Übung (Anhalten, Löschen und anschließende Wiederherstellung der VM) simulieren den ersten Anwendungsfall.

Beenden und Löschen der VM

  1. Wechseln Sie im Azure-Portal zur VM vmoracle19c, und wählen Sie dann Beenden aus.

  2. Wenn die VM nicht mehr läuft, wählen Sie Löschen und dann Ja aus.

    Screenshot, der die Bestätigungsmeldung für das Löschen einer VM zeigt.

Wiederherstellen des virtuellen Computers

  1. Erstellen Sie ein Speicherkonto für den Stagingprozess im Azure-Portal:

    1. Wählen Sie im Azure-Portal die Option + Ressource erstellen aus. Suchen Sie nach Speicherkonto, und wählen Sie diese Option aus.

      Screenshot der Erstellung einer Ressource.

    2. Im Bereich Speicherkonto erstellen:

      1. Wählen Sie bei Ressourcengruppe die vorhandene Ressourcengruppe rg-oracle aus.
      2. Geben Sie unter Name des Speicherkontos den Namen oracrestore ein.
      3. Stellen Sie sicher, dass der Standort auf die Region aller anderen Ressourcen in der Ressourcengruppe festgelegt ist.
      4. Setzen Sie den Wert Leistung auf Standard.
      5. Wählen Sie für Kontoart den Wert StorageV2 (general purpose v2) aus.
      6. Wählen Sie für Replikation die Option Lokal redundanter Speicher (LRS) aus.

      Screenshot mit den grundlegenden Informationen zur Erstellung eines Speicherkontos.

    3. Klicken Sie auf Review + Create (Überprüfen und erstellen) und dann auf Create (Erstellen).

  2. Suchen Sie im Azure-Portal nach dem Recovery Services-Tresor myVault, und wählen Sie ihn aus.

    Screenshot, der die Auswahl eines Recovery Services-Tresors zeigt.

  3. Wählen Sie im Bereich Übersicht die Option Sicherungselemente aus. Wählen Sie dann Azure Virtual Machine aus, die eine Zahl ungleich Null für BACKUP ITEM COUNT aufweisen sollte.

    Screenshot, der Selektionen für ein Sicherungselement einer virtuellen Maschine für einen Recovery Services-Tresor zeigt.

  4. Wählen Sie im Bereich Sicherungselemente (Azure Virtual Machine) die VM vmoracle19c aus.

    Screenshot mit dem Bereich für Sicherungselemente von VMs.

  5. Wählen Sie im Bereich vmoracle19c einen Wiederherstellungspunkt aus, der den Konsistenztyp Anwendungskonsistent hat. Wählen Sie die Auslassungspunkte (...) und anschließend Löschen aus.

    Screenshot, der den Befehl zur Wiederherstellung einer VM zeigt.

  6. Im Bereich Virtuellen Computer wiederherstellen:

    1. Wählen Sie Neu erstellen aus.

    2. Wählen Sie unter Wiederherstellungstyp die Option Virtuellen Computer erstellen aus.

    3. Geben Sie unter Name des virtuellen Computers den Namen vmoracle19c ein.

    4. Wählen Sie unter Virtuelles Netzwerk die Option vmoracle19cVNET aus.

      Das Subnetz wird basierend auf Ihrer Auswahl für das virtuelle Netzwerk automatisch befüllt.

    5. Für Stagingspeicherort erfordert das Wiederherstellen einer VM ein Azure-Speicherkonto in derselben Ressourcengruppe und Region. Sie können ein Speicherkonto oder eine Wiederherstellungsaufgabe wählen, das/die Sie zuvor eingerichtet haben.

    Screenshot mit den Werten für die Wiederherstellung einer VM.

  7. Klicken Sie auf die Schaltfläche Wiederherstellen, um die VM wiederherzustellen.

  8. Wählen Sie Aufträge und dann Sicherungsaufträge aus, um den Status des Wiederherstellungsprozesses anzuzeigen.

    Screenshot mit einer Liste an Sicherungsaufträgen.

    Wählen Sie den Wiederherstellungsvorgang In Bearbeitung aus, um Details zum Status des Wiederherstellungsprozesses anzuzeigen.

    Screenshot mit detaillierten Statusinformationen zu einem Wiederherstellungsprozess.

Festlegen der öffentlichen IP-Adresse

Nachdem die VM wiederhergestellt wurde, müssen Sie der neuen VM die ursprüngliche IP-Adresse erneut zuweisen.

  1. Wechseln Sie im Azure-Portal zu Ihrer VM namens vmoracle19c. Ihr wurde eine neue öffentliche IP-Adresse und NIC zugewiesen, ähnlich wie vmoracle19c-nic-XXXXXXXXXXXX. Aber sie hat keine DNS-Adresse. Beim Löschen der ursprünglichen VM wurden die öffentliche IP-Adresse und die NIC beibehalten. Mit den nächsten Schritten fügen Sie sie der neuen VM hinzu.

    Screenshot mit einer Liste der öffentlichen IP-Adressen.

  2. Beenden Sie den virtuellen Computer.

    Screenshot, der die Auswahlmöglichkeiten zum Anhalten einer VM zeigt.

  3. Navigieren Sie zu Netzwerk.

    Screenshot mit Netzwerkinformationen.

  4. Wählen Sie Netzwerkschnittstelle anfügen aus. Wählen Sie die ursprüngliche NIC vmoracle19cVMNic aus, der die ursprüngliche öffentliche IP-Adresse noch zugeordnet ist. Klicken Sie anschließend auf OK.

    Screenshot, der die Auswahl des Ressourcentyps und der NIC-Werte zeigt.

  5. Trennen Sie die NIC, die Sie mit dem VM-Wiederherstellungsvorgang erstellt haben, da sie als primäre Schnittstelle konfiguriert ist. Wählen Sie Netzwerkschnittstelle trennen aus. Wählen Sie die NIC aus, die vmoracle19c-nic-XXXXXXXXXXXX ähnelt, und wählen Sie dann OK aus.

    Screenshot, der den Bereich zum Trennen einer Netzwerkschnittstelle zeigt.

    Ihre neu erstellte VM verfügt nun über die ursprüngliche NIC, die mit der ursprünglichen IP-Adresse und den Regeln der Netzwerksicherheitsgruppe verknüpft ist.

    Screenshot mit einer IP-Adresse.

  6. Gehen Sie zurück zum Bereich Übersicht, und wählen Sie Start aus.

Wiederherstellen der Datenbank

So stellen Sie eine Datenbank nach einer vollständigen VM-Wiederherstellung wieder her:

  1. Stellen Sie erneut eine Verbindung zur VM her:

    ssh azureuser@<publicIpAddress>
    
    

    Wenn die gesamte VM wiederhergestellt wurde, ist es wichtig, die Datenbanken auf der VM wiederherzustellen, indem Sie die folgenden Schritte für jede Datenbank durchführen.

  2. Es kann sein, dass die Instanz läuft, da beim Autostart versucht wurde, die Datenbank beim Hochfahren der VM zu starten. Die Datenbank muss jedoch wiederhergestellt werden und befindet sich wahrscheinlich erst in der Bereitstellungsphase. Führen Sie ein vorbereitendes Herunterfahren aus, bevor Sie die Bereitstellungsphase starten:

    sudo su - oracle
    sqlplus / as sysdba
    SQL> shutdown immediate
    SQL> startup mount
    
  3. Durchführen der Datenbankwiederherstellung

    Sie müssen die USING BACKUP CONTROLFILE-Syntax verwenden, um dem Befehl RECOVER AUTOMATIC DATABASE mitzuteilen, dass die Wiederherstellung nicht bei der Oracle-Systemänderungsnummer (System Change Number, SCN) angehalten werden soll, die in der wiederhergestellten Datenbank-Steuerungsdatei aufgezeichnet wurde.

    Die wiederhergestellte Datenbanksteuerungsdatei war eine Momentaufnahme, zusammen mit dem Rest der Datenbank. Der darin gespeicherte SCN stammt aus dem Zeitpunkt der Momentaufnahme. Nach diesem Punkt wurden möglicherweise weitere Transaktionen aufgezeichnet. Die Wiederherstellung sollte für den Zeitpunkt erfolgen, zu dem die letzte Transaktion an die Datenbank committet wurde.

    SQL> recover automatic database using backup controlfile until cancel;
    
  4. Wenn die letzte verfügbare Archivprotokolldatei angewendet wurde, geben Sie CANCEL ein, um die Wiederherstellung zu beenden.

    Wenn die Wiederherstellung erfolgreich abgeschlossen wurde, wird die Meldung Media recovery complete angezeigt.

    Wenn Sie jedoch die BACKUP CONTROLFILE-Klausel verwenden, ignoriert der Befehl zum Wiederherstellen Onlineprotokolldateien. Es ist möglich, dass Änderungen im aktuellen Onlinewiederherstellungsprotokoll erforderlich sind, um die Zeitpunktwiederherstellung abzuschließen. In dieser Situation werden möglicherweise Meldungen wie die folgenden angezeigt:

    SQL> recover automatic database until cancel using backup controlfile;
    ORA-00279: change 2172930 generated at 04/08/2021 12:27:06 needed for thread 1
    ORA-00289: suggestion :
    /u02/fast_recovery_area/ORATEST1/archivelog/2021_04_08/o1_mf_1_13_%u_.arc
    ORA-00280: change 2172930 for thread 1 is in sequence #13
    ORA-00278: log file
    '/u02/fast_recovery_area/ORATEST1/archivelog/2021_04_08/o1_mf_1_13_%u_.arc' no
    longer needed for this recovery
    ORA-00308: cannot open archived log
    '/u02/fast_recovery_area/ORATEST1/archivelog/2021_04_08/o1_mf_1_13_%u_.arc'
    ORA-27037: unable to obtain file status
    Linux-x86_64 Error: 2: No such file or directory
    Additional information: 7
    
    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
    

    Wichtig

    Wenn das aktuelle Onlinewiederherstellungsprotokoll verloren geht oder beschädigt ist und Sie es nicht verwenden können, können Sie die Wiederherstellung an diesem Punkt abbrechen.

    Sie können dieses Problem beheben, indem Sie ermitteln, welches Onlineprotokoll nicht archiviert wurde, und den vollqualifizierten Dateinamen in der Eingabeaufforderung angeben.

  5. Öffnen Sie die Datenbank.

    Die Option RESETLOGS ist erforderlich, wenn der RECOVER-Befehl die Option USING BACKUP CONTROLFILE verwendet. RESETLOGS erstellt eine neue Inkarnation der Datenbank, indem der Wiederholungsverlauf vollständig zurückgesetzt wird, da nicht bestimmt werden kann, wie viel der vorherigen Datenbankinkarnation bei der Wiederherstellung übersprungen wurde.

    SQL> alter database open resetlogs;
    
  6. Überprüfen Sie, ob der Datenbankinhalt wiederhergestellt wurde:

    SQL> select * from scott.scott_table;
    

Die Sicherung und Wiederherstellung der Oracle Database auf einer Azure Linux-VM ist damit abgeschlossen.

Weitere Informationen zu Oracle-Befehlen und -Konzepten finden Sie in der Oracle-Dokumentation, einschließlich:

Löschen der virtuellen Computer

Wenn Sie die VM nicht mehr benötigen, können Sie mit den folgenden Befehlen die Ressourcengruppe, die VM und alle zugehörigen Ressourcen entfernen:

  1. Vorläufiges Löschen von Sicherungen im Tresor deaktivieren:

    az backup vault backup-properties set --name myVault --resource-group rg-oracle --soft-delete-feature-state disable
    
  2. VM-Schutz aufheben und Sicherungen löschen:

    az backup protection disable --resource-group rg-oracle --vault-name myVault --container-name vmoracle19c --item-name vmoracle19c --delete-backup-data true --yes
    
  3. Ressourcengruppe einschließlich aller Ressourcen entfernen:

    az group delete --name rg-oracle
    

Nächste Schritte

Erstellen eines hoch verfügbaren virtuellen Computers

Erkunden der Azure CLI-Beispiele für die Bereitstellung virtueller Computer