Im ersten Teil der Serie “Vorschläge zur Datensicherung mit SQL-Server” habe ich ein paar Dinge zum Umfeld und zum Verständnis geschrieben. Im zweiten Teil beschrieb ich das Vorgehen beim Offline-Backup, im dritten die Online-Vollsicherung. In diesem Teil gehe ich auf die differentielle bzw. inkrementelle Online-Sicherung ein. Dabei wird im laufenden Betrieb nur der geänderte Inhalt der Datenbank mit Bordmitteln des SQL-Servers gesichert.
Ablauf
- Datenbank-Prüfung
- Datenbank-Sicherung
- Archivierung der Sicherungsdateien
Datenbank-Prüfung
Hier gilt genau das gleiche wie bei den Sicherungsarten: Immer schön brav kontrollieren, ob ein Fehler entdeckt wurde. Man kann sich ja auch eine Mail schreiben lassen, wenn ein Problem entdeckt wurde. Das ist aber eine andere Geschichte…
Datenbank-Sicherung
Mit dem Backup-Befehl wird nur der geänderte Inhalt der Datenbank gesichert. Dazu wird der Inhalt von benutzten Seiten in die Sicherungsdatei rausgeschrieben. Im Gegensatz zur Vollsicherung, werden aber wirklich nur die geänderten Seiten gesichert. Hat sich auf einer Datenbankseite nur ein Bit geändert, dann wird dennoch die komplette Seite gesichert.
- Bei der inkrementellen Sicherung werden alle Seiten geschrieben, die sich seit der letzten Sicherung geändert haben. Dabei ist es irrelevant, ob das eine inkrementelle oder volle Sicherung war. Jedesmal entsteht so etwa gleichgroße Sicherungsdatei. Sie müssen alle archiviert werden.
- Bei der differentiellen Sicherung werden alle Seiten gesichert, die sich seit der letzten Vollsicherung geändert haben. Bei der nachfolgenden Sicherung werden also auch die Seiten gesichert, die schon vorher differentiell gesichert wurden. Nach einiger Zeit wird der zu sichernde Teil der Datenbank immer größer, in manchen Fällen ist es auch schon wieder fast eine Komplettsicherung.
Der Ablauf sollte in beiden Fällen so sein, dass regelmäßig Vollsicherungen durchgeführt werden (z.B. am Wochenende) und dazwischen in kleineren Abständen die differentielle bzw. inkrementelle Online-Sicherung (also z.B. jeden Werktag).
Die Verfahren unterscheiden sich beim Vorgehen der Rücksicherung:
- inkrementelle Sicherung: Zunächst muss die letzte Vollsicherung zurückgesichert werden und dann jede einzelne inkrementelle Sicherung, die seitdem gemacht wurde, in der richtigen Reihenfolge. Das ist recht mühsam und erfordert gute Nerven, außerdem sollte das kein Laie machen müssen.
- differentielle Sicherung: Auch hier wird zuerst die letzte Vollsicherung eingespielt und dann die letzte differentielle Sicherung. Das ist also erheblich schneller und einfacher als die Rücksicherung der inkrementellen Sicherung.
Archivierung der Sicherungsdateien
Nach der Sicherung müssen die entstandenen Sicherungsdateien noch auf ein dauerhaftes Medium archiviert werden. Auch hier ist darauf zu achten, dass die Archivierung erst nach dem Ende der SQL-Server-Sicherung beginnt.
Bitte beachten Sie, dass ich in diesem Artikel nicht von einer Differenzsicherung auf Datei-Ebene spreche. Das ist ein komplett anderes Verfahren und meiner Ansicht nach beim SQL-Server nicht sinnvoll einsetzbar.
Vorteile
- Diese Methoden sind sehr schnell.
- Diese Methoden ermöglichen einen 7x24-Stunden-Betrieb.
Risiken und Nebenwirkungen
- Für diese Sicherungsmethode muss man grundlegende Kenntnisse über Datenbanksystemen haben.
- Man muss ein SQL-Server-Werkzeug verwenden (oder SQL beherrschen) und mit der "normalen" Sicherung koordinieren.
- Die Rücksicherung erfordert gute Vorbereitung und einen guten Admin.
- Ist eine der Dateien aus der inkrementelle Rücksicherung defekt, dann können auch nachfolgende Sicherungen nicht mehr eingespielt werden.
Mein persönliches Resümee:
Wenn man einen 24x7-Stundenbetrieb gewährleisten muss und die regelmäßige Vollsicherung in Kombination mit dem Full-Recovery-Mode nicht in Frage kommt, weil bspw. die Sicherungsdateien zu groß werden oder die Sicherung zu lange dauern würde, dann bleibt kaum etwas anderes übrig als die differentielle oder inkrementelle Sicherung zu verwenden. Eine Alternative stelle ich in dem nächsten Artikel mit dem VSS vor.
Die differentielle Sicherung ist dann die richtige Wahl, wenn in einem Zeitraum von etwa einer Woche immer wieder die gleichen Daten geändert werden. Dann würde Größe und Dauer der Sicherung nur langsam wachsen.
Wird hingegen in Sicherungszeitraum ein sehr großer Teil der Daten geändert, dann mutiert die differentielle Sicherung ja schon fast zu einer Komplettsicherung. In diesem Fall ist die kompliziertere inkrementelle Sicherung zu bevorzugen.
Im nächsten Artikel aus der Serie stelle ich die "Snapshot"-Sicherung vor.