DB2 Universal Database - Systemverwaltung


Wiederherstellungsmethode: Versionswiederherstellung

Bei einer Versionswiederherstellung mit Hilfe des Befehls BACKUP in Verbindung mit dem Befehl RESTORE wird die Datenbank in einen Status versetzt, der zuvor gesichert wurde. Sie können diese Wiederherstellungsmethode mit nicht wiederherstellbaren Datenbanken verwenden (d. h. Datenbanken, für die Sie über keine archivierten Protokolldateien verfügen). Sie können diese Methode auch bei wiederherstellbaren Datenbanken einsetzen, indem Sie die Option WITHOUT ROLLING FORWARD verwenden.

In diesem Abschnitt werden Planungsmöglichkeiten aufgezeigt und wird das Aufrufen bestimmter Dienstprogramme und Befehle zum Ausführen der Methode vorgestellt. Im Anschluß daran folgt eine Beschreibung der Konzepte und Faktoren, die für die effiziente Nutzung der Methode relevant sind.

Unter den folgenden Themen finden Sie weitere Informationen:

Sichern einer Datenbank

Eine Sicherungskopie der Datenbank kann mit dem Befehl BACKUP oder der Steuerzentrale erstellt werden. Innerhalb der Steuerzentrale wählen Sie dazu die zu sichernde Datenbank und anschließend die Sicherungsaktion aus.

Abbildung 53. Erstellen eines Datenbankabbilds

SQLD0BKP

In einem partitionierten Datenbanksystem werden die Datenbankpartitionen einzeln mit dem Befehl BACKUP DATABASE gesichert. Die Operation ist für den Datenbankpartitions-Server, auf dem der Befehl abgesetzt wird, lokal. Sie können jedoch die Prozedur db2_all von einem der Datenbankpartitions-Server im Exemplar ausführen, um den Befehl BACKUP an eine Reihe von Servern zu senden, die in einer Liste durch ihre Knotennummer identifiziert werden. Wenn Sie dieses Verfahren verwenden, müssen Sie zuerst den Katalogknoten und anschließend die anderen Datenbankpartitionen sichern. Sie können darüber hinaus die Steuerzentrale zur Sicherung von Datenbankpartitionen verwenden.

In einem partitionierten Datenbanksystem können Sie mit dem Befehl LIST NODES eine Liste der Knoten (Datenbankpartitions-Server) abrufen, die Benutzertabellen enthalten. Da diese Wiederherstellungsmethode die aktualisierende Wiederherstellung nicht unterstützt, sichern Sie die Datenbank regelmäßig auf den Knoten dieser Liste.

In einem System, in dem mit verteilten Anforderungen gearbeitet wird, werden die Befehle BACKUP und RESTORE auf die Datenbank für verteilte Anforderungen sowie auf die Metadaten angewendet, die im Katalog dieser Datenbank gespeichert sind (Oberflächen, Server, Kurznamen usw.). Datenquellenobjekte (Tabellen und Sichten) werden nicht gesichert oder wiederhergestellt, es sei denn, diese Objekte werden in der Datenbank für verteilte Anforderungen gespeichert.

Sie müssen stets die zu verwendende Wiederherstellungsmethode berücksichtigen. In den folgenden Abschnitten werden die Voraussetzungen und anderen Überlegungen für diese Aufgabe behandelt:

Anmerkung:In den folgenden Abschnitten bezieht sich der Terminus "Seiten" auf die Seiten, die für die Sicherungs- und Wiederherstellungsdienstprogramme verwendet werden. Diese Seiten sind immer 4 KB groß und sollten nicht mit den Mehrfachseitengrößen verwechselt werden, die bei Datenbankdaten zulässig sind.

Planen der Verwendung des Befehls BACKUP

Bei Ihrer Planung sind folgende Gesichtspunkte zu berücksichtigen:

Wenn Sie Tabellen haben, die DATALINK-Spalten enthalten, lesen Sie auch den Abschnitt Überlegungen zum Dienstprogramm BACKUP.

Zur Verwendung von Bandeinheiten müssen DB2-Benutzer unter SCO UnixWare 7 den Parameter BUFFER auf den Wert 16 setzen. Der Standardwert für BUFFER ist 1024 Seiten. Wenn der Wert für BUFFER auf Null gesetzt wird, muß der Datenbankmanager-Konfigurationsparameter backbufsz auf 16 gesetzt werden.

Planen des Einsatzes von Bändern für die Sicherung

