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:
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
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. |
Bei Ihrer Planung sind folgende Gesichtspunkte zu berücksichtigen:
Unter OS/2 haben Sie außerdem die Möglichkeit, Sicherungskopien auf Diskette oder mit Hilfe eines Benutzer-Exit-Programms zu speichern.
pufferseiten <= ST_MAX_BUFFERS * ST_BUFFER_BLOCKS / 4Hierbei steht pufferseiten für den Wert von backbufsz oder restbufsz. ST_MAX_BUFFERS und ST_BUFFER_BLOCKS sind im Linux-Kernel im Verzeichnis drivers/scsi definiert.
Auf UNIX basierende Betriebssysteme und Windows NT verfügen über eine eigene integrierte Unterstützung von Bandeinheiten.
Anmerkung: | Wenn Sie variable Blockgrößen auf Ihren Bandeinheiten verwenden, müssen Sie sicherstellen, daß die DB2-Puffergröße kleiner oder gleich der maximalen variablen Blockgröße ist, für die die Einheit konfiguriert ist. Andernfalls ist es möglich, daß die Sicherung zwar erfolgreich beendet wird, aber das erstellte Datenbankabbild nicht unbedingt wiederherstellbar ist. |
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.
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:
Folgende Überlegungen sind beim Ausführen des Befehls BACKUP hilfreich:
Mit diesem Parameter können Sie die zur Durchführung einer Sicherung benötigte Zeit erheblich verringern. Der Parameter PARALLELISM definiert die Anzahl der Prozesse bzw. Threads, die zum Lesen von Daten aus der Datenbank gestartet werden. Jeder Prozeß bzw. Thread wird für das Sichern eines bestimmten Tabellenbereichs zugeordnet. Wenn er das Sichern des Tabellenbereichs beendet hat, fordert er einen anderen an. Beachten Sie jedoch, daß für jeden Prozeß bzw. Thread sowohl Hauptspeicher- als auch CPU-Systemaufwand anfallen, d. h. belassen Sie den Parameter PARALLELISM bei einem stark ausgelasteten System auf dem Standardwert 1.
Wenn Sie mehrere Puffer und E/A-Kanäle verwenden, sollten Sie zumindest doppelt so viele Puffer wie Kanäle verwenden, um sicherzustellen, daß die Kanäle nicht auf Daten warten müssen. Die Größe der verwendeten Puffer trägt ebenfalls zur Leistung der Sicherungsoperation bei. Die ideale Größe des Sicherungspuffers ist ein Vielfaches der Größe des durch EXTENTSIZE definierten Bereichs für den/die Tabellenbereich(e).
Wenn Sie mehrere Tabellenbereiche mit verschiedenen EXTENTSIZE-Bereichen haben, geben Sie einen Wert an, der ein Vielfaches des größten Werts für EXTENTSIZE darstellt.
Beim Aufrufen des Befehls BACKUP können Sie die Anzahl der Seiten angeben, die Sie für jeden Sicherungspuffer verwenden wollen. Die minimale Anzahl beträgt 16 Seiten. Wenn Sie keine Seitenanzahl angeben, wird für die Zuordnung jedes Puffers der Wert des Konfigurationsparameters backbufsz des Datenbankmanagers herangezogen. Reicht der verfügbare Speicher für die Zuordnung eines Puffers nicht aus, wird eine Fehlernachricht ausgegeben.
Weitere Informationen zu diesem Konfigurationsparameter finden Sie in Kapitel 32, Konfigurieren von DB2.
Weitere Informationen zum Umstellen einer Datenbank finden Sie in Anhang B, Planen der Datenbankmigration.
Wenn während des Sicherungsprozesses ein Fehler auftritt und der geöffnete Behälter nicht geschlossen werden kann, empfangen andere Sicherungsprozesse mit demselben Ziellaufwerk eventuell Nachrichten über Zugriffsfehler. Zur Behebung etwaiger Zugriffsfehler müssen Sie den Sicherungsprozeß, der den Fehler verursachte, vollständig verlassen und die Verbindung zur Zieleinheit trennen.
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:
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:
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.
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
Folgende Faktoren sollten bedacht werden:
Wenn die Option angegeben wird und der DB2 Data Links Manager, der die DATALINK-Daten enthält, nicht verfügbar ist, werden alle Tabellenbereiche, die Tabellen mit DATALINK-Werten enthalten, auf dem nicht verfügbaren Server in den Status RESTORE PENDING versetzt. Diese Tabellenbereiche müssen erneut wiederhergestellt werden, wenn der Data Links-Server wieder verfügbar ist.
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.
Folgende Punkte sind beim Ausführen des Befehls RESTORE zu beachten:
Beim Aufrufen des Befehls RESTORE können Sie die Anzahl der Seiten angeben, die Sie für jeden Wiederherstellungspuffer verwenden wollen. Der Wert, den Sie angeben, muß ein Vielfaches der Anzahl der Seiten sein, die Sie für den Sicherungspuffer angegeben haben. Die minimale Anzahl beträgt 16 Seiten. Wenn Sie keine Seitenanzahl angeben, wird für die Zuordnung jedes Puffers der Wert des Konfigurationsparameters restbufsz des Datenbankmanagers herangezogen. Reicht der verfügbare Speicher für die Zuordnung eines Puffers nicht aus, wird eine Fehlernachricht ausgegeben.
Weitere Informationen zu diesem Konfigurationsparameter finden Sie in Kapitel 32, Konfigurieren von DB2.
Es kann auch eine partielle Zeitmarke angegeben werden. Betrachten Sie beispielsweise den Fall, daß zwei unterschiedliche Sicherungen mit den Zeitmarken 19971001010101 und 19971002010101 vorhanden sind. Wenn für den Parameter TAKEN AT den Wert 19971002 angeben, wird die Sicherung mit der Zeitmarke 19971002010101 verwendet.
Wenn der Parameter TAKEN AT nicht angegeben wird, darf sich nur eine einzige Sicherung auf dem Quellendatenträger befinden.
Wenn Sie bei Verwendung von TSM den Parameter TAKEN AT nicht angeben, ruft TSM die letzte Sicherungskopie ab.
Unter OS/2 kann sich die Sicherungskopie der Datenbank auch auf einer Diskette befinden oder über einen Benutzer-Exit lokalisiert werden.
Unter unterstützten Versionen des Betriebssystems Windows kann sich die Sicherungskopie der Datenbank auch auf einer Diskette befinden.
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:
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:
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: