IBM-Datenbanken optimal sichern Backup von IBM Db2: Zusatztools und Bordmittel für die Datensicherung

Von Thomas Joos 4 min Lesedauer

Anbieter zum Thema

Beim Einsatz von IBM Db2 spielt die Datensicherung eine genauso wichtige Rolle wie bei anderen Datenbanken. Daher sollten sich Admins auch in diesem Fall ausführlich mit dem Thema Backup auseinandersetzen. Für die Datensicherung gibt es verschiedene Methoden.

Datenbanken müssen per Backup gesichert werden, so auch IBM Db2. Unser Artikel zeigt, wie’s geht.
Datenbanken müssen per Backup gesichert werden, so auch IBM Db2. Unser Artikel zeigt, wie’s geht.
(Bild: frei lizenziert / Pixabay)

Backups von Datenbanken auf Basis von IBM Db2 lassen sich auf verschiedenen Wegen erstellen. Mit Bordmitteln können Datenbanken unproblematisch vor Änderungen am Server gesichert werden, ohne dass Zusatztools notwendig sind. IBM Db2 unterstützt Online- und Offline-Sicherungen für Backups.

Bildergalerie

Bei einer Offline-Sicherung wird jedes Mal eine vollständige Sicherung der kompletten Datenbank erstellt. Wenn eine Wiederherstellung notwendig ist, lässt sich die Datenbank mit jeder Offline-Sicherung wiederherstellen. Für das Erstellen einer Offline-Sicherung ist es allerdings notwendig, die Datenbank offline zu nehmen oder zu deaktivieren, sodass Benutzer in der Sicherungszeit nicht mit ihr arbeiten können.

So funktioniert die Offline-Sicherung mit IBM Db2

Bei der Offline-Sicherung von IBM Db2 wird eine Datenbank komplett in eine einzelne Datei gesichert. Die Datenbank wird während der Sicherung deaktiviert und hat daher keinerlei aktive Transaktionen. Dadurch erfasst die Sicherung alle aktuellen Transaktionen, die bereits auf die Datenbank ausgeführt wurden. Der Vorteil dabei besteht darin, dass dadurch die Datenbanksicherung komplett unabhängig von Transaktionsprotokollen ist und sich daher schnell und einfach wiederherstellen lässt. Wir zeigen nachfolgend eine Offline-Sicherung Schritt für Schritt.

Am Beispiel der Datenbank „sample“ werden dazu zunächst mit

db2 terminate

die aktuellen Hintergrundprozesse in der CLI (Befehlszeilenprozessor) beendet. Das hat keinen Einfluss auf den Rest des Servers. Danach wird die entsprechende Datenbank deaktiviert:

db2 db deactivate sample

Auf dem gleichen Weg lassen sich auch andere Datenbanken deaktivieren, wenn sie offline gesichert werden sollen. Um jetzt die Datenbank offline zu sichern, kommt folgender Befehl zum Einsatz:

db2 backup database sample to c:\temp

Es ist auf diesem Weg möglich, mehrere Datenbanken auf einmal offline zu sichern, auch über ein Skript oder eine Batchdatei. Die Sicherung erfolgt in einer Datei, die in etwa der Größe der Datenbank entspricht. Es muss also genügend Speicherplatz vorhanden sein.

Db2 fügt zur Bezeichnung der Sicherungsdatei einen Zeitstempel hinzu, sodass sich im selben Verzeichnis mehrere Sicherungen derselben Datenbank parallel und auch mehrere Datenbanken parallel speichern lassen. In der Befehlszeile ist es darüber hinaus dann auch sinnvoll, die Datenbankdatei zu verifizieren. Dazu kommt zum Beispiel der folgende Befehl zum Einsatz:

db2ckbkp c:\temp\SAMPLE.0.DB2.DBPART000.20221208095316.001