Wenn Sie Ihren Tabellenbereich oder Ihre Datenbank sichern wollen, müssen Sie die Block- und die Puffergröße korrekt definieren. Dies gilt besonders dann, wenn Sie mit variablen Blockgrößen arbeiten (z. B. unter AIX, wenn die Blockgröße auf Null gesetzt wurde).

Beim Sichern gilt eine Einschränkung für die Anzahl der FIXED-Blockgrößen, die verwendet werden können. Diese Einschränkung ist deswegen vorhanden, weil DB2 die Kopfdaten des Sicherungsabbilds in 4-KB-Blöcken schreibt. Die einzigen festen Blockgrößen, die von DB2 unterstützt werden, sind 512, 1024, 2048 und 4096 Byte. Wenn Sie mit einer festen Blockgröße arbeiten, können Sie für die Sicherung eine beliebige Puffergröße angeben. Allerdings werden Sie möglicherweise feststellen, daß die Sicherung nicht erfolgreich abgeschlossen werden kann, wenn die feste Blockgröße nicht mit einem der hier angegebenen Werte übereinstimmt.

Wenn Sie über umfangreiche Datenbankdaten verfügen, benötigen Sie bei der Verwendung der o. a. festen Blockgrößen für die Sicherung sehr viel Zeit. Aus diesem Grund kann es günstiger sein, variable Blockgrößen einzusetzen.

Bei der Verwendung variabler Blockgrößen müssen Sie im Befehl BACKUP außerdem eine Puffergröße angeben, die kleiner oder gleich des oberen Grenzwertes für die verwendete Bandeinheit ist. Die Puffergröße muß dem oberen Grenzwert für die Blockgröße der verwendeten Einheit entsprechen, wenn Sie optimale Leistungswerte erzielen wollen.

Darüber hinaus sollten Sie berücksichtigen, daß beim Zurückschreiben von einem Sicherungsabbild, dessen Blockgröße variabel ist, möglicherweise ein Fehler auftritt. In diesem Fall muß das Abbild eventuell mit einer passenden Blockgröße erneut geschrieben werden. Im folgenden ist ein Beispiel für diesen Arbeitsschritt unter AIX aufgeführt:

   tcl -b 0 -Bn -f /dev/rmt0 read > sicherungsdateiname.datei
   dd if=sicherungsdateiname.datei of=/dev/rmt0/ obs=4096 conv=sync

Durch diesen Befehl wird vom Sicherungsabbild in der Datei "sicherungsdateiname.datei" ein Speicherauszug erstellt. Anschließend kann mit dem Befehl "dd" ein Speicherauszug des Sicherungsabbilds zurück auf das Band geschrieben werden, das mit einer Blockgröße von 4096 Byte arbeitet.

Problematisch bei dieser Korrekturmethode sind Abbilder, die zu umfangreich sind, um einen entsprechenden Speicherauszug in einer Datei zu speichern. Ein möglicher Lösungsansatz bei solch umfangreichen Abbildern besteht in der Verwendung des Befehls "dd". Mit diesem Befehl können Speicherauszüge von Abbildern von einer Bandeinheit auf die andere gespeichert werden. Dieses Verfahren ist möglich, solange das Abbild nicht mehrere Bänder umfaßt. Bei der Verwendung von zwei Bandeinheiten hat der Befehl "dd" folgendes Format:

   dd if=/dev/rmt1 of=/dev/rmt0 obs=4096

Wenn der Einsatz von zwei Bandeinheiten nicht möglich ist, können Sie den Abbildspeicherauszug mit dem Befehl "dd" auf einer unformatierten Einheit speichern und diesen dann anschließend von dieser Einheit auf ein Band schreiben. Die Schwierigkeit bei dieser Methode ergibt sich dadurch, daß beim Befehl "dd" die Anzahl der auf die unformatierte Einheit geschriebenen Blöcke protokolliert werden muß. Die Anzahl der Blöcke, die im Rahmen des Speicherauszugs geschrieben wurden, muß beim Zurückversetzen des Abbilds auf ein Band angegeben werden. Wird der Befehl "dd" dazu verwendet, einen Abbildspeicherauszug von einer unformatierten Einheit auf ein Band zu schreiben, wird der gesamte Dateninhalt der unformatierten Einheit auf das Band übertragen. Der Befehl "dd" kann nicht feststellen, wieviel Speicherplatz auf der unformatierten Einheit zum Speichern des Abbilds verwendet wird.

