9.3 Warten des ZENworks-Datenspeichers in Orcale

In folgenden Abschnitten finden Sie Anweisungen zum Sichern und Wiederherstellen des ZENworks-Datenspeichers mit Oracle:

9.3.1 Sicherungs- und Wiederherstellungslösungen

Oracle bietet zwei Methoden für Sicherung und Wiederherstellung:

  • Recovery Manager (RMAN)

  • Vom Benutzer verwaltete Sicherung und Wiederherstellung

Das RMAN-Dienstprogramm wird automatisch gemeinsam mit der Datenbank installiert. Es ermöglicht die Sicherung einer Oracle8-Datenbank sowie aller höheren Versionen von Oracle*-Datenbanken. RMAN nutzt zur Durchführung der Sicherung und Wiederherstellung Serversitzungen in der Datenbank. RMAN weist eine eigene Syntax auf; der Zugriff kann entweder über ein Kommandozeilenprogramm oder über die GUI (Graphical User Interface, grafische Benutzeroberfläche) von Oracle Enterprise Manager erfolgen. RMAN stellt außerdem APIs (Application Programming Interfaces, Anwendungsprogrammierschnittstellen) zur Verbindung mit Datenträger-Managern von Drittanbietern bereit.

Der Vorteil von RMAN besteht darin, dass Metadaten zu den Vorgängen des Programms abgerufen und in der Steuerdatei der Datenbank gespeichert werden. Sie können einen unabhängigen Wiederherstellungskatalog einrichten; hierbei handelt es sich um ein Schema, das in einer separaten Wiederherstellungskatalogdatenbank aus der Steuerdatei importierte Metadaten enthält. RMAN nimmt die erforderlichen Aufzeichnungen für Sicherungen, archivierte Protokolle usw. mithilfe der Metadaten vor, wodurch der Wiederherstellungsvorgang deutlich vereinfacht wird.

Die Wiederherstellung kann auch mit Betriebssystembefehlen für Sicherungen und SQL*Plus für die Wiederherstellung vorgenommen werden. Diese Methode wird als vom Benutzer verwaltete Sicherung und Wiederherstellung bezeichnet.

RMAN automatisiert den Sicherungs- und Wiederherstellungsvorgang, bei der benutzerverwalteten Methode müssen jedoch sämtliche Datenbankdateien und Sicherungen protokolliert werden. Aufgrund der Zuverlässigkeit und der vereinfachten Datenbankverwaltung ist RMAN als Werkzeug für Sicherungsvorgänge optimal geeignet und wird folglich empfohlen. In den nachfolgenden Abschnitten dieses Dokuments wird erläutert, welche Schritte ausgeführt werden müssen, um mit RMAN die vollständige Datenbanksicherung und -wiederherstellung vorzunehmen.

9.3.2 Festlegen von Umgebungsvariablen

  1. Stellen Sie vor der Verwendung von RMAN folgende Umgebungsvariablen auf die entsprechenden Werte ein:

    • ORACLE_HOME: Das Verzeichnis, in dem die Oracle-Software installiert ist.

      Für Oracle 9i R2: Legen Sie die Variable als ORACLE_HOME=/opt/oracle/product/9ir2 fest.

      Für Oracle 10g R2: Legen Sie die Variable als ORACLE_HOME=/opt/oracle/product/10.2/db_1 fest.

    • CLASSPATH: Die Pfade für die von Oracle installierten Bibliotheken.

      Für Oracle 9i R2: Legen Sie die Variable als CLASSPATH=$CLASSPATH:/opt/oracle/product/9ir2/JRE:/oracle/opt/oracle/product/9ir2/jlib:/oracle/opt/oracle/product/9ir2/rdbms/jlib:/oracle/opt/oracle/product/9ir2/network/jlib fest.

      Für Oracle 10g R2: Legen Sie die Variable als CLASSPATH=$CLASSPATH:/opt/oracle/product/10.2/db_1/JRE:/opt/oracle/product/10.2/db_1/jlib:/opt/oracle/product/10.2/db_1/rdbms/jlib:/opt/oracle/product/10.2/db_1/network/jlib fest.

    • PATH: Das BIN-Verzeichnis der Oracle-Installation.

      Für Oracle 9i R2: Legen Sie die Variable als PATH=$PATH:/opt/oracle/product/9ir2/bin fest.

      Für Oracle 10g R2: Legen Sie die Variable als PATH=$PATH:/opt/oracle/product/10.2/db_1/bin fest.

Sie können die Umgebungsvariablen für die Oracle 11g-Datenbank auf ähnliche Weise festlegen.

9.3.3 Herstellen einer Verbindung mit der Datenbank

Es gibt zwei Möglichkeiten, eine Verbindung mit der Oracle-Datenbank herzustellen, die als Datenspeicher verwendet wird:

  • Starten Sie RMAN an der Kommandozeile des Betriebssystems auf, ohne eine Verbindung mit einer Datenbank herzustellen, indem Sie den RMAN-Befehl ganz ohne Verbindungsoptionen ausführen:

    $ rman

    RMAN> CONNECT TARGET /

  • Rufen Sie beim Verbindungsaufbau mit der Datenbank die ausführbare RMAN-Datei an der Betriebssystem-Kommandozeile auf:

    $ rman TARGET /

    WICHTIG:Wenn Sie auf einem SLES 10-Gerät die Oracle 10g- oder die Oracle 11g-Datenbank installiert haben, stellen Sie sicher, dass Sie die ausführbare Datei rman im Verzeichnis $ORACLE_HOME/bin/rman ausführen.

Wenn die Datenbank bereits eingehängt oder geöffnet ist, gibt RMAN eine Meldung aus, die folgender ähnelt:

Recovery Manager: Release 9.2.0.0.0  
connected to target database: RMAN (DBID=1237603294)

Bei dem angezeigten DBID-Wert handelt es sich um die Datenbankkennung (ID) der Zieldatenbank.

Wenn die Zieldatenbank noch nicht gestartet wurde, gibt RMAN folgende Meldung aus:

connected to target database (not started)  
RMAN>   # the RMAN prompt is displayed

9.3.4 Starten der Datenbank

  1. Starten Sie die Datenbank mit folgendem Befehl:

    RMAN> startup mount

    Mit diesem Befehl wird eine Oracle-Instanz gestartet, falls sie noch nicht gestartet wurde, und die Datenbank wird eingehängt, jedoch nicht geöffnet.

    Wenn der Einhängevorgang erfolgreich war, wird Folgendes ausgegeben:

    Oracle instance started
    database mounted
    

    Anderenfalls werden entsprechende Fehlermeldungen eingeblendet, aus denen der Grund für das aufgetretene Problem sowie passende Lösungsvorschläge hervorgehen.

9.3.5 Sichern der Datenbank

Sie können eine Sicherungskopie der Datenbank am standardmäßigen Datenträger-Speicherort erstellen. Der standardmäßige Speicherort hängt vom Betriebssystem ab. Unter Linux werden Sicherungsdateien unter folgendem Standardpfad gespeichert: /ORACLE/HOME/dbs.

Wenn Sie eine vollständige Sicherung der Datendateien, Steuerdateien sowie der Datei mit den aktuellen Serverparametern auf dem standardmäßigen Gerätetyp (dem Datenträger) vornehmen möchten, geben Sie an der RMAN-Eingabeaufforderung folgenden Sicherungsbefehl ein:

RMAN> BACKUP DATABASE;

Im obigen Kommando ist der FORMAT-Parameter nicht angegeben, folglich vergibt RMAN automatisch für jedes gesicherte Element einen eindeutigen Namen und speichert es am für das jeweilige Betriebssystem standardmäßigen Speicherort (unter Linux /ORACLE/HOME/dbs).

Wenn Sie einen Dateinamen für das gesicherte Element angeben möchten, verwenden Sie den Sicherungsbefehl mit dem FORMAT-Parameter:

RMAN> BACKUP DATABASE FORMAT ’/tmp/%U’;

Durch %U wird ein eindeutiger Dateiname generiert.

Mit dem RMAN-Sicherungsbefehl (RMAN backup) wird ein Sicherungssatz erstellt; hierbei handelt es sich um ein logisches Objekt, das ein oder mehrere Sicherungselemente enthält.

Die Ausgabe des Sicherungsbefehls enthält die wichtigsten Informationen zur Sicherung, wie aus dem folgenden Beispiel hervorgeht:

Starting backup at JULY 12 2009 19:09:48
using target database controlfile instead of recovery catalogal
located channel: ORA_DISK_1
channel ORA_DISK_1: sid=10 devtype=DISK
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current SPFILE in backupset
including current controlfile in backupset
input datafile fno=00001 name=/oracle/oradata/zenworks/system01.dbf
input datafile fno=00002 name=/oracle/oradata/zenworks/undotbs01.dbf
input datafile fno=00003 name=/oracle/oradata/zenworks/cwmlite01.dbf
input datafile fno=00004 name=/oracle/oradata/zenworks/drsys01.dbf
input datafile fno=00005 name=/oracle/oradata/zenworks/example01.dbf
input datafile fno=00006 name=/oracle/oradata/zenworks /indx01.dbf
input datafile fno=00007 name=/oracle/oradata/zenworks/tools01.dbf
input datafile fno=00008 name=/oracle/oradata/zenworks/users01.dbf
channel ORA_DISK_1: starting piece 1 at  JULY 12 2009  19:09:56
channel ORA_DISK_1: finished piece 1 at  JULY 12 2009 19:10:31
piece handle=/oracle/dbs/lvd6dtk1_1_1 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:39
Finished backup at JULY 12 2009 19:10:33

9.3.6 Wiederherstellen der Datenbank

Eine wiederhergestellte Datei kann durch das Anwenden archivierter bzw. online verfügbarer Wiederherstellen-Protokolle wiederhergestellt werden, also mithilfe der Aufzeichnungen zu den Änderungen, die nach der Erstellung der Sicherungskopie an der Datenbank vorgenommen wurden. Folgende Abschnitte enthalten Anweisungen für zwei Methoden zur Wiederherstellung der Datenbank:

Vollständige Wiederherstellung

Die vollständige Wiederherstellung umfasst die Verwendung von Wiederherstellen-Daten (redo) bzw. inkrementaler Sicherungen in Kombination mit einer Sicherung einer Datenbank, eines Tablespace oder einer Datendatei, zur Wiederherstellung des aktuellsten Zustands. Dieser Vorgang wird als vollständige Wiederherstellung bezeichnet, da von Oracle sämtliche Wiederherstellen-Änderungen angewendet werden, die in den archivierten und online verfügbaren Protokollen der Sicherung enthalten sind. Normalerweise wird eine vollständige Datenträgerwiederherstellung vorgenommen, nachdem Datendateien oder die Steuerdatei aufgrund eines Datenträgerausfalls beschädigt wurden.

  1. Verwenden Sie folgende Befehlssequenz, um die Datenbank vollständig wiederherzustellen.

    RMAN> connect target /

    RMAN> run {

    2> startup mount ;

    3> restore database ;

    4> recover database ;

    5> alter database open ;

    6> }

    Hierdurch werden sämtliche Datendateien wiederhergestellt und stehen im Anschluss wieder zur Verfügung. RMAN wendet Archivprotokolle nach Bedarf an, bis die Wiederherstellung abgeschlossen ist.

  2. Nach Abschluss der Wiederherstellung muss sichergestellt werden, dass Datenspeicher und Objektspeicher synchron sind. Eine Anleitung dazu finden Sie in Abschnitt 9.4, Synchronisieren von Objektspeicher und Datenspeicher.

Unvollständige Wiederherstellung

Mit RMAN kann die gesamte Datenbank in den Zustand versetzt werden, zu dem sie sich zu einem nicht aktuellen Zeitpunkt befand; die Wiederherstellung kann auch gemäß einer SNC bzw. Protokollsequenznummer erfolgen. Diese Art der Wiederherstellung wird als unvollständig bezeichnet, da nicht alle verfügbaren Wiederherstellen-Protokolle in ihrer Gesamtheit verwendet werden. Die unvollständige Wiederherstellung der gesamten Datenbank wird auch als Database Point-In-Time Recovery (DBPITR) bezeichnet.

Die unvollständige Wiederherstellung der Datenbank wird in folgenden Fällen empfohlen:

  • Durch einen Datenträgerausfall wurden einige oder alle der online verfügbaren Wiederherstellen-Protokolle beschädigt.

  • Durch einen Benutzerfehler kommt es zu Datenverlust; dies ist beispielsweise der Fall, wenn ein Benutzer versehentlich eine Tabelle verwirft.

  • Die vollständige Wiederherstellung ist nicht möglich, da ein archiviertes Wiederherstellen-Protokoll fehlt.

Für eine unvollständige Wiederherstellung stellen Sie sämtliche Datendateien mithilfe von Sicherungskopien wieder her, die vor dem Zeitpunkt erstellt wurden, zu dem die Wiederherstellung erforderlich wurde, und öffnen Sie dann, nach Abschluss des Wiederherstellungsvorgangs, die Datenbank mithilfe der RESETLOGS-Option. Mit der RESETLOGS-Operation wird eine neue Instanz der Datenbank erstellt — also eine Datenbank mit einem neuen Stream von Protokollsequenznummern, die mit Protokollsequenz 1 beginnen.

Für eine unvollständige Wiederherstellung muss die Datenbank geschlossen werden.

So führen Sie eine unvollständige Wiederherstellung durch:

  1. Legen Sie die Umgebungsvariable für das Zeitformat fest:

    $ NLS/DATE/FORMAT/"Mon DD YYYY HH24:MI:SS"

  2. Verwenden Sie die Kommandos in der folgenden Reihenfolge:

    $ rman target /

    RMAN> startup mount;

    RMAN> run {

    2> set until time "to_date('Jul 12 2009 10:24:00', 'MM DD YYYY HH24:MI:SS')";

    3> restore database ;

    4> recover database ;

    5> }

    RMAN verwendet die letzte Sicherung, die vor dem im set until-Befehl erwähnten Zeitpunkt erstellt wurde, bis der Befehl für das Wiederherstellen der Dateien an ihren standardmäßigen Speicherorten ausgeführt wird. Im Anschluss werden ggf. archivierte Wiederherstellen-Protokolle verwendet, um die Datenbank wiederherzustellen-

    Zwei weitere Parameter können mit dem set until-Befehl verwendet werden, nämlich SCN sowie Protokollsequenznummern. SCNs gehen aus den Warnmeldungsprotokollen hervor. Ermitteln Sie die SCN eines Ereignisses und stellen Sie den Zustand gemäß einer vorherigen SCN wieder her. Beispiel:

    SET UNTIL SCN 1000
    
  3. Wenn die Wiederherstellung erfolgreich war, öffnen Sie die Datenbank und setzen Sie die Online-Protokolle zurück.

    ALTER DATABASE OPEN RESETLOGS;

  4. Nach Abschluss der Wiederherstellung muss sichergestellt werden, dass Datenspeicher und Objektspeicher synchron sind. Eine Anleitung dazu finden Sie in Abschnitt 9.4, Synchronisieren von Objektspeicher und Datenspeicher.

Eine umgehende Sicherung der Datenbank wird empfohlen; vorzugsweise in der eingehängten Datenbank (um potenziellen Datenverlust in einer geöffneten Datenbank zu verhindern). Da es sich bei der Datenbank um eine neue Instanz handelt, kann es bei der Verwendung von vor RESETLOGS erstellten Sicherungskopien zu Schwierigkeiten kommen.

9.3.7 Beenden der Datenbank

  1. Geben Sie den folgenden Befehl ein, um die Datenbank zu beenden:

    RMAN> SHUTDOWN NORMAL;

    Mit diesem Befehl wird ein Aushängen der Datenbank vorgenommen und die ausgeführte Oracle-Instanz wird gestoppt.

9.3.8 Vom Benutzer verwaltete Sicherung und Wiederherstellung

  1. Stoppen Sie auf allen mit der Quelldatenbank konfigurierten ZENworks 7.3 Linux Management-Servern alle ZENworks-Dienste mithilfe des folgenden Kommandos:

    zlm-config --stop

  2. Erstellen Sie auf der Quelldatenbank, auf der die Datenbankinstanz ausgeführt wird, eine logische Sicherung des Schemas der ZENworks-Datenbankobjekte, indem Sie die Exportprogramme als Oracle-Datenbankbenutzer wie folgt ausführen:

    exp zenadmin/novell@ORCL FILE=NOVELL-ZENWORKS-ORAZLM.DMP LOG=NOVELL-ZENWORKS-ORAZLM.LOG OWNER=ZENADMIN

    wobei ORCL die Standardkennung des Oracle-Systems ist und das Standard-Passwort für den zenadmin-Benutzer novell lautet.

    Dadurch werden die Sicherungsdatei NOVELL-ZENWORKS-ORAZLM.DMP sowie die Protokolldatei ZENWORKS-ORAZLM.LOG auf dem Oracle-Datenbankserver erstellt.

  3. Führen Sie das Importprogramm wie folgt als Oracle-Datenbankbenutzer auf der Zieldatenbank aus, um die Daten und Objekte zu importieren:

    imp zenadmin/novell@ORCL FILE=NOVELL-ZENWORKS-ORAZLM.DMP LOG=NOVELL-ZENWORKS-ORAZLM.LOG IGNORE=Y FROMUSER=ZENADMIN TOUSER=ZENADMIN

    wobei ORCL die Standardkennung des Oracle-Systems ist und das Standard-Passwort für den zenadmin-Benutzer novell lautet.

    WICHTIG:Erstellen Sie vor Ausführen des Importprogramms eine zuverlässige Sicherung des Verzeichnisses /opt/oracle/novell/zenworks/database auf der Zieldatenbank.

    Ignorieren Sie Kompilierungswarnmeldungen, die eventuell während des Vorgangs der Objekterstellung auftreten.

  4. Melden Sie sich in der Zieldatenbank als sysdba-Benutzer an und stoppen und starten Sie die Oracle-Instanz, indem Sie die folgenden Kommandos an der SQL-Eingabeaufforderung verwenden:

    shutdown immediate

    startup

  5. Stoppen und starten Sie den Listener-Dienst auf dem Zieldatenbank-Server, indem Sie an der Eingabeaufforderung die folgenden Kommandos verwenden:

    lsnrctl stop

    lsnrctl start

  6. Starten Sie auf dem ZENworks 7.3 Linux Management-Server alle ZENworks-Dienste mithilfe des folgenden Kommandos:

    zlm-config --start

  7. Synchronisieren Sie den Datenspeicher mit dem Objektspeicher. Weitere Informationen zur Synchronisierung des Datenspeichers mit dem Objektspeicher finden Sie unter Abschnitt 9.4, Synchronisieren von Objektspeicher und Datenspeicher.