Kurz gesagt
- Ein Restore ist eine Route. Eine Vollsicherung ist der Startpunkt. Eine differenzielle Sicherung ergänzt genau ihre zugehörige Vollsicherung. Logsicherungen führen den Stand in FULL oder BULK_LOGGED entlang des verfügbaren Logverlaufs weiter.
- Ziele vor Zeitplan. Wie viel Datenverlust akzeptabel ist (RPO) und wie lange der Wiederanlauf dauern darf (RTO), entscheidet über Sicherungsarten und Intervalle.
- Eine gültige Datei ist noch kein Wiederherstellungsweg. Im Lab bestand ein Differentialbackup
RESTORE VERIFYONLYund ließ sich trotzdem nicht allein als neue Datenbank wiederherstellen. Mit der passenden Full-Basis gelang es. - Ola automatisiert gut, ersetzt aber keine Prüfung. Ein LOG-Auftrag für eine SIMPLE-Datenbank endete im Lab mit Rückgabewert 0, ohne eine Logsicherung anzulegen. Abdeckung und Restoretest prüfen Sie getrennt.
MerksatzPrüfen Sie den Weg bis zur nutzbaren Datenbank.
Ihre Backups laufen. Können Sie daraus auch wiederherstellen?
Ein Backup-Job meldet Erfolg. Auf dem Laufwerk liegen Dateien. Das ist ein guter Anfang. Ob Sie nach einem Ausfall weiterarbeiten können, zeigt erst der nächste Schritt: Lassen sich die benötigten Sicherungen erreichen, in der richtigen Reihenfolge einspielen und fachlich prüfen?
SQL Server bringt die dafür nötigen Sicherungs- und Wiederherstellungsfunktionen mit. Ola Hallengrens Maintenance Solution hilft, ihre Ausführung zu automatisieren. In diesem Beitrag bauen wir das Grundmodell auf, führen einen ersten Restore durch und zeigen, wie aus einzelnen Befehlen ein brauchbarer Betriebsablauf wird.
Die kurze Antwort: Eine vollständige Sicherung kann die Grundlage eines Restores bilden. Differenzielle Sicherungen ergänzen die dazugehörige Vollsicherung. Transaktionslogsicherungen führen den Datenstand in FULL oder BULK_LOGGED entlang des verfügbaren Logverlaufs weiter. Ob dieser Weg zu Ihrem Ziel führt, prüfen Sie mit einem echten Restore.
Das lohnt sich besonders, wenn Sie eine dieser Situationen kennen:
- „Die Sicherung läuft seit Jahren. Wiederhergestellt haben wir zuletzt bei der Installation.“
- „Wir haben .bak-Dateien, wissen aber nicht genau, welche zusammengehören.“
- „Der Job ist grün, trotzdem fehlen Sicherungen einer neuen Datenbank.“
- „Wir wollen Ola einsetzen und brauchen einen verständlichen Einstieg.“
Zuerst klären: Wie viel darf fehlen, wie lange darf es dauern?
Bevor Sie einen Zeitplan einrichten, brauchen Sie zwei fachliche Ziele.
Recovery Point Objective, kurz RPO: Welcher Datenverlust ist für den betrachteten Ausfallfall höchstens akzeptabel? Wenn höchstens 15 Minuten fehlen dürfen, muss das Verfahren einen hinreichend aktuellen wiederherstellbaren Stand bereitstellen. Ein Logbackup alle 15 Minuten ist eine mögliche technische Grundlage. Fehlgeschlagene Sicherungen oder noch nicht übertragene Dateien können das tatsächlich erreichbare Ergebnis verschlechtern.
Recovery Time Objective, kurz RTO: Innerhalb welcher Zeit soll die vereinbarte Leistung wieder verfügbar sein? Zur Wiederherstellung gehören häufig Ersatzsystem, Dateitransfer, Restore, Prüfungen und Freigabe der Anwendung. Die vom SQL-Befehl gemeldete Restorezeit deckt nur einen Teil davon ab.
Zwei Ziele, zwei Achsen
Planungsbeispiel: höchstens 15 Minuten fehlende Änderungen, höchstens zwei Stunden Unterbrechung.
RPOWie viel darf fehlen?
RTOWie lange darf es dauern?
- Ersatzsystem
- Dateitransfer
- Restorevom SQL-Befehl gemeldet
- Prüfungen
- Freigabe
Ein kleines Beispiel zur Planung, keine Labmessung: Die Fachabteilung akzeptiert höchstens 15 Minuten fehlende Änderungen und zwei Stunden Unterbrechung. Dann reicht die Aussage „Wir sichern nachts“ nicht aus. Sie benötigen einen Weg zu einem ausreichend aktuellen Datenstand und einen nachgewiesenen Wiederanlauf innerhalb dieses Zeitbudgets. Die Ziele müssen zum konkreten Ausfallfall passen: Ein gelöschter Datensatz stellt andere Anforderungen als der Verlust des gesamten Standorts.
Drei Sicherungsarten, ein gemeinsamer Weg
Stellen Sie sich den Restore als Route vor. Eine Vollsicherung ist ein möglicher Startpunkt. Eine passende differenzielle Sicherung verkürzt den Weg zu einem späteren Stand. Logsicherungen führen von dort aus weiter. Manche Abschnitte sind austauschbar, andere müssen lückenlos verfügbar sein.
F0FullD1DifferentialL1LogZielgewünschter Datenstand
Full: eine vollständige Datenbanksicherung
Ein normales Fullbackup sichert die Datenbank und genügend Transaktionslog, um aus dem Backup einen konsistenten Datenbankstand wiederherzustellen. SQL Server kann währenddessen weiterarbeiten; eine Vollsicherung ist keine bloße Dateikopie einer stillgelegten Datenbank.
Ein Fullbackup allein liefert einen wiederherstellbaren Stand aus dieser Sicherung. Änderungen danach brauchen weitere passende Sicherungen. Außerdem setzt ein normales Fullbackup die Basis für spätere differenzielle Sicherungen neu. Es unterbricht eine bestehende Logbackupkette nicht. Diesen Unterschied brauchen wir in Teil 2.
Differential: Änderungen seit der zugehörigen Basis
Eine differenzielle Sicherung enthält die seit ihrer Full-Basis geänderten Extents, also größere Seiteneinheiten. Sie ist keine Liste aller seit gestern geänderten Zeilen.
Wenn auf ein Full vom Sonntag mehrere Differentialbackups folgen, brauchen Sie für den ausgewählten späteren Diff-Stand normalerweise dieses Full und diesen Diff, nicht alle dazwischenliegenden Diffs. Ein Diff vom Mittwoch basiert nicht automatisch auf dem Diff vom Dienstag. Die tatsächlichen Basisinformationen entscheiden.
Welche Dateien brauchen Sie für den Mittwochstand?
Ihr Tipp: Wählen Sie die nötigen Dateien aus, dann „Auflösen“.
Auflösung: Für den Mittwochstand brauchen Sie F0 vom Sonntag und D3 vom Mittwoch. D3 enthält alle seit F0 geänderten Extents; D1 und D2 werden auf diesem Weg nicht gebraucht.
Mit zunehmenden Änderungen kann ein Diff groß werden. Es kann den Restore gegenüber vielen Logs vereinfachen; dass es in Ihrer Umgebung schneller oder kleiner ist, muss sich aus den Daten ergeben (Microsoft: Differential Backups).
Log: den verfügbaren Verlauf weiterführen
In FULL und BULK_LOGGED können Transaktionslogsicherungen den für die Wiederherstellung benötigten Verlauf sichern. Für einen Restore benötigen Sie die Sicherungen, die den Bereich ab dem gewählten Datenstand bis zum Ziel lückenlos abdecken. Dateien allein nach Änderungsdatum zu sortieren ist dafür zu wenig.
Eine Logsicherung ist kein Backup der gesamten .ldf-Datei. Sie verkleinert diese Datei auch nicht automatisch. Sie kann Voraussetzungen für die Wiederverwendung nicht mehr benötigter Logbereiche schaffen; andere Rückhaltegründe können trotzdem bestehen. Ein großes Log ist deshalb nicht automatisch durch ein einmaliges Logbackup oder regelmäßiges Shrink gelöst.
| Sicherungsart | Wofür sie dient | Was beim Restore zusätzlich benötigt wird |
|---|---|---|
| F Full | Startpunkt mit vollständigem Datenbankstand | Für genau diesen Stand keine weitere Datenbanksicherung; Schlüssel und passende Umgebung können dennoch nötig sein |
| D Differential | Späterer Datenstand auf Basis eines bestimmten normalen Full | Zugehöriges Full; gegebenenfalls anschließende Logs |
| L Log | Fortschreibung des verfügbaren Logverlaufs | Geeigneter Datenbank-Startpunkt und die erforderliche Logabdeckung |
Wie das zusammenspielt, zeigt der Routenplaner. Wählen Sie einen Zielstand und sehen Sie, welche Dateien Sie dafür brauchen.
Routenplaner: Welche Dateien braucht Ihr Zielstand?
Schema, kein Standardplan: Full um 00:00, Diff um 12:00, Logbackups alle 15 Minuten.
16Dateien
F0D1L49L62
Ziel 15:30: Startpunkt F0, Abkürzung über das Mittags-Diff D1, danach 14 Logs von 12:15 bis 15:30. Die 48 Logs vor 12:00 brauchen Sie auf diesem Weg nicht.
F0für das Ziel nötignötiges LogLog, auf diesem Weg nicht nötigZielgewählter Stand
SIMPLE, FULL und BULK_LOGGED sind Betriebsentscheidungen
Das Recovery-Modell bestimmt mit, welche Wiederherstellungswege überhaupt verfügbar sind.
SIMPLE
FullDiffLognicht verfügbar
Im SIMPLE-Modell gibt es keine regulären Transaktionslogbackups. Die Wiederherstellungsstände ergeben sich aus den verfügbaren Full- und Differentialbackups. Wer einen beliebigen Zeitpunkt zwischen diesen Sicherungen erreichen muss, benötigt ein anderes Verfahren.
FULL
FullDiffLog
Im FULL-Modell sind regelmäßige Logbackups Teil des Betriebs. Nur auf FULL umzustellen erzeugt noch keine funktionsfähige Sicherungsstrategie. Nach dem Wechsel von SIMPLE müssen Sie die Logkette durch ein geeignetes Datenbackup beginnen; der unkomplizierte Einstieg ist ein neues Fullbackup. Danach gehören Logbackups, Überwachung und Restoretests dazu.
BULK_LOGGED
FullDiffLog
BULK_LOGGED ist eine gezielte Variante für bestimmte Massenoperationen, kein allgemeiner Backup-Turbo. Enthält ein Logbackup minimal protokollierte Änderungen, kann die punktgenaue Wiederherstellung innerhalb dieses Backups eingeschränkt sein. Die Konsequenz gehört vor einer solchen Betriebsänderung in den Plan.
Wählen Sie das Recovery-Modell nach den Wiederherstellungszielen. Ein Wechsel auf SIMPLE, nur um ein wachsendes Log loszuwerden, kann einen benötigten Wiederherstellungsweg zerstören. Im Routenplaner sehen Sie den Unterschied mit dem Umschalter „Recovery SIMPLE“ (Microsoft: Recovery Models).
Der erste native Backup- und Restore-Test
Wir verwenden eine eigene Übungsdatenbank BackupDemo und einen neuen Zielnamen BackupDemo_RestoreTest. Der Pfad ist ein Windows-Beispiel auf dem SQL Server. Unter Linux oder bei anderen Verzeichnissen ändern Sie ihn passend. Der SQL Server Dienst benötigt Zugriff auf das Ziel; ein auf Ihrem Arbeitsplatz sichtbares Laufwerk ist nicht automatisch für ihn erreichbar.
Die Übungsdatenbank muss vorab angelegt sein und Testdaten enthalten. Verwenden Sie für eigene Sicherungsläufe jeweils einen neuen Dateinamen.
-- Übungsdatenbank BackupDemo; Windows-Beispielpfad auf dem SQL Server
BACKUP DATABASE [BackupDemo]
TO DISK = N'D:\SQLBackup\BackupDemo_full_01.bak'
WITH CHECKSUM, COMPRESSION, STATS = 10;
CHECKSUM aktiviert Sicherungsprüfsummen und die vorgesehenen Prüfungen vorhandener Seitenprüfsummen. COMPRESSION kann Dateigröße und I/O reduzieren, beansprucht aber CPU und muss von Ihrer Version und Edition unterstützt werden. STATS zeigt Fortschritt. Keine dieser Optionen ersetzt den Restoretest.
Erst die Datei kennenlernen
-- Liest nur die Sicherungsdatei, ändert keine Datenbank
RESTORE HEADERONLY
FROM DISK = N'D:\SQLBackup\BackupDemo_full_01.bak';
RESTORE FILELISTONLY
FROM DISK = N'D:\SQLBackup\BackupDemo_full_01.bak';
RESTORE VERIFYONLY
FROM DISK = N'D:\SQLBackup\BackupDemo_full_01.bak'
WITH CHECKSUM;
HEADERONLY zeigt Sicherungsinformationen, FILELISTONLY die Datenbankdateien. VERIFYONLY prüft unter anderem Lesbarkeit und Vollständigkeit der Sicherung und bei vorhandenen Backupprüfsummen die entsprechende Integrität. Es führt keinen vollständigen Restore mit anschließender Struktur- oder Anwendungsprüfung durch (Microsoft: RESTORE VERIFYONLY).
Danach wirklich wiederherstellen
Die logischen Namen für MOVE müssen aus FILELISTONLY stammen. Hier heißen sie im Beispiel BackupDemo und BackupDemo_log; andere Datenbanken können mehrere weitere Dateien haben. Jede benötigte Datei braucht einen passenden Zielpfad. Die Verzeichnisse müssen existieren, der neue Datenbankname muss frei sein.
MOVE ordnet jede Datei einem neuen Ziel zu
aus FILELISTONLYSpalten LogicalName · Type
neuer Zielpfadfür BackupDemo_RestoreTest
BackupDemoType D · Daten
D:\SQLData\BackupDemo_RestoreTest.mdf
BackupDemo_logType L · Log
D:\SQLLog\BackupDemo_RestoreTest.ldf
weitere Dateifalls vorhanden
eigener Zielpfad
FILELISTONLY sie liefert, rechts die neuen physischen Dateien des Restoretests. Quell- und Zielname sind bewusst verschieden.-- ACHTUNG: nur auf einem Testziel und unter NEUEM Datenbanknamen ausführen,
-- nie über die laufende Datenbank. Kein WITH REPLACE.
-- Logische Namen aus RESTORE FILELISTONLY übernehmen.
RESTORE DATABASE [BackupDemo_RestoreTest]
FROM DISK = N'D:\SQLBackup\BackupDemo_full_01.bak'
WITH MOVE N'BackupDemo'
TO N'D:\SQLData\BackupDemo_RestoreTest.mdf',
MOVE N'BackupDemo_log'
TO N'D:\SQLLog\BackupDemo_RestoreTest.ldf',
RECOVERY, CHECKSUM, STATS = 10;
DBCC CHECKDB ([BackupDemo_RestoreTest]) WITH NO_INFOMSGS;
Hier beendet RECOVERY den Restoreablauf und macht die Datenbank nutzbar. Für weitere Diffs oder Logs muss der Ablauf vorher mit NORECOVERY offenbleiben. Ein überhastetes RECOVERY kann daher einen neuen Durchlauf erforderlich machen. Probieren Sie es aus:
NORECOVERY oder RECOVERY? Spielen Sie die Folge ein
Vier Sicherungen sollen nacheinander in die neue Datenbank: F0, D1, L1, L2. Wählen Sie für jede Datei, wie der Restore enden soll.
- F0Full
- D1Diff
- L1Log
- L2Log
BackupDemo_RestoreTestONLINE
Datenbank nutzbar, Folge abgeschlossen. Alle vier Sicherungen sind eingespielt.
Nächste Datei: F0
RESTORE DATABASE … FROM F0 WITH NORECOVERYRESTORINGweitere Sicherungen möglichRESTORE DATABASE … FROM D1 WITH NORECOVERYRESTORINGweitere Sicherungen möglichRESTORE LOG … FROM L1 WITH NORECOVERYRESTORINGweitere Sicherungen möglichRESTORE LOG … FROM L2 WITH RECOVERYONLINEDatenbank nutzbar, Folge abgeschlossen
NORECOVERY lässt den Wiederherstellungsablauf offen (Zustand RESTORING), RECOVERY schließt ihn ab und öffnet die Datenbank. Wer zu früh abschließt, kann die restlichen Sicherungen nicht mehr anwenden und beginnt von vorn.Prüfen Sie anschließend die erwarteten Testdatensätze und einen fachlichen Vorgang. Eine technisch konsistente Datenbank kann immer noch den falschen Zeitpunkt enthalten. Für einen vollständigen Anwendungstest können zusätzlich Logins, Jobs, Zertifikate oder weitere Datenbanken nötig sein.
Was beweist welche Prüfung?
Datei vorhanden, Datei geprüft, Datenbank wiederhergestellt, Ergebnis kontrolliert: Im Alltag verschwimmen diese vier Nachweise leicht. Jede Stufe beantwortet aber eine andere Frage. VERIFYONLY, Wiederherstellung, CHECKDB und fachliche Tests liefern unterschiedliche Nachweise.
Vier Belegstufen und ein Diff, das die Dateiprüfung besteht
- 1DateiGibt es die Sicherung, und ist sie erreichbar?
- 2
VERIFYONLYIst die Sicherung lesbar und vollständig, stimmen vorhandene Prüfsummen? - 3RestoreEntsteht auf diesem Weg eine nutzbare Datenbank?
- 4
CHECKDB+ fachliche PrüfungIst sie konsistent, und enthält sie den richtigen Stand?
Erwartung Das Differentialbackup D1 besteht RESTORE VERIFYONLY. Lässt es sich allein als neue Datenbank wiederherstellen?
Versuch Zwei Restorewege im eigenen Lab, je auf SQL Server 2022 und 2025.
Versuch 1D1allein
- 1Datei vorhandenja
- 2
VERIFYONLYerfolgreich - 3Restore als neue Datenbankabgewiesen
- 4
CHECKDBund Markernicht erreicht
Meldung von VERIFYONLY im OriginalThe backup set on file 1 is valid.
Versuch 2F0+D1
- 1Dateien vorhandenja
- 3Restore F0, dann D1erfolgreich
- 4Datenmarker2 von 2 erwartet
- 4vollständiges
CHECKDBohne Fehler
Beobachtung SQL Server 2022 CU27 und 2025 CU9 verhalten sich gleich. Die Dateiprüfung von D1 ist erfolgreich; als neue Datenbank lässt sich D1 allein trotzdem nicht wiederherstellen. Mit der passenden Full-Basis F0 entsteht der erwartete Stand.
Folgerung Dateiprüfung und vollständiger Wiederherstellungsweg beantworten unterschiedliche Fragen.
VERIFYONLY.Ergebnis des Grundlagenversuchs: Ein Diff lässt sich mit VERIFYONLY erfolgreich prüfen, obwohl es sich allein noch nicht als neue Datenbank wiederherstellen lässt. Im eigenen Lab auf SQL Server 2022 und 2025 gelingt der Restore mit der passenden Full-Basis. Dateiprüfung und vollständiger Wiederherstellungsweg beantworten unterschiedliche Fragen.
Full, Differential und Log sinnvoll kombinieren
Ein mögliches Schema lautet: regelmäßig Full, dazwischen Differential, in FULL zusätzlich häufige Logbackups. Das ist ein Beispielmuster, kein vorgegebener Standard für jede Datenbank.
Ein schematischer Tagesablauf: Full um 00:00, Diff um 12:00, Logs alle 15 Minuten. Für einen Zielstand am Nachmittag wählen Sie den geeigneten Startpunkt und die danach nötigen Logs. Für einen Zeitpunkt vor dem Mittags-Diff können Sie diesen späteren Diff nicht verwenden. Genau dieses Schema steckt im Routenplaner (Bild 3) ↑: Schieben Sie das Ziel einmal vor und einmal hinter 12:00.
Die richtige Häufigkeit hängt von Änderungsvolumen, Datenbankgröße, Backupfenster, erreichbarem Ziel, gewünschtem Datenverlust und getesteter Restorezeit ab. Eine Kette aus vielen kleinen Logs kann wenig Datenverlust erlauben und trotzdem einen langen Wiederanlauf verursachen. Der Zeitplan muss beide Ziele berücksichtigen.
Ola Hallengren: gute Automatisierung für native Sicherungen
Ola Hallengrens SQL Server Maintenance Solution stellt unter anderem die Prozedur DatabaseBackup bereit. Sie wählt Datenbanken aus, erzeugt native Backupbefehle, organisiert Verzeichnisse und Dateinamen und kann anschließend RESTORE VERIFYONLY ausführen. Mit CommandLog werden ausgeführte Befehle und Ergebnisse nachvollziehbar.
Das ist wertvolle Community-Arbeit. Gerade bei mehreren Datenbanken hilft ein gepflegtes gemeinsames Verfahren, statt viele handgestrickte Einzeljobs zu betreiben. Ola definiert damit aber weder Ihre RPO- und RTO-Ziele noch einen kompletten Restoreplan. Die Maintenance Solution enthält keine allgemeine Prozedur, die aus beliebigen Dateien automatisch Ihre Datenbank zum gewünschten Zeitpunkt wiederherstellt (offizielle Maintenance Solution, DatabaseBackup).
Ola arbeitet über den nativen Funktionen
1Zeitsteuerung
2Ola Maintenance Solution
3SQL Server, nativ
BACKUP DATABASEBACKUP LOGRESTORE VERIFYONLYEigener Ablauf
RESTORE DATABASE … WITH MOVEDBCC CHECKDBund fachliche PrüfungCommandLog. Der Restore-Test bleibt ein eigener Ablauf mit nativen RESTORE-Befehlen.Ein überschaubarer Einstieg
- Laden Sie die Lösung aus der offiziellen Quelle. Halten Sie Version und Prüfsumme fest und prüfen Sie Änderungen vor einem Update.
- Wählen Sie eine eigene Administrationsdatenbank und lesen Sie die Installationsoptionen. Das Gesamtskript kann mehr Objekte und Jobs anlegen, als Sie für den ersten Versuch brauchen.
- Stellen Sie den Zugriff des SQL Server Dienstes auf das Backupziel sicher. Jobowner und Dateizugriffsidentität sind unterschiedliche Fragen.
- Beginnen Sie mit einer einzelnen Testdatenbank und einem dedizierten Verzeichnis.
- Lassen Sie zunächst Befehle mit
@Execute = 'N'anzeigen. Prüfen Sie Auswahl, Pfade und Optionen; dieser Vorschauaufruf beweist noch keinen erfolgreichen Dateizugriff oder Restore. - Führen Sie den Test wirklich aus, prüfen Sie die entstandenen Sicherungen und stellen Sie diese mit nativen Befehlen wieder her.
Ein Beispiel nach Installation in der Administrationsdatenbank DBA:
-- Vorschau: @Execute = 'N' zeigt die Befehle nur an.
-- Erst nach Prüfung der Ausgabe @Execute = 'Y' setzen.
DECLARE @ReturnCode int;
EXEC @ReturnCode = [DBA].dbo.DatabaseBackup
@Databases = N'BackupDemo',
@Directory = N'D:\SQLBackup',
@BackupType = 'FULL',
@Compress = 'Y',
@Checksum = 'Y',
@Verify = 'Y',
@CleanupTime = NULL,
@LogToTable = 'Y',
@Execute = 'N';
IF @ReturnCode <> 0
THROW 50001, N'DatabaseBackup meldet einen Fehler.', 1;
Nach Prüfung der Ausgabe wird für die tatsächliche Sicherung @Execute = 'Y' gesetzt. Für passende Diff- und Logläufe wird @BackupType auf DIFF beziehungsweise LOG gesetzt. Werten Sie einen LOG-Job nicht einfach für jede Datenbank als Erfolg: In SIMPLE ist diese Sicherungsart nicht verfügbar.
@CleanupTime = NULL verzichtet hier bewusst auf automatisches Löschen. Erst wenn Ihr Aufbewahrungs- und Restoreweg feststeht, konfigurieren Sie Cleanup. Das ist eine Einstiegseinstellung, keine Empfehlung für unbegrenzte Aufbewahrung.
Im Lab geprüft: Ola erzeugt Full-, Diff- und Logbackups mit Prüfsummen und anschließender Verifikation. Diese Dateien lassen sich mit nativen RESTORE-Befehlen wiederherstellen. Ebenfalls geprüft: Der LOG-Aufruf für eine SIMPLE-Datenbank kann mit Rückgabewert 0 enden, ohne eine Logsicherung anzulegen. Deshalb prüfen wir neben dem Rückgabewert auch die erwarteten Backupsets je Datenbank (Originalcode im geprüften Stand).
Grüner Job, fehlende Abdeckung
SchemaNeue Datenbank, alter Job
InventarDatenbanken auf dem Server
- A
- B
- Cneu
Backup-Jobsichert A und B
erfolgreich
Lauf
Erzeugte Backupsetsje Datenbank
- Avorhanden
- Bvorhanden
- Ckeine Sicherung
Abgleich: 3 Datenbanken im Inventar, 2 gesichert. C ist neu und noch nicht abgedeckt, obwohl der Job grün ist.
LabZwei LOG-Aufträge mit Ola, SQL Server 2022 und 2025
| Datenbank | Recovery | Auftrag | Rückgabewert | Ergebnis |
|---|---|---|---|---|
BrLab | FULL | LOG | 0 | Logsicherung erstellt und verifiziert |
SimpleLab | SIMPLE | LOG | 0 | neue LOG-Backupsets: 0 |
Zum Vergleich der native Befehl BACKUP LOG für dieselbe SIMPLE-Datenbank: Er wird mit Fehler 4208 abgewiesen.
Meldung im OriginalThe statement BACKUP LOG is not allowed while the recovery model is SIMPLE. Use BACKUP DATABASE or change the recovery model using ALTER DATABASE.
Vertiefung für den Betrieb
Wer startet die Läufe?
Für den ersten Restore-Test nicht nötig; wichtig, sobald die Sicherungen regelmäßig laufen sollen. Zu den Best Practices springen ↓
Mit SQL Server Agent
In Editionen mit SQL Server Agent können getrennte Jobs für Full, Diff und Log mit geeigneten Zeitplänen eingerichtet werden. Ein installierter Job besitzt nicht automatisch den passenden aktiven Zeitplan. Benachrichtigung und Fehlerweitergabe gehören zur Einrichtung.
Ohne Agent, etwa bei Express
SQL Server Express enthält keinen SQL Server Agent. Hier brauchen Sie eine externe Zeitsteuerung, etwa einen abgestimmten Task-Scheduler-Aufruf. Bei einem Aufruf über sqlcmd muss der Fehler an den Scheduler weitergegeben werden; dazu gehören geeignete Fehleroptionen wie -b und die Prüfung des Prozessrückgabewerts.
Der Prozedurrückgabewert und der externe Prozessstatus müssen zusammenpassen. Versions- und Editionsgrenzen der verwendeten Backupoptionen bleiben zu beachten.
Best Practices für den Einstieg
- Ziele vor Zeitplan. Datenverlust und Wiederanlaufzeit fachlich benennen, dann Sicherungsarten und Intervalle auswählen.
- Neu angelegte Datenbanken erfassen. Ein erfolgreich laufender alter Job kann neue Datenbanken übersehen. Inventar und tatsächliche Abdeckung vergleichen.
- Eindeutige Dateien verwenden. Überschreiben, Medienanhängen und Sicherungspositionen verstehen. Für den Einstieg neue Dateinamen statt unklarer Sammeldateien verwenden.
- Prüfsummen und echte Restoreproben kombinieren. Verifikation, Wiederherstellung,
CHECKDBund fachliche Tests liefern unterschiedliche Nachweise. - Sicherungen aus dem Ausfallbereich bringen. Eine weitere Datei auf demselben Server schützt nicht vor dessen vollständigem Verlust. Getrennte Kopien und Zugriffsrechte vorsehen.
- Schlüssel mitdenken. Verschlüsselte Sicherungen benötigen passende Schlüssel und Zertifikate. Diese müssen auch nach Verlust des Ursprungsservers verfügbar sein.
- Zuständigkeit sichtbar machen. Wer erhält einen Alarm, wer bewertet ihn, wer prüft den erfolgreichen Nachlauf?
- Änderungen erneut testen. Nach Versionswechsel, neuen Pfaden, geändertem Dienstkonto oder neuer Backupsoftware den Wiederherstellungsweg erneut prüfen.
Wo liegt Ihre Kopie?
Ausfallbereich 1 · Server
Ausfallbereich 2 · getrennt
Server fällt aus: Quelle und lokales Backup sind gemeinsam weg. Die getrennte Kopie bleibt erreichbar.
Ihre To-do-Liste für einen ersten belastbaren Stand
Haken Sie ab, was erledigt ist. Der Stand bleibt nur in diesem Browser gespeichert.
Ihre erste Restore-Prüfkarte
Zum Ausfüllen am Bildschirm oder auf Papier. Eingaben werden weder gesendet noch gespeichert.
Restore-Prüfkarte
Dokumentieren Sie den erreichten Stand und den vollständigen Weg dorthin. · psg-stack.com
Häufige Fragen
Reicht eine .bak-Datei?
Für einen Restore auf den darin enthaltenen Full-Stand kann eine einzelne Datei genügen. Bei Stripes besteht ein Backup jedoch aus mehreren Dateien. Außerdem können Schlüssel und eine passende Zielumgebung nötig sein. Die Dateiendung beweist weder Sicherungsart noch Vollständigkeit.
Brauche ich alle Differentialbackups seit Sonntag?
Für den gewählten Diff-Stand normalerweise das zugehörige Full und diesen Diff (siehe Bild 2). Die Basis muss passen; das chronologisch nächstliegende Full ist nicht automatisch richtig.
Ersetzt VERIFYONLY einen Restoretest?
Es ist eine nützliche Dateiprüfung. Den vollständigen Weg bis zur nutzbaren und fachlich richtigen Datenbank prüfen Sie durch Wiederherstellung und weitere Kontrollen (siehe Bild 6).
Macht ein Fullbackup das Log klein?
Es ersetzt keine Logbackupstrategie in FULL und verkleinert die .ldf-Datei nicht automatisch.
Ist Ola eine andere Backup-Engine?
Beim hier beschriebenen nativen Einsatz erzeugt DatabaseBackup SQL Server Backupbefehle. Ola automatisiert und protokolliert deren Ausführung. Funktionen für bestimmte Drittprodukte sind gesondert zu bewerten.
Kann ich auf einem älteren SQL Server wiederherstellen?
Ein Backup einer neueren SQL Server Version lässt sich grundsätzlich nicht auf einer älteren Engine wiederherstellen. Ein niedrigeres Datenbank-Kompatibilitätslevel ändert das nicht. Prüfen Sie vor Migrationen die Zielrichtung und die Versionsunterstützung (Microsoft: Backup and Restore; Versionen und Builds im Versionskompendium).
Brauche ich zusätzlich Sicherungen der Systemdatenbanken?
Ja, nach einem dafür geeigneten Verfahren für master, msdb und model; tempdb wird beim Start neu erstellt. Ein Userdatenbank-Restore ersetzt Logins, Agentjobs und weitere Instanzkonfiguration nicht vollständig. Die speziellen Systemdatenbank-Verfahren gehören in den Betriebsplan.
Wir haben eine Availability Group. Brauchen wir noch Backups?
Ja. Hochverfügbarkeit schützt andere Ausfallfälle. Eine versehentliche Änderung kann auf weitere Replikate übertragen werden. Ein unabhängiger Wiederherstellungsweg bleibt erforderlich.
Prüfen Sie Ihr Verständnis
Frage
Ein Full vom Sonntag und ein Diff vom Mittwoch liegen vor. Der Diff lässt sich erfolgreich verifizieren. Das Sonntag-Full ist nicht mehr verfügbar. Können Sie daraus sicher eine neue Datenbank aufbauen?
Auflösung
Aus dem Diff allein nicht. Zuerst muss die passende Basis oder ein anderer vollständig nutzbarer Wiederherstellungsweg gefunden werden. Die erfolgreiche Verifikation hat die fehlende Basis nicht ersetzt; genau das zeigt auch der Labversuch in Bild 6.
Tragen Ihre Grundlagen?
Jede Antwort wird sofort aufgelöst, mit Verweis auf die passende Stelle im Beitrag. Ohne Cookies.
Herkunft und Dank
Die SQL Server Maintenance Solution stammt von Ola Hallengren und steht unter der MIT-Lizenz (ola.hallengren.com). Gerade bei mehreren Datenbanken ersetzt sie viele handgestrickte Einzeljobs durch ein gepflegtes gemeinsames Verfahren. Danke an Ola Hallengren für diese Arbeit und an die Community, die die Lösung einsetzt, prüft und weiterträgt.
Dieser Beitrag ist eine eigene Darstellung mit eigenen Worten, Beispielen und Labproben. Ola Hallengren hat ihn weder geprüft noch freigegeben; Schlussfolgerungen und eventuelle Fehler sind unsere. Geprüft haben wir den Stand Commit 41617578. Neuere Fassungen können Parameter und Verhalten verändern; maßgeblich ist die Dokumentation von DatabaseBackup.
Methode und Grenzen
Faktenstand 22.10.2026. Native Funktionsproben und Ola-Aufrufe auf SQL Server 2022 und 2025 in einem isolierten Linux-Lab, ausschließlich mit synthetischen Daten. Keine Produktionsabnahme, keine allgemeine Leistungsquote und kein vollständiger Plattformtest. Die Windows-Pfade im Text sind erläuterte Beispiele; im Lab liefen dieselben Befehle mit Linux-Pfaden.
Aufbau und Prüfumfang im Detail
Engines: SQL Server 2022 CU27 (16.0.4295.3) und SQL Server 2025 CU9 (17.0.5005.3), je in einem eigenen Linux-Container, nacheinander mit gleichen Ressourcengrenzen. Testdatenbanken mit wenigen synthetischen Datenmarkern; die Markeranzahl nach einem Restore zeigt, welcher Stand erreicht wurde.
Prüfumfang: 26 datenbasierte Prüfungen je Engine, alle bestanden. Dazu gehören die Dateiprüfung eines Diffs ohne Basis, Restorewege mit und ohne passende Full-Basis, ein vollständiges DBCC CHECKDB nach jedem gezählten Restore, die Ablehnung von BACKUP LOG in SIMPLE sowie Ola-Aufrufe für Full, Diff und Log mit anschließendem nativen Restore. Beide Versionen zeigten in den ausgewählten Fällen dasselbe Verhalten.
Ola: Commit 41617578 aus dem offiziellen Repository, Einzelinstallation von CommandLog, CommandExecute und DatabaseBackup in einer eigenen Administrationsdatenbank. Kein kompletter Installerlauf, keine zeitgesteuerten Jobs.
Nicht im Lab geprüft, dokumentationsgestützt erläutert: Zeitsteuerung mit Agent oder Task Scheduler, Systemdatenbanken, Verschlüsselung, BULK_LOGGED, Availability Groups, Windows-Pfade und eine vollständige Anwendungswiederherstellung. Die Laufzeiten der kleinen Proben sind keine Leistungs- oder RTO-Messungen und werden hier nicht verwendet.
Quellen: Microsoft: Backup and Restore · Recovery Models · Differential Backups · RESTORE VERIFYONLY · Ola Hallengren: DatabaseBackup.
Weiterlesen
Weiter mit Teil 2: Wiederherstellungswege, Zeitpunkte und Betrieb. Dort prüfen wir COPY_ONLY, fehlende Logs, Tail-Log, Retention und die Grenzen automatischer Abläufe.