In Kapitel 8., "Wiederherstellen einer Datenbank", wurde der folgende Abschnitt zur Verwendung der Funktion für zurückgestellte Ein-/Ausgabe hinzugefügt und aktualisiert:
db2inidb ist ein neues Tool, das mit DB2 geliefert wird und das Wiederherstellungen nach Systemabstürzen durchführen und eine Datenbank in den Status "Aktualisierende Wiederherstellung anstehend" setzen kann.
Die zurückgestellte Ein-/Ausgabe unterstützt fortlaufende Systemverfügbarkeit, indem sie eine vollständige Implementierung für die Handhabung der Onlineteilung einer Spiegeldatenbank, d. h. Teilung einer Spiegeldatenbank ohne Herunterfahren der Datenbank, bietet. Wenn ein Kunde sich keine Offline- oder Onlinesicherungen einer großen Datenbank leisten kann, können Sicherungen oder Systemkopien von einem Spiegelimage mit Hilfe zurückgestellter Ein-/Ausgabe und einer geteilten Spiegeldatenbank erstellt werden.
Zurückgestellte E/A verhindert das Schreiben auf Platte, um sicherzustellen, dass das geteilte Spiegeldatenbankimage einer Datenbank konsistent ist. Neben der Onlinesicherung und -wiederherstellung sollten alle Datenbankoperationen normal funktionieren, während eine Datenbank zurückgestellt ist. Einige Operationen können jedoch blockieren, während versucht wird, benutzte Seiten aus dem Pufferpool auf Platte zu schreiben oder Puffer zu protokollieren. Diese Operationen sollten normal fortgesetzt werden, sobald die Datenbank-E/A wieder aufgenommen wird. Es ist wichtig, dass die Datenbank-E/A von derselben Verbindung wieder aufgenommen wird, von der sie ursprünglich zurückgestellt wurde. Andernfalls kann ein nachfolgender Verbindungsversuch blockieren, wenn er das Schreiben benutzter Seiten aus dem Pufferpool auf Platte erfordert.
Beim Spiegeln einer Datenbank wird vor allem der gesamte Inhalt des Datenbankverzeichnisses kopiert. Es ist auch notwendig, das Protokollverzeichnis und alle Tabellenbereichsbehälter zu kopieren, wenn diese sich nicht im Datenbankverzeichnis befinden. Da die geteilte Spiegeldatenbank von diesen Verzeichnispfaden abhängt, müssen die Pfade, in die diese Verzeichnisse kopiert werden, identisch mit denen auf dem primären System sein. Dies impliziert, dass das Exemplar ebenfalls das gleiche sein muss. Als Ergebnis dieser Abhängigkeit ist es nicht möglich, eine Datenbank auf demselben System wie das primäre System zu spiegeln, sofern nicht die neue Option "relocate" des Tools db2inidb verwendet wird.
Die Option "relocate" ermöglicht es, eine Datenbank auf einem bestimmten System mit einer angegebenen Konfigurationsdatei zu verlagern. Dies kann das Ändern des internen Datenbankverzeichnisses, der Behälterverzeichnisnamen, des Protokollverzeichnisses, des Exemplarnamens und des Datenbanknamens umfassen. Wenn das Datenbankverzeichnis, die Behälterverzeichnisse und das Protokollverzeichnis erfolgreich auf andere Verzeichnispfade auf demselben System wie die primäre Datenbank gespiegelt wurden, kann das Tool db2inidb zusammen mit der Option "relocate" verwendet werden, um die internen Pfade der gespiegelten Datenbnak zu aktualisieren. Ein Nutzungsszenario mit dieser Option finden Sie weiter unten.
Je nachdem, wie die Speichereinheiten gespiegelt werden, ist die Verwendung von db2inidb unterschiedlich. Im Folgenden wird davon ausgegangen, dass die gesamte Datenbank konsistent im Speichersystem gespiegelt wird.
In einer Umgebung mit mehreren Knoten muss das Tool db2inidb auf jeder Partition ausgeführt werden, bevor das geteilte Image von einer der Partitionen verwendet werden kann. Das Tool db2inidb kann auf allen Partitionen gleichzeitig ausgeführt werden.
Das Ziel ist, einen Klon der primären Datenbank zu erhalten, der nur für Lesezugriff verwendet werden kann. Die folgende Prozedur beschreibt, wie eine Klondatenbank erstellt werden kann:
db2 set write suspend for database
db2 set write resume for database
Nach dem Ausführen des Befehls sollte die primäre Datenbank wieder im normalen Zustand sein.
db2start
db2inidb datenbankname AS SNAPSHOT
Sie können diesen Prozess auch für eine Offlinesicherung verwenden. Wenn sie jedoch in der primären Datenbank wiederhergestellt wird, kann diese Sicherung nicht mehr zur aktualisierenden Wiederherstellung verwendet werden, da die Protokollkette nicht übereinstimmt.
Während die gespiegelte (Bereitschafts-)Datenbank ständig über die Protokolle aktualisierend wiederhergestellt wird, werden neue Protokolle, die von der primären Datenbank erstellt werden, ständig vom primären System abgerufen. Die folgende Prozedur beschreibt, wie die geteilte Spiegeldatenbank als Bereitschaftsdatenbank verwendet werden kann:
db2 set write suspend for database
db2 set write resume for database
db2inidb datenbankname AS STANDBY
Die folgende Prozedur beschreibt, wie die gespiegelte Datenbank als Sicherungsimage zur Wiederherstellung über die primäre Datenbank verwendet werden kann:
db2start
db2inidb datenbankname AS MIRROR
Die folgende Prozedur beschreibt, wie Sie die Option "relocate" des Tools db2inidb zum Spiegeln einer Datenbank auf demselben System wie die primäre Datenbank verwenden können. Bei dem Beispiel wird davon ausgegangen, dass die Datenbank unter einem neuen Exemplar verwendet wird.
db2 set write suspend for database
db2 set write resume for database
db2start
db2inidb datenbankname as STANDBY relocate using konfigurationsdatei