← Zurück zum Wissensbereich

MSSQL Backup-Strategien: Full, Differential, Transaction Log

Datenverlust kann existenzbedrohend sein. Eine professionelle MSSQL Backup-Strategie ist Pflicht für jedes Unternehmen, das auf SQL Server setzt. In diesem Guide erfahren Sie, wie Sie Full, Differential und Transaction Log Backups richtig kombinieren, Retention Policies definieren und im Ernstfall schnell wiederherstellen.

Warum Backup-Strategien kritisch sind

Die harte Realität: 60% der Unternehmen, die ihre Daten nicht innerhalb von 72 Stunden wiederherstellen können, gehen innerhalb von 2 Jahren in Konkurs (Quelle: National Archives & Records Administration).

Typische Datenverlust-Szenarien:

⚠️ Backup ist nicht genug – Recovery zählt!

Viele Unternehmen haben Backups, aber haben nie getestet, ob die Wiederherstellung funktioniert. Eine nicht getestete Backup-Strategie ist wertlos.

Die 3 MSSQL Backup-Typen verstehen

1. Full Backup (Vollsicherung)

Ein Full Backup sichert die komplette Datenbank – alle Datenseiten, Tabellen, Indizes, Stored Procedures, etc.

Wann Full Backup:

2. Differential Backup (Differenzielle Sicherung)

Ein Differential Backup sichert nur die Daten, die seit dem letzten Full Backup geändert wurden.

Wann Differential Backup:

3. Transaction Log Backup (Transaktionslog-Sicherung)

Ein Transaction Log Backup sichert alle Transaktionen (INSERTs, UPDATEs, DELETEs), die seit dem letzten Log Backup aufgetreten sind.

Wann Transaction Log Backup:

RTO und RPO verstehen: Ihre Backup-Ziele definieren

Bevor Sie eine Backup-Strategie entwickeln, müssen Sie zwei zentrale Kennzahlen definieren:

RTO (Recovery Time Objective)

Wie schnell muss die Datenbank nach einem Ausfall wiederhergestellt sein?

RPO (Recovery Point Objective)

Wie viel Datenverlust ist akzeptabel?

Anforderung RTO RPO Empfohlene Strategie
Nicht-kritisch
(Testsystem)
24 Stunden 24 Stunden Tägliches Full Backup
Standard Business
(ERP, CRM)
4-8 Stunden 1 Stunde Wöchentlich Full + Täglich Differential + Stündlich Log
Produktions-kritisch
(E-Commerce, Finanzen)
1-2 Stunden 15 Minuten Täglich Full + Differential alle 6h + Log alle 15 Min.
Mission-Critical
(Börse, Notfalldienste)
< 1 Stunde < 5 Minuten AlwaysOn Availability Groups + Log alle 5 Min. + Offsite-Replika

Backup-Strategien für verschiedene Szenarien

Strategie 1: Kleine Datenbank (< 10 GB), niedrige Änderungsrate

Profil: Unkritische Datenbank, z.B. internes Wiki, kleines CRM

Recovery-Szenario: Datenverlust maximal 24 Stunden (bis letztes Full Backup)

Strategie 2: Mittlere Datenbank (10-100 GB), Standard-Business

Profil: ERP-System, CRM, Warenwirtschaft

Recovery-Szenario:

Strategie 3: Große Datenbank (> 100 GB), produktions-kritisch

Profil: E-Commerce-Datenbank, Finanzanwendung, Online-Services

Recovery-Szenario:

T-SQL: Backup-Skripte in der Praxis

Full Backup erstellen

-- Full Backup einer Datenbank
BACKUP DATABASE [MeineDatenbank]
TO DISK = 'D:\Backups\MeineDatenbank_Full_20260115.bak'
WITH 
  FORMAT,                -- Überschreibt vorhandene Backup-Datei
  INIT,                  -- Initialisiert neues Backup-Set
  NAME = 'MeineDatenbank-Full Backup',
  SKIP,                  -- Überspringt Ablaufdatum-Prüfung
  NOREWIND,              -- Kein Tape-Rewind
  NOUNLOAD,              -- Medium bleibt geladen
  COMPRESSION,           -- Aktiviert Backup-Kompression
  STATS = 10;            -- Fortschrittsanzeige alle 10%

-- Backup-Informationen anzeigen
RESTORE HEADERONLY 
FROM DISK = 'D:\Backups\MeineDatenbank_Full_20260115.bak';

Differential Backup erstellen

-- Differential Backup (nur Änderungen seit letztem Full Backup)
BACKUP DATABASE [MeineDatenbank]
TO DISK = 'D:\Backups\MeineDatenbank_Diff_20260115_0200.bak'
WITH 
  DIFFERENTIAL,          -- Differential-Modus
  FORMAT,
  INIT,
  NAME = 'MeineDatenbank-Differential Backup',
  COMPRESSION,
  STATS = 10;

Transaction Log Backup erstellen

-- Transaction Log Backup
BACKUP LOG [MeineDatenbank]
TO DISK = 'D:\Backups\MeineDatenbank_Log_20260115_0800.trn'
WITH 
  FORMAT,
  INIT,
  NAME = 'MeineDatenbank-Transaction Log Backup',
  COMPRESSION,
  STATS = 10;

-- WICHTIG: Datenbank muss im FULL Recovery Model sein
ALTER DATABASE [MeineDatenbank] 
SET RECOVERY FULL;

Automatisierung mit SQL Server Agent Jobs

Manuelle Backups sind fehleranfällig. Nutzen Sie SQL Server Agent Jobs für Automatisierung:

  1. SQL Server Management Studio (SSMS) öffnen
  2. SQL Server Agent → Jobs → New Job
  3. Job-Name: Daily_Full_Backup_MeineDatenbank
  4. Steps → New → Type: Transact-SQL script
  5. T-SQL Backup-Befehl einfügen
  6. Schedules → New → Täglich um 01:00
  7. Notifications → Email bei Fehler (Database Mail einrichten)

💡 Profi-Tipp: Maintenance Plans

SQL Server Maintenance Plans bieten GUI-basierte Backup-Konfiguration inkl. Bereinigung alter Backups, Integritätsprüfung und Email-Benachrichtigungen. Ideal für Einsteiger!

Recovery-Szenarien: So stellen Sie Daten wieder her

Szenario 1: Komplette Datenbank wiederherstellen (Full Backup)

-- Schritt 1: Datenbank in RESTORING-Modus versetzen (keine Verbindungen)
USE master;
GO

ALTER DATABASE [MeineDatenbank] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO

-- Schritt 2: Full Backup wiederherstellen
RESTORE DATABASE [MeineDatenbank]
FROM DISK = 'D:\Backups\MeineDatenbank_Full_20260115.bak'
WITH 
  REPLACE,              -- Überschreibt vorhandene Datenbank
  RECOVERY;             -- Datenbank ist nach Restore online

-- Schritt 3: Datenbank wieder Multi-User
ALTER DATABASE [MeineDatenbank] SET MULTI_USER;
GO

Szenario 2: Full + Differential wiederherstellen

-- Schritt 1: Full Backup wiederherstellen (NORECOVERY = weitere Backups folgen)
RESTORE DATABASE [MeineDatenbank]
FROM DISK = 'D:\Backups\MeineDatenbank_Full_20260115.bak'
WITH 
  NORECOVERY,           -- Datenbank bleibt im RESTORING-Modus
  REPLACE;

-- Schritt 2: Differential Backup wiederherstellen
RESTORE DATABASE [MeineDatenbank]
FROM DISK = 'D:\Backups\MeineDatenbank_Diff_20260115_0200.bak'
WITH 
  RECOVERY;             -- Datenbank ist jetzt online

-- Ergebnis: Datenbank-Status wie um 02:00 Uhr (Differential-Zeitpunkt)

