Aus dem Kurs: SQL Server 2022 Grundkurs: Administration

Wiederherstellungsmodelle kennenlernen – Tutorial zu SQL Server

Aus dem Kurs: SQL Server 2022 Grundkurs: Administration

Wiederherstellungsmodelle kennenlernen

Eine Datenbankoption ist das sog. Wiederherstellungsmodell. Schauen wir uns mal an als Nächstes, was es damit auf sich hat. Dazu gehe ich in die Datenbankoptionen. Hier oben im oberen Bereich ist Wiederherstellungsmodell im Moment Einfach angegeben. Ich habe hier drei Möglichkeiten, Einfach, Massenprotokolliert oder Vollständig das Wiederherstellungsmodell zu wählen. Was bedeutet das und worauf hat es Auswirkungen? Ich möchte es mal an einem ganz einfachen Beispiel zeigen. Im Moment ist das Wiederherstellungsmodell auf Einfach gesetzt. Wenn ich diese Datenbank später, was wir im Kapitel "Backup und Restore" sehen werden, sichern möchte, gehe ich also mal drauf, dann habe ich Sicherungstyp und kann jetzt wählen Vollbackup oder Differenziell. Mehr nicht, d.h. also, ich kann kein Transaktionsprotokoll separat sichern, sondern immer nur eine Datenbank vollständig oder dann die Differenzen jede Nacht vielleicht zum letzten vollständigen Backup. Wenn ich jetzt mein Wiederherstellungsmodell einmal wechsle, Eigenschaften > Optionen und selektiere jetzt hier Vollständig, OK, gehe in denselben Dialog, Tasks > Sichern, dann sieht man sofort, es ist ein weiterer Sicherungstyp hinzugekommen, nämlich Transaktionsprotokollsicherung. Und ab jetzt nicht "habe" ich die Möglichkeit, sondern "muss" ich auch entsprechend mein Transaktionsprotokoll zusätzlich mitsichern. Somit verhält es sich bei dem Wiederherstellungsmodell so, dass ich grundsätzlich für jede Datenbank entscheide. Wie passgenau muss ich etwas herstellen? Reichen vollständige Backups aus? Wie groß sind die vollständigen Backups? Schaffe ich das zehnmal am Tag? Muss ich ein Vollbackup am Wochenende machen und dann die Differenzen jede Nacht? Oder möchte ich sogar stündlich Transaktionen sichern, zusätzlich zur differenziellen und vollständigen? Nicht möchte, sondern das muss ich dann auch tun, weil wenn ein Wiederherstellungsmodell auf Vollständig steht bzw. auch bei massenprotokolliert nachher und ich führe keine Transaktionsprotokollsicherung durch, dann wachsen meine Transaktionsprotokolle und werden sozusagen nicht abgeschnitten. Das führt zu diesen Szenarien, wo dann mal gerne bei mir auch das Telefon klingelt: "Hallo Herr Caesar, meine Transaktionsprotokolle laufen voll, meine Platten sind voll. Was kann ich tun? Ich sichere doch regelmäßig." Ja, beim Vollbackup wird das nicht abgeschnitten, das passiert dann auch wirklich nur bei den Transaktionsprotokollsicherungen. Aber dazu dann mehr, wenn es um die Themen Sicherung und Wiederherstellung geht. Im Moment reicht es, zu verstehen, dass das einen Einfluss hat, wie ich sichern kann oder auch wie ich dann sichern sollte, und ich mir grundsätzlich runtergebrochen für jede Datenbank in den SLAs überlege, wie möchte ich mit der verfahren. Wenn ich Vollständig habe, dann sichere ich auch meine Logs und kann zeitpunktgenau jederzeit wiederherstellen. Will ich mir das Leben einfach machen, Datenbanken sind klein, kann ich keine Logs sichern, muss aber dann auch nicht viel rundherum berücksichtigen. Offen bleibt noch zu klären, was bedeutet massenprotokolliert. Das ist so eine Sache dazwischen. Also, auch hier habe ich die Möglichkeit, bei Massenprotokolliert meine Logs dann zu sichern oder sollte sie sichern; der einzige Unterschied beim massenprotokollierten Modell werden z.B. Massenladetasks bei insert, bcp, wenn ich nachts also Massenladeaktionen durchführe, z.B. von großen Datenmengen, damit die früh zur Verfügung stehen, diese werden nicht separat ins Protokoll geschrieben, brauche ich auch nicht zwingend, weil kommt es dort zu Fehlern, kann ich die Daten noch mal separat laden und damit werden meine Transaktionsprotokolle entsprechend nicht extrem aufgebläht. Das Ganze kann ich natürlich auch in Prozessen automatisieren, dass ich sage, okay, generell läuft die auf Vollständig, laufen Massenladetasks, kann man dann über Jobs oder T-SQL in den Automatisierungsroutinen dafür sorgen, dass es umgestellt wird, Sicherungen erfolgen, wieder zurückgestellt wird usw.

Inhalt