Wenn Sie den Befehl BACKUP verwenden, müssen Sie den oberen Grenzwert für die Blockgröße der verwendeten Bandeinheit kennen. Einige Beispiele:
Einheit Anschlußeinrichtung Blockgrößengrenzwert Grenzwert für DB2-Puffergröße (in 4-KB-Seiten)
8 mm scsi 131 072 32
3420 s370 65 536 16
3480 s370 65 536 16
3490 s370 65 536 16
3490E s370 65 536 16
7332 (4 mm)* scsi 262 144 64
3490e scsi 262 144 64
3590** scsi 2 097 152 512
3570 (Magstar MP)   262 144 64

Anmerkungen:

  1. * Die Einheit IBM 7332 implementiert keinen Blockgrößengrenzwert. Bei 256 KB handelt es sich lediglich um einen vorgeschlagenen Wert. Der geltende Blockgrößengrenzwert richtet sich nach dem übergeordneten Adapter.

  2. ** Während auf der Einheit IBM 3590 eine Blockgröße von 2 MB unterstützt wird, können Sie auch niedrigere Werte (z. B. 256 KB) ausprobieren, sofern die hierbei zu erzielenden Leistungen Ihren Anforderungen gerecht werden.

  3. Informationen zu den für Ihre Einheit geltenden Grenzwerten erhalten Sie in der entsprechenden Einheitendokumentation und/oder beim Hersteller der Einheit.

Aufrufen des Befehls BACKUP

Folgende Überlegungen sind beim Ausführen des Befehls BACKUP hilfreich:

Mit BACKUP erstellte Sicherungsabbilder

Sicherungsabbilder werden auf dem Ziel erstellt, das Sie beim Aufrufen des Befehls BACKUP angeben:

Die Datei des Wiederherstellungsprotokolls (Recovery History File) wird jedesmal automatisch mit den Ergebnisinformationen aktualisiert, wenn Sie eine Sicherung oder Wiederherstellung einer ganzen Datenbank ausführen. Diese Datei kann beim Überwachen der Wiederherstellungsaktivitäten innerhalb einer Datenbank hilfreich sein. Diese Datei wird im selben Verzeichnis wie die Konfigurationsdatei der Datenbank erstellt. Weitere Informationen zur Datei des Wiederherstellungsprotokolls finden Sie in Informationen in der Datei des Wiederherstellungsprotokolls.

In auf UNIX basierenden Umgebungen setzen sich die Dateinamen, die auf der Platte erstellt werden, aus folgenden Informationen zusammen, die durch Punkte voneinander getrennt werden. Auf anderen Plattformen wird eine Unterverzeichnisstruktur aus vier Ebenen verwendet:

Aliasname
Der Aliasname der Datenbank, der aus 1-8 Zeichen besteht und beim Aufruf des Befehls BACKUP angegeben wurde.

Art
Art der erstellten Sicherung, wobei "0" für vollständige Datenbank steht. "3" steht für eine Tabellenbereichssicherung. "4" steht für eine Sicherung, die mit dem Befehl LOAD...COPY TO generiert wurde.

Exemplarname
Der Name des aktuellen Exemplars des Datenbankmanagers, der aus 1-8 Zeichen besteht und der Umgebungsvariablen DB2INSTANCE entnommen wird.

Knotennummer
Die Knotennummer.

Katalogknotennummer
Die Nummer des Katalogknotens der Datenbank.

Zeitmarke
Ein Wert aus 14 Zeichen, der das Datum und die Uhrzeit angibt, zu dem die Sicherung ausgeführt wurde. Die Zeitmarke hat das Format jjjjmmtthhnnss, dabei gilt folgendes:
jjjj steht für das Jahr (1995 bis 9999)
mm steht für den Monat (01 bis 12)
tt steht für den Tag des Monats (01 bis 31)
hh steht für die Stunde (00 bis 23)
nn steht für die Minuten (00 bis 59)
ss steht für die Sekunden (00 bis 59)

Folgenummer
Eine dreistellige Ziffernfolge, die als Dateierweiterung verwendet wird.

Bei auf UNIX basierenden Betriebssystemen sieht das Format wie folgt aus:

Database alias.Type.Instance name.NODEnnnn
.CATNnnnn.timestamp.number

Unter anderen Betriebssystemen sieht das Format wie folgt aus:

Database alias.Type\Instance name.NODEnnn
\CATNnnn\yyyymmdd\hhmmss.number

Zum Beispiel kann eine Datenbank namens STAFF im Exemplar DB201 in auf UNIX basierenden Umgebungen auf einer Platte in einer Datei folgenden Namens gesichert werden:

STAFF.0.DB201.NODE0000.CATN0000.19950922120112.001

Bei auf Band geleiteten Ausgaben werden die Dateinamen nicht erstellt. Jedoch werden die obigen Informationen im Sicherungskennsatz zu späteren Prüfzwecken gespeichert.

Anmerkungen:

  1. Wenn Sie einen Banddatenträger für Sicherungs- und Wiederherstellungsoperationen für die Datenbank verwenden wollen, muß eine Bandeinheit über die Standardschnittstelle des Betriebssystems verfügbar sein. In einem großen partitionierten Datenbanksystem ist es jedoch unter Umständen nicht praktisch, eine dedizierte Bandeinheit für jeden Datenbankpartitions-Server haben. Sie können die Bandeinheiten mit einem oder mehreren TSM-Servern verbinden, so daß der Zugriff auf diese Bandeinheiten jedem Datenbankpartitions-Server ermöglicht wird.

  2. In einem partitionierten Datenbanksystem können Sie darüber hinaus Produkte verwenden, die virtuelle Bandeinheitenfunktionen implementieren, wie zum Beispiel REELlibrarian 4.2 oder CLIO/S. Sie können diese Produkte verwenden, um auf die mit anderen Knoten (Datenbankpartitions-Servern) verbundene Bandeinheit über eine Pseudobandeinheit zuzugreifen. Der Zugriff auf die ferne Bandeinheit wird transparent ermöglicht, während der Zugriff auf die Pseudobandeinheit über die Standardschnittstelle des Betriebssystems erfolgen kann.

Anzeigen von Sicherungsinformationen

Für das Anzeigen von Informationen zu den vorhandenen Sicherungsabbildern gibt es ein spezielles Sicherungsdienstprogramm. Der Name dieses Dienstprogramms lautet db2ckbkp und es ermöglicht Ihnen die Ausführung folgender Operationen:

Sie müssen über Leseberechtigung auf die angegebenen Sicherungsabbilder verfügen, wenn Sie dieses Dienstprogramm einsetzen wollen.

Wenn Sie lediglich feststellen wollen, ob ein Sicherungsabbild vorhanden ist, können Sie das Dienstprogramm folgendermaßen verwenden:

   db2ckbkp STAFF.0.DB201.NODE0000.CATNOOOO.19950922120112.001

Im folgenden ist ein Beispiel für die Ausgabedaten dieses Dienstprogramms dargestellt:

   [1] Buffers processed:  ##
 
   Image Verification Complete - successful.

Zusätzliche Informationen zu diesem Dienstprogramm finden Sie im Handbuch Command Reference.

Wiederherstellen einer Datenbank

Die folgenden Abschnitte behandeln die Voraussetzungen und andere Faktoren, die für den Befehl RESTORE relevant sind:

Abbildung 54. Wiederherstellen einer Datenbank mit Hilfe eines Sicherungsabbilds

SQLD0RSD

Planen der Verwendung des Befehls RESTORE

Folgende Faktoren sollten bedacht werden:

Wenn Sie Tabellen haben, die DATALINK-Spalten enthalten, lesen Sie die Abschnitte Überlegungen zu den Dienstprogrammen RESTORE und ROLLFORWARD und Wiederherstellen von Datenbanken von einer Offline-Sicherung ohne aktualisierendes Wiederherstellen.

Aufrufen des Befehls RESTORE

Folgende Punkte sind beim Ausführen des Befehls RESTORE zu beachten:

Erneutes Definieren von Tabellenbereichsbehältern während der Wiederherstellung mit RESTORE

Während der Sicherung einer Datenbank wird ein Datensatz über alle Tabellenbereichsbehälter protokolliert, die von den gesicherten Tabellenbereichen verwendet werden. Während einer RESTORE-Operation wird überprüft, ob alle bei der Sicherung aufgelisteten Behälter weiterhin existieren und zugriffsbereit sind. Wenn aufgrund eines Datenträgerfehlers (oder aus einem anderen Grund) ein oder mehrere Behälter nicht zugriffsbereit sind, schlägt die RESTORE-Operation fehl. Zum Zweck der Wiederherstellung in einem solchen Fall wird während der RESTORE-Operation das Umleiten der Behälter von Tabellenbereichen unterstützt. Diese Unterstützung umfaßt das Hinzufügen, Ändern bzw. Entfernen von Tabellenbereichsbehältern.

Es kann Situationen geben, in denen Sie eine Wiederherstellung wünschen, obwohl die bei der Sicherung aufgelisteten Tabellenbereichsbehälter auf dem System nicht mehr existieren. Dieser Fall kann beispielsweise eintreten, wenn Sie nach einer Störung auf einem anderen System als dem, auf dem die Sicherung stattfand, eine Wiederherstellung ausführen möchten. Auf dem neuen System sind u. U. nicht die erforderlichen Behälter definiert. Damit in diesem Fall eine RESTORE-Operation möglich ist, wird zum Zeitpunkt der Wiederherstellung das Umleiten der Behälter von Tabellenbereichen in alternative Behälter unterstützt.