Szenario 3: Full + Differential + Transaction Logs (Point-in-Time Recovery)

-- Schritt 1: Full Backup wiederherstellen
RESTORE DATABASE [MeineDatenbank]
FROM DISK = 'D:\Backups\MeineDatenbank_Full_20260115.bak'
WITH NORECOVERY, REPLACE;

-- Schritt 2: Differential Backup wiederherstellen
RESTORE DATABASE [MeineDatenbank]
FROM DISK = 'D:\Backups\MeineDatenbank_Diff_20260115_0200.bak'
WITH NORECOVERY;

-- Schritt 3: Transaction Log Backups wiederherstellen (alle seit Differential)
RESTORE LOG [MeineDatenbank]
FROM DISK = 'D:\Backups\MeineDatenbank_Log_20260115_0800.trn'
WITH NORECOVERY;

RESTORE LOG [MeineDatenbank]
FROM DISK = 'D:\Backups\MeineDatenbank_Log_20260115_0815.trn'
WITH NORECOVERY;

RESTORE LOG [MeineDatenbank]
FROM DISK = 'D:\Backups\MeineDatenbank_Log_20260115_0830.trn'
WITH NORECOVERY;

-- Schritt 4: Datenbank auf spezifischen Zeitpunkt wiederherstellen
RESTORE LOG [MeineDatenbank]
FROM DISK = 'D:\Backups\MeineDatenbank_Log_20260115_0845.trn'
WITH RECOVERY,
     STOPAT = '2026-01-15 08:42:30';  -- Point-in-Time: genau 08:42:30 Uhr

-- Ergebnis: Datenbank-Status exakt wie am 15.01.2026 um 08:42:30 Uhr

Retention Policies: Wie lange aufbewahren?

Retention Policy definiert, wie lange Backups aufbewahrt werden. Balance zwischen Speicherkosten und Recovery-Möglichkeiten.

Typische Retention-Strategien:

Backup-Typ Lokal (schneller Zugriff) Offsite (Archiv)
Transaction Logs 7-14 Tage 30 Tage
Differential Backups 14-30 Tage 90 Tage
Full Backups 30-90 Tage 1-7 Jahre (je nach Compliance)

Grandfather-Father-Son (GFS) Rotation

Bewährtes Rotations-Schema für langfristige Backup-Aufbewahrung:

Automatische Bereinigung alter Backups (T-SQL)

-- Löscht Backup-Dateien älter als 30 Tage
EXECUTE master.dbo.xp_delete_file 
  0,                                    -- Backup-Dateien (1 = Report-Dateien)
  N'D:\Backups',                        -- Backup-Verzeichnis
  N'bak',                               -- Dateierweiterung
  N'2026-01-01T00:00:00',               -- Dateien älter als dieses Datum
  1;                                    -- Unterordner einschließen

-- Alternativ: SQL Server Maintenance Plan "Cleanup Task"

Speicherorte: Lokal, Offsite, Cloud

Lokal (On-Premise Storage)

Vorteile:

Nachteile:

Offsite (Externes Rechenzentrum, Tape)

Vorteile:

Nachteile:

Cloud (Azure Blob Storage, AWS S3, Wasabi)

Vorteile:

Nachteile:

Empfohlene Hybrid-Strategie:

Backup-Testing: Testen oder scheitern

Eine nicht getestete Backup-Strategie ist wertlos! Viele Unternehmen merken erst im Ernstfall, dass:

Backup-Test-Plan (Vierteljährlich durchführen):

  1. Test-Restore durchführen:
    • Full Backup auf Test-Server wiederherstellen
    • Zeit stoppen (RTO-Check)
    • Datenbank-Integrität prüfen: DBCC CHECKDB
  2. Point-in-Time Recovery testen:
    • Testdaten mit Zeitstempel einfügen
    • Log Backup erstellen
    • Restore auf spezifischen Zeitpunkt
    • Prüfen, ob Testdaten vorhanden/fehlen (je nach Zeitpunkt)
  3. Disaster Recovery Drill:
    • Simuliere vollständigen Server-Ausfall
    • Restore auf komplett neuen Server
    • Alle Applikationen müssen funktionieren
  4. Dokumentation aktualisieren:
    • Restore-Prozeduren schriftlich festhalten
    • Kontaktpersonen, Passwörter, Speicherorte dokumentieren