Die Offline-Sicherung ist jetzt abgeschlossen, und im Anschluss kann die Datenbank wieder aktiviert werden. Nach der Aktivierung können Anwender mit der Datenbank arbeiten. Die Sicherungsdatei ermöglicht die Wiederherstellung der Datenbank, inklusive aller durchgeführten Transaktionen zu diesem Zeitpunkt.

Online-Sicherung von Datenbanken mit Bordmitteln

Neben verschiedenen Sicherungstools für IBM Db2 ist es weiterhin möglich, Datenbanken mit Db2 mit dem Bordmitteltool „db2.exe“ online zu sichern. Der Befehl dazu lautet zum Beispiel:

db2 backup database sample online to c:\temp compress include logs

Damit das funktioniert, muss die Archivprotokollierung für die Datenbank aktiv sein. Das kann mit dem folgenden Befehl am Beispiel der Datenbank „sample“ überprüft werden:

db2 get db cfg for sample | grep LOGARCHMETH

Hier darf bei „First log archiv method“ nicht der Wert „Off“ stehen. Auf Windows-Servern steht „grep“ nicht zur Verfügung. Hier kann der Inhalt der Konfiguration aber auch manuell durchsucht werden. Wichtig ist an dieser Stelle der Wert „Erste Protokollarchivierungsmethode“.

Ansonsten lassen sich mit Bordmitteln keine Online-Sicherungen durchführen. Für die Speicherung der Sicherung müssen für das jeweilige Verzeichnis die entsprechenden Rechte vorhanden sein, damit die Online-Sicherung im jeweiligen Verzeichnis erfolgen kann, in dem Db2 auch Archiv-Protokolle speichern darf. Die Archivierungsprotokollierung lässt sich zum Beispiel mit dem folgenden Befehl einschalten:

db2 update database configuration for sample using LOGARCHMETH1 'disk:/temp'

Auch der Status in der Konfigurationsdatei ist auf dieses Verzeichnis gesetzt. Das lässt sich mit dem obenstehenden Befehl überprüfen. Anschließend kann eine Sicherung der Datenbank mit diesem Befehl durchgeführt werden. Nach der erfolgreichen Sicherung ist es auch hier möglich, die Sicherungsdatei zu überprüfen:

db2ckbkp <Backupdatei>
Bildergalerie

Datenbanken wiederherstellen

Wenn das Tool eines Drittanbieters zum Einsatz kommt, kann die Wiederherstellung mit dem jeweiligen Tool erfolgen. Es ist aber auch möglich, eine Wiederherstellung mit Bordmitteln durchzuführen. Dazu wird entweder auf Offline-Sicherungen oder auf Online-Sicherungen zurückgegriffen. Für das Wiederherstellen einer Datenbank aus einer Offline-Sicherung muss diese deaktiviert werden, wie bei der Sicherung auch:

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung
db2 terminatedb2 deactivate db sample

Danach erfolgt die Wiederherstellung nach folgender Syntax:

db2 restore db sample from <Speicherort> taken at <Zeitstempel> replace existing

Der Zeitstempel wird im Rahmen der Sicherung auch angezeigt. Ist dieser nicht mehr bekannt, lässt er sich aus der Sicherungsdatei auslesen. Bei dem Zeitstempel handelt es sich um den Wert, der zwischen den beiden letzten Punkten der Sicherungsdatei zu sehen ist:

SAMPLE.0.DB2.DBPART000.20221209082042.001

Bei dem Vorgang werden allerdings alle Daten der aktuellen Datenbank überschrieben. Daher ist es sinnvoll, vor der Wiederherstellung und damit vor dem Überschreiben einer Datenbank diese zunächst ebenfalls zu sichern und danach die Wiederherstellung durchzuführen.

Bei der Wiederherstellung einer Online-Sicherung ist die Vorgehensweise identisch, es werden aber nach der Wiederherstellung der Sicherungsdatei noch die vorhandenen Transaktionsprotokolle zurück in die Datenbank geschrieben:

db2 rollforward db sample to end of logs and stop log path (/var/archive_logs)

(ID:49189946)