In beiden Fällen wird diese Art der RESTORE-Operation auch als umgeleitete Wiederherstellung bezeichnet.

Sie können Tabellenbereichsbehälter über die RESTORE-Funktion innerhalb der Steuerzentrale neu definieren. Sie können darüber hinaus den Parameter REDIRECT des Befehls RESTORE verwenden, um die Umleitung anzugeben. Wenn Sie die Steuerzentrale verwenden, besteht eine Möglichkeit zur Durchführung einer umgeleiteten RESTORE-Operation darin, die Seite Behälter des Notizbuchs Datenbank wiederherstellen zu verwenden. Diese Seite stellt eine Funktion bereit, die Sie zum Hinzufügen neuer Behälter, zum Ändern eines vorhandenen Behälters und zum Entfernen eines Behälters verwenden können. Wenn während des Vorgangs zur Wiederherstellung der Datenbank ein ungültiger Behälter festgestellt wird, werden Sie von der Steuerzentrale aufgefordert, entweder den Pfad des Behälters zu ändern oder den Behälter zu löschen.

Anmerkungen:

  1. Verzeichnis- und Dateibehälter werden automatisch erstellt, sofern sie nicht bereits existieren. Eine Umleitung ist nicht erforderlich, es sei denn, es besteht aus irgendeinem Grund kein Zugriff auf die Behälter. Einheitenbehälter werden nicht automatisch vom Datenbankmanager erstellt.

  2. Das Umleiten von Behältern bei RESTORE-Operationen ermöglicht eine hohes Maß an Flexibilität beim Verwalten der Behälter von Tabellenbereichen. Das Hinzufügen von Behältern zu SMS-Tabellenbereichen wird zwar nicht direkt unterstützt, Sie könnten jedoch zu diesem Zweck z. B. einen zusätzlichen Behälter bei einer umgeleiteten Wiederherstellung angeben. Auf ähnliche Weise könnten Sie einen DMS-Tabellenbereich aus Dateibehältern in Einheitenbehälter verschieben.

  3. Die umgeleitete Wiederherstellung wird auch über eine Reihe von APIs unterstützt. Obwohl Sie ein Programm schreiben könnten, das die umgeleitete Wiederherstellung in einem bestimmten Fall ausführt, sind diese APIs jedoch in erster Linie für Entwickler konzipiert, die ein Dienstprogramm für allgemeinere Zwecke schreiben.

Wiederherstellen in eine vorhandene Datenbank

Sie können die Sicherungskopie einer vollständigen Datenbank in einer bereits vorhandenen Datenbank wiederherstellen. Für die Ausführung der Wiederherstellung in eine vorhandene Datenbank benötigen Sie die Berechtigung SYSADM, SYSCTRL oder SYSMAINT. Das Sicherungsabbild kann sich von der vorhandenen Datenbank durch den Aliasnamen, Datenbanknamen oder die Datenbanknummer unterscheiden.

Die Datenbanknummer ist eine eindeutige Kennung einer Datenbank, die während der Existenz der Datenbank konstant bleibt. Diese Datenbanknummer wird vom Datenbankmanager beim Erstellen der Datenbank zugeordnet. Die Datenbanknummer ist nach der Wiederherstellung einer Sicherung unverändert, auch wenn die Sicherung eine andere Datenbanknummer besitzt. DB2 verwendet immer die Datenbanknummer aus der Sicherung.

Beim Wiederherstellen in eine vorhandene Datenbank werden folgende Funktionen ausgeführt:

Wiederherstellen in eine neue Datenbank

Alternativ zum Wiederherstellen einer Datenbank in eine bereits vorhandene Datenbank können Sie eine neue Datenbank erstellen und anschließend die Sicherung der Daten wiederherstellen. Für das Wiederherstellen in eine neue Datenbank ist die Berechtigung SYSADM oder SYSCTRL erforderlich.
Anmerkung:Die Codepages der Sicherung und der Zieldatenbank müssen übereinstimmen. Wenn sie nicht übereinstimmen, erstellen Sie zunächst die neue Datenbank unter Angabe der richtigen Codepage und führen anschließend die Wiederherstellung aus.

Bei der Wiederherstellung in einer neuen Datenbank führt der Befehl RESTORE die folgenden Funktionen aus:


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]