Häufige Backup-Fehler vermeiden

❌ Fehler 1: Backups auf gleicher Disk wie Datenbank

Problem: Festplatten-Crash = Datenbank UND Backup weg.

Lösung: Backups auf separate physische Disk/NAS/Cloud speichern.

❌ Fehler 2: Kein Transaction Log Backup trotz FULL Recovery Model

Problem: Transaction Log wächst unkontrolliert, füllt Festplatte.

Lösung: Bei FULL Recovery Model MUSS regelmäßig Log Backup erstellt werden!

-- Check Recovery Model
SELECT name, recovery_model_desc
FROM sys.databases
WHERE name = 'MeineDatenbank';

-- Auf SIMPLE umstellen (wenn Log Backups nicht benötigt)
ALTER DATABASE [MeineDatenbank] SET RECOVERY SIMPLE;

❌ Fehler 3: Keine Backup-Verschlüsselung

Problem: Backup-Dateien enthalten sensible Daten unverschlüsselt.

Lösung: SQL Server Backup-Verschlüsselung nutzen (ab SQL Server 2014).

-- Backup mit Verschlüsselung (AES 256)
BACKUP DATABASE [MeineDatenbank]
TO DISK = 'D:\Backups\MeineDatenbank_Full_Encrypted.bak'
WITH 
  COMPRESSION,
  ENCRYPTION (
    ALGORITHM = AES_256,
    SERVER CERTIFICATE = MyCertificate
  );

❌ Fehler 4: Keine Monitoring & Alerting

Problem: Backups schlagen fehl, aber niemand bemerkt es.

Lösung: SQL Server Agent Email-Benachrichtigungen + Monitoring-Tool (z.B. SQL Sentry, Redgate SQL Monitor).

Best Practices: Checkliste

✅ Backup-Strategie Checkliste:

  • ☐ RTO & RPO definiert (dokumentiert, von Management abgesegnet)
  • ☐ Backup-Strategie entspricht RTO/RPO (Full + Differential + Log)
  • ☐ Automatisierung via SQL Server Agent Jobs
  • ☐ Backups auf separaten Speicher (nicht gleiche Disk wie DB)
  • ☐ Offsite-Backup (Cloud, externes Rechenzentrum, Tape)
  • ☐ 3-2-1-Regel erfüllt (3 Kopien, 2 Medien, 1 Offsite)
  • ☐ Retention Policy definiert & automatisiert (alte Backups löschen)
  • ☐ Backup-Verschlüsselung aktiviert (TDE oder Backup-Encryption)
  • ☐ Monitoring & Alerting konfiguriert (Email bei Fehler)
  • ☐ Vierteljährliche Restore-Tests (dokumentiert)
  • ☐ Disaster Recovery Plan dokumentiert (Runbook für Ernstfall)
  • ☐ DBCC CHECKDB wöchentlich (Integritätsprüfung)

Fazit: Backup ist Pflicht, Recovery ist König

Eine professionelle MSSQL Backup-Strategie ist Lebensversicherung für Ihre Daten. Datenverlust kann existenzbedrohend sein – investieren Sie Zeit in eine solide Backup-Infrastruktur.

Die wichtigsten Takeaways:

🔒 Brauchen Sie Unterstützung bei Ihrer MSSQL Backup-Strategie?

Wir helfen Ihnen bei: Backup-Strategie-Entwicklung, SQL Server Konfiguration, Automatisierung, Disaster Recovery Tests, Monitoring-Setup.

Kostenlose Backup-Analyse anfragen