Für den Administrator, Neu vorgestellt

Datenbanksicherung durch Schattenkopie

Bisher mussten für die Sicherungen von Datenbanken im laufenden Betrieb unter Windows entsprechende Backup-Ereignisse eingerichtet werden. Entweder als statische Events per Web-Oberfläche oder dynamisch mittels Script-Utility oder Prozedurbefehl. Dies erfordert zwar nicht viel Aufwand, eine falsche oder fehlende Konfiguration kann jedoch ein brauchbares Backup verhindern.

Ab der kommenden Serverversion 5.7.08 können Backup-Ereignisse auch automatisch bei der Erstellung einer Schattenkopie stattfinden.


Eine Schattenkopie, die auch als „Shadow Copy“ oder „Volume Snapshot“ bezeichnet wird, ist eine Momentaufnahme eines oder mehrerer Massenspeicher-Volumes (C:,D:,etc.). Diese Snapshots erlauben beispielsweise eine Datensicherung im laufenden Betrieb oder die Wiederherstellung älterer Versionsstände des Volumes.

Das Backup eines Snapshots bietet gegenüber einer dateibasierten Sicherung des Original-Volumes drei wesentliche Vorteile:

  • die blockweise Sicherung eines Volumes ist deutlich schneller
  • gesperrte Dateien behindern die Sicherung nicht
  • während der Sicherung kann ohne Einschränkungen weitergearbeitet werden

Snapshots werden im laufenden Betrieb erzeugt, indem ab dem Erstellungszeitpunkt alle Schreiboperationen auf dem Volume entweder in einen alternativen Speicherbereich geschrieben werden (Redirect-on-Write) oder der ursprüngliche Inhalt des jeweiligen Speicherblocks in den Speicherbereich des Snapshot gesichert wird (Copy-on-Write). Damit der Snapshot brauchbare Daten enthält, muss das Volume zum Erstellungszeitpunkt einen konsistenten Zustand aufweisen. Dateisystem, Metadaten, System- und Anwendungsdatenbanken müssen daher vor der Erstellung des Snapshots entsprechend präpariert werden.

Windows Volume Shadow Copy Service (VSS)

Unter diesem Begriff läuft ein Windows-Systemdienst, der die Erstellung und Verwaltung von Snapshots ermöglicht. Viele Datensicherungsprogramme verwenden inzwischen diesen Dienst, um die oben genannten Vorteile zu erzielen. Bei der Erzeugung und Benutzung von Snapshots mittels VSS sind zahlreiche Softwarekomponenten beteiligt, die sich in drei Kategorien einteilen lassen:

VSS Provider

Ein „Provider“ stellt die Funktionen zur Generierung, Verwaltung und Nutzung von Snapshots bereit. Standardmäßig ist ein „System Provider“ im Windows-Betriebssystem vorhanden, der Schattenkopien auf der Ebene des Dateisystems (NTFS oder ReFS) realisiert. Zusätzlich lassen sich weitere Provider installieren, die die Snapshot-Funktionalität entweder in der Schicht der Storage-Treiber („Software Provider“) oder in der Storage-Hardware („Hardware Provider), beispielsweise im Controller oder in einem SAN-System, abbilden.

VSS Requestor

Ein „Requestor“ ist üblicherweise ein Backup-Client oder -Agent, der mit dem Provider kommuniziert und den Snapshot anfordert, die Daten sichert und den Snapshot auch wieder entfernt. Unter VMware agieren beispielsweise die installiertem VMware-Tools als Requestor, um die Konsistenz der VMware-eigenen Snapshots zu gewährleisten.

VSS Writer

Zur Herstellung eines konsistenten Zustands werden die „Writer“ benötigt. Ein VSS-Writer übernimmt die Aufgabe, die Dateien seiner Anwendung entsprechend „einzufrieren“ und nach der Erstellung des Snapshots auch wieder in den Normalzustand zu versetzen. Für CONZEPT 16-Datenbanken ist somit ein spezieller VSS-Writer erforderlich.

(c) by Microsoft Inc.

VSS mit CONZEPT 16

Die Unterstützung von Schattenkopien geschieht vollautomatisch, der Administrator braucht bei der Installation oder beim Update des CONZEPT 16-Servers nichts zu berücksichtigen. Nach dem Start des Datenbankservers registriert dieser den VSS-Writer, der es dem VSS-Dienst ermöglicht, die eingetragenen Datenbanken in den Backup-Modus zu versetzen. Zu diesem Zweck gibt es die beiden Programmdateien c16_serv_vss_w32.dll und c16_serv_vss_w64.dll, die die Funktionen eines VSS-Writers bereitstellen.

Standardmäßig ist für jede eingetragene Datenbank die VSS-Unterstützung aktiviert. Per Web-Interface des Servers kann diese jedoch pro Datenbank ausgeschaltet werden.

VSS Events

Der Writer bekommt vom VSS-Dienst Ereignisse, die durch Operationen eines VSS-Requestors (Backup-Software) ausgelöst und an den Datenbank-Managerprozess weitergereicht werden. Anhand dieser Events startet und beendet der Manager dann den Backup-Modus für die betroffenen Datenbanken.

Vorteile von VSS

  • kurze Backup-Ereignisse
    Eine Datenbank braucht sich nur zum Zeitpunkt der Erstellung des Snapshots im Backup-Modus zu befinden. Während der eigentlichen Sicherung befindet sich die Datenbank im Normalzustand. Das Backup-Ereignis dauert meist nur wenige Sekunden.
  • weniger Administrationsaufwand und geringere Fehleranfälligkeit
    Es besteht keine Notwendigkeit mehr, Backup-Zeiten einzutragen oder das Script-Utility einzubinden, die Steuerung der Backup-Events übernimmt automatisch die Sicherungssoftware. Die Gefahr von fehlenden oder nicht zu den Sicherungen passenden Backup-Events entfällt.
  • Unterstützung komplexer Lösungen
    Neben klassischer Backup-Software wird VSS auch von speziellen Data-Protection-Produkten unterstützt. Dazu zählen beispielsweise Snapshot- und Replikationsanwendungen, die direkt auf den Storage-Systemen laufen, Sicherungsanwendungen auf der Virtualisierungsebene oder Anwendungen wie der „System Center Data Protection Manager“.
  • Sicherung der Standby-Datenbank möglich
    Im Hot-Standby-Betrieb kann per VSS auch die Standby-Datenbank in einem konsistenten Zustand gesichert werden.

Betriebssysteme mit VSS

Aufgrund von Einschränkungen in älteren Windows-Versionen unterstützt CONZEPT 16 den Volume Shadow Copy Service ab Windows Vista beziehungsweise Windows Server 2008 in der 32- und 64-Bit-Variante. Natürlich funktioniert das auch mit neueren Versionen wie Windows 7, 8, 8.1 sowie Windows Server 2008 R2, 2012 und 2012 R2.

Unter Linux gibt es keinen VSS-Dienst, es können jedoch Snapshots mittels LVM (Logical Volume Manager) erzeugt werden. Hierbei muss aber nach wie vor das Script-Utility verwendet werden, um vor der Erzeugung („lvcreate -s …“) die Datenbank in den Backup-Modus zu schalten und diesen danach auch wieder aufzuheben.

Update: Voraussichtlich werden auch die Betriebssysteme Windows Server 2003 und 2003 R2 in der 32- und 64-Bit-Version unterstützt.

Keine Kommentare

Kommentar abgeben