MS SQL FAQ.de

Datensicherung - Eine Einführung

Die wohl mit Abstand wichtigste Aufgabe eines Datenbankadministrators ist die Sicherstellung einer funktionsfähigen Datensicherung.

Der SQL Server bietet gleich mehrere Möglichkeiten zur Erstellung einer Datensicherung. Diese hängen von der Art der Wiederherstellung und von der Wahl der verwendeten Werkzeuge zur Administration ab.

Die Frage nach der Art der Wiederherstellung wird Ihnen sicherlich fremd erscheinen sofern Sie es bisher nur mit einer klassischen Datensicherung für Dateien zu tun hatten.

Beim SQL Server wird zwischen

einer Einfachen Wiederherstellung,

einer Vollständigen Wiederherstellung

und einer Massenprotokollierten Wiederherstellung (Bulk-Logged)

unterschieden.

Klingt wichtig, ist es auch! Was ist nun damit gemeint?

Dazu stellen Sie sich bitte mal die Frage: "Wie wichtig sind meine Daten in der Datenbank und wie viel Datenverlust verkraften meine Firma und Anwender?"

Wenn nun als Antwort kommt: "Natürlich sind meine Daten sehr wichtig und es darf überhaupt keinen Datenverlust geben!" dann sollten Sie sich auch klar sein, dass der vollständige Schutz vor Datenverlust auch einiges kostet.

Was ist nun damit wieder gemeint? Klar, Geld! Genau genommen ist Zeit und Geld gemeint, aber da ja Zeit im Unternehmen auch immer Geld ist kommt es auf das Gleiche hinaus.

Wenn vorgerechnet wird was der vollständige Schutz vor Datenverlust kostet, dann wird die Antwort von eben häufig geändert in ein: "Nun ja, einen Tag Datenverlust können wir uns wohl leisten. Hauptsache die Daten sind nicht ganz weg!"

Zurück zur Technik, dann wird das oben gesagte auch klarer.

Die drei Arten der Wiederherstellung unterscheiden sich in der Handhabung des Transaktionsprotokolls. Im Transaktionsprotokoll werden vom SQL Server alle Änderungen an einer Datenbank (sogenannte Transaktionen) mitgeschrieben. Es existiert neben der Datenbank also auch noch ein Protokoll aller Änderungen! Und dieses Protokoll kann sehr schnell sehr gross werden. Das hängt natürlich von der Anzahl der Änderungen in der Datenbank ab. Damit ist auch das Hinzufügen und Löschen von Datensätzen gemeint.

Wenn nun die Datenbank und das Transaktionsprotokoll auf getrennten Datenträgern liegen, dann kann bei dem Auftreten eines Fehlers auf dem Datenträger mit der Datenbank diese mit Hilfe des Transaktionsprotokolls (fast) vollständig wiederhergestellt werden. Dazu muss die Datenbank von der letzten Datensicherung wiederherstellt werden, den Rest übernimmt in der Regel der SQL Server. Es werden auf die Datenbank alle Änderungen des Transaktionsprotokolls durchgeführt bis sie wieder den letzten aktuellen Stand hat und konsistent ist.

Das passiert im groben bei einer vollständigen Wiederherstellung. Klingt super, wo ist der Hacken? Wie bereits beschrieben kann das Transaktionsprotokoll sehr schnell wachsen. Es muss regelmäßig gesichert werden und es sollte nach Möglichkeit auf einem getrennten Datenträger liegen. Ohne diese Maßnahmen bringt einem die vollständige Wiederherstellung nichts. Des weiteren kostet das Schreiben des Protokolls wertvolle Zeit in der Ausführung der Transaktionen.

Bei der einfachen Wiederherstellung wird das Transaktionsprotokoll einfach weggelassen. Damit steht aber auch nur der Stand einer Datenbank seit der letzten Datensicherung zur Verfügung.

Ein Kompromiss, und kein schlecher, steht mit der massenprotokollierten Wiederherstellung zur Verfügung.

Warum nun ein Kompromiss? Bei der massenprotokollierten Wiederherstellung werden einige massenorientierte Transaktionen nicht im Detail protokolliert, sondern nur die Ergebnisse dieser. Dieses Verfahren spart wertvollen Platz im Transaktionsprotokoll und Zeit, da nicht jede Transaktion im Detail mitgeschrieben wird. Wird nun das Transaktionsprotokoll gesichert, dann werden auch die Änderungen in der Datenbank gesichert. Was bedeutet das? Eine Sicherung des Transaktionsprotokolls kann dadurch sehr groß werden und relativ lange dauern. Das ist der Hacken bei der Sache!

Ein Wechsel zwischen den verschiedenen Arten der Wiederherstellung ist jederzeit möglich. Gerade der Wechsel zwischen der vollständigen und massenprotokollierten Wiederherstellung macht häufig Sinn, wenn eine vollständige Wiederherstellung im Alltag notwendig ist und geplante massenorientierte Transaktionen durchgeführt werden müssen.

Eine Empfehlung, welche Art der Wiederherstellung nun die optimale ist, kann nur sehr schwer ausgesprochen werden. Zu unterschiedlich sind häufig die Anforderungen an ein Datenbanksystem.

Voreingestellt ist die Verwendung der vollständigen Wiederherstellung (genaugenommen wird von model geerbt). Achtung! Bei der MSDE ist die einfache Wiederherstellung voreingestellt.