In folgenden Abschnitten finden Sie Anweisungen zum Sichern und Wiederherstellen des ZENworks-Datenspeichers mit Oracle:
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.
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.
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
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.
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
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:
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.
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.
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.
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:
Legen Sie die Umgebungsvariable für das Zeitformat fest:
$ NLS/DATE/FORMAT/"Mon DD YYYY HH24:MI:SS"
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
Wenn die Wiederherstellung erfolgreich war, öffnen Sie die Datenbank und setzen Sie die Online-Protokolle zurück.
ALTER DATABASE OPEN RESETLOGS;
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.
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.
Stoppen Sie auf allen mit der Quelldatenbank konfigurierten ZENworks 7.3 Linux Management-Servern alle ZENworks-Dienste mithilfe des folgenden Kommandos:
zlm-config --stop
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.
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.
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
Stoppen und starten Sie den Listener-Dienst auf dem Zieldatenbank-Server, indem Sie an der Eingabeaufforderung die folgenden Kommandos verwenden:
lsnrctl stop
lsnrctl start
Starten Sie auf dem ZENworks 7.3 Linux Management-Server alle ZENworks-Dienste mithilfe des folgenden Kommandos:
zlm-config --start
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.