Datenbank mit RMAN in Object Storage sichern

In diesem Artikel wird erläutert, wie Sie Recovery Manager (RMAN) verwenden, um Backups Ihrer DB-Systemdatenbank in Ihrem eigenen Objektspeicher zu verwalten.

Zur Sicherung des Service müssen Sie einen Objektspeicher-Bucket für die Backups erstellen, ein Kennwort für den Service generieren, das Oracle Database Cloud-Backupmodul installieren und dann RMAN so konfigurieren, dass Backups an den Service gesendet werden. Das Backupmodul ist eine Schnittstelle für ein Systembackup auf Band (SBT), die eng mit RMAN integriert ist. So können Sie bekannte RMAN-Befehle für Backup- und Recovery-Vorgänge verwenden.

Wie Sie sehen, wird Swift in der Konsole und in der Endpunkt-URL für den Service erwähnt. Das liegt daran, dass das Backupmodul im Allgemeinen für Backups in Oracle Database Backup Cloud Service, einem OpenStack Swift-Objektspeicher, verwendet wird.

Tipp:

Auf einem DB-System mit einem Knoten können Sie mit DBCLI Backups im Objektspeicher erstellen. Das ist eine Alternative zum Installieren des Backupmoduls und Erstellen von Backups mit RMAN. Weitere Informationen finden Sie unter Objectstoreswift-Befehle. Beachten Sie, dass die dbcli-Befehle für RAC-DB-Systeme mit mehreren Knoten nicht verfügbar sind.

Voraussetzungen

Sie benötigen Folgendes:

  • Ein DB-System und eine zu sichernde Datenbank.
  • Das Cloud-Netzwerk (VCN) des DB-Systems muss mit Zugriff auf Object Storage konfiguriert sein:
    • Für Object Storage-Zugriff in derselben Region wie das DB-System: Oracle empfiehlt die Verwendung eines Servicegateways.
    • Für Object Storage-Zugriff in einer anderen Region als das DB-System: Verwenden Sie ein Internetgateway. Beachten Sie, dass der Netzwerktraffic zwischen dem DB-System und Object Storage die Cloud nicht verlässt und nie das öffentliche Internet durchläuft.

    Weitere Informationen finden Sie unter VCN und Subnetze.

  • Einen vorhandener Objektspeicher-Bucket, der als Backupziel verwendet wird. Sie können den Bucket über die Konsole oder die Object Storage-API erstellen.

    Weitere Informationen finden Sie unter Buckets verwalten.

  • Ein von OCI generiertes Authentifizierungstoken. Sie können das Kennwort mit der Konsole oder der IAM-API generieren.

    Weitere Informationen finden Sie unter Mit Authentifizierungstoken arbeiten in Benutzerzugangsdaten verwalten.

  • Der Benutzername (der bei der Installation und Verwendung des Backupmoduls angegeben wird) muss Zugriff auf Object Storage auf Mandantenebene haben. Dazu können Sie den Benutzernamen der Administratorengruppe hinzufügen. Dadurch wird allerdings der Zugriff auf alle Cloud-Services erteilt. Stattdessen sollte ein Administrator eine Policy wie im folgenden Beispiel erstellen, die den Zugriff auf nur die erforderlichen Ressourcen in Object Storage für Backup und Wiederherstellung der Datenbank einschränkt:

    Allow group <group_name> to manage objects in compartment <compartment_name> where target.bucket.name = '<bucket_name>'
    
    Allow group <group_name> to read buckets in compartment <compartment_name>

    Weitere Informationen darüber, wie Sie einer Gruppe einen Benutzer hinzufügen, finden Sie unter Gruppen verwalten. Weitere Informationen zu Policys finden Sie unter Erste Schritte mit Policys.

Backupmodul im DB-System installieren

  1. Stellen Sie eine SSH-Verbindung zum DB-System her.
    ssh -i <SSH_key_used_when_launching_the_DB_system> opc@<DB_system_IP_address_or_hostname>
  2. Melden Sie sich als Benutzer opc an.
    login as: opc
  3. Wechseln Sie per sudo zum Benutzer oracle.
    sudo su - oracle
  4. Wechseln Sie zum Verzeichnis, das die Backupmoduldatei opc_install.jar enthält.
    cd /opt/oracle/oak/pkgrepos/oss/odbcs
  5. Verwenden Sie die folgende Befehlssyntax, um das Backupmodul zu installieren.
    java -jar opc_install.jar -opcId <user_id> -opcPass '<auth_token>' -container <bucket_name>;-walletDir ~/hsbtwallet/ -libDir ~/lib/ -configfile ~/config -host https://swiftobjectstorage.<region_name>.oraclecloud.com/v1/<object_storage_namespace>

    Parameter:

    Parameter Beschreibung
    -opcId

    Der Benutzername für den Oracle Cloud Infrastructure-Benutzeraccount. Beispiel: -opcId <username>@<example>.com.

    Das ist der Benutzername, mit dem Sie sich in der Konsole anmelden.

    Der Benutzername muss ein Mitglied der Administratorengruppe sein, wie im Abschnitt Voraussetzungen beschrieben.

    Sie können den Benutzernamen auch in einfachen Anführungszeichen angeben. Das ist möglicherweise erforderlich, wenn der Name Sonderzeichen enthält. Beispiel: -opcId 'j~smith@<example>.com'

    Achten Sie darauf, dass Sie gerade einfache Anführungszeichen und keine schrägen Apostrophe verwenden.

    -opcPass

    Das mit der Konsole oder der IAM-API generierte Authentifizierungstoken in einfachen Anführungszeichen. Beispiel: -opcPass <password>

    Achten Sie darauf, dass Sie gerade einfache Anführungszeichen und keine schrägen Apostrophe verwenden.

    Weitere Informationen finden Sie unter Benutzerzugangsdaten verwalten.

    Dabei handelt es sich nicht um das Kennwort für den Oracle Cloud Infrastructure-Benutzer.

    -container

    Der Name eines vorhandenen Buckets in Object Storage, der als Backupziel verwendet werden soll. Beispiel: -container DBBackups

    -walletDir

    Das Verzeichnis, in dem das Installationstool ein Oracle Wallet mit dem Oracle Cloud Infrastructure-Benutzernamen und dem Authentifizierungstoken erstellt.

    Mit -walletDir ~/hsbtwallet wird das Wallet im Home-Verzeichnis des aktuellen Benutzers (oracle) erstellt.

    -libDir

    Das Verzeichnis, in dem die SBT-Library gespeichert wird. Das Verzeichnis muss bereits vorhanden sein, bevor Sie den Befehl ausführen. Dieser Parameter führt dazu, dass die neueste SBT-Library heruntergeladen wird.

    Mit -libDir ~/lib/ wird die Datei libopc.so in das Home-Verzeichnis des aktuellen Benutzers heruntergeladen. Beispiel: /home/oracle/lib/libopc.so.

    -configfile

    Der Name der Initialisierungsparameterdatei, die vom Installationstool erstellt wird. Diese Datei wird von Ihren RMAN-Jobs referenziert.

    Mit -configfile ~/config wird die Datei im Home-Verzeichnis des aktuellen Benutzers erstellt. Beispiel: /home/oracle/config.

    -host

    Die Endpunkt-URL, an die Backups gesendet werden sollen:

    https://swiftobjectstorage.<region_name>.oraclecloud.com/v1/<object_storage_namespace>

    Dabei ist object_storage_namespace der Object Storage-Namespace Ihres Mandanten. Weitere Informationen finden Sie unter Object Storage-Namespaces.

    Fügen Sie nach dem Object Storage-Namespace keinen Schrägstrich hinzu.

    Informationen zum Suchen des Regionsnamens finden Sie unter Regionen und Availability-Domains.

RMAN konfigurieren

In diesem Thema wird beschrieben, wie Sie RMAN so konfigurieren, dass der Bucket als Standardbackupziel verwendet wird. Im Folgenden wird vorausgesetzt, dass Sie noch beim DB-System angemeldet sind.

  1. Legen Sie im DB-System die Umgebungsvariablen ORACLE_HOME und ORACLE_SID mit dem Utility oraenv fest.
    . oraenv
  2. Stellen Sie mit RMAN eine Verbindung zur Datenbank her.
    rman target /
  3. Konfigurieren Sie RMAN so, dass das SBT-Gerät verwendet und auf die config-Datei verwiesen wird, die bei der Installation des Backupmoduls erstellt wurde. Hier wird ein Beispielbefehl für eine Datenbank der Version 12 angezeigt.
    CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS 
        'SBT_LIBRARY=/home/oracle/lib/libopc.so, 
        SBT_PARMS=(OPC_PFILE=/home/oracle/config)';
  4. Konfigurieren Sie RMAN so, dass standardmäßig SBT_TAPE verwendet wird. Im folgenden Beispiel wird das automatische Backup der Kontrolldatei und SPFILE in SBT_TAPE aktiviert und die Verschlüsselung konfiguriert. Es gibt weitere Einstellungen, die für Ihre Installation gelten können, wie Komprimierung, Anzahl der zu verwendenden Backup- und Recovery-Kanäle, Backupaufbewahrungs-Policy, Lösch-Policy für archivierte Logs usw. In der Dokumentation zu Oracle Backup und Recovery für Ihre Oracle-Version finden Sie weitere Informationen zur Auswahl der entsprechenden Einstellungen.
    CONFIGURE DEFAULT DEVICE TYPE TO SBT_TAPE;
    CONFIGURE BACKUP OPTIMIZATION ON;
    CONFIGURE CONTROLFILE AUTOBACKUP ON;
    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F';
    CONFIGURE ENCRYPTION FOR DATABASE ON;
    Hinweis

    Backups müssen verschlüsselt werden. Sie geben beim Ausführen eines Backups die Verschlüsselung an. Es wird ein Fehler gemeldet, wenn ein Backup nicht verschlüsselt ist.

Nachdem die RMAN-Konfiguration abgeschlossen ist, können Sie dieselben RMAN-Befehle verwenden, die Sie regelmäßig für Backups auf Band nutzen.

Datenbank sichern

Dieses Thema enthält Beispiele für häufig verwendete Backupbefehle.

  1. Legen Sie die Datenbankverschlüsselung fest:
    SET ENCRYPTION IDENTIFIED BY "password" ONLY;

    Beachten Sie, dass diese Einstellung nicht dauerhaft ist. Sie müssen sie für jede neue RMAN-Session festlegen.

  2. Sichern Sie die Datenbank und die Archive-Logs. Im Folgenden finden Sie einige Beispielbefehle. In der Dokumentation zu Oracle Backup und Recovery für Ihre Oracle-Version finden Sie weitere Informationen zur Auswahl einer Backupmethode, die Ihren Anforderungen entspricht. Stellen Sie sicher, dass Sie regelmäßig ein Backup durchführen, um potenzielle Datenverluste zu minimieren, und schließen Sie dabei immer eine Kopie der SPFILE und Kontrolldatei ein. Beachten Sie, dass im folgenden Beispiel inkrementelle Backups mit mehreren Abschnitten verwendet werden. Dieses Feature wurde in Version 12c eingeführt. Wenn Sie die Version 11g verwenden, lassen Sie die Klausel section size weg.
    BACKUP INCREMENTAL LEVEL 0 SECTION SIZE 512M DATABASE PLUS ARCHIVELOG;
    BACKUP INCREMENTAL LEVEL 1 SECTION SIZE 512M DATABASE PLUS ARCHIVELOG;
    BACKUP INCREMENTAL LEVEL 1 CUMULATIVE SECTION SIZE 512M DATABASE PLUS ARCHIVELOG;
  3. Sichern Sie Archive-Logs regelmäßig, um potenzielle Datenverluste zu reduzieren, und bewahren Sie vorsichtshalber mehrere Backupkopien auf.
    BACKUP ARCHIVELOG ALL NOT BACKED UP 2 TIMES;

Wenn der Backupjob abgeschlossen ist, können Sie die Backupdateien in Ihrem Bucket in der Konsole auf der Seite Speicher anzeigen, indem Sie Object Storage auswählen.