Sicherungskopie SQL Server Datenbank mit unserem vollständigen Leitfaden 2025. Schritt-für-Schritt-Anleitungen und Best Practices für alle Kenntnisstufen.
1. Einführung in SQL Server Sicherungskopie
1.1 Was ist SQL Server Sicherung?
SQL Server Beim Backup werden Kopien Ihrer Datenbankdateien erstellt, um sie vor Datenverlust zu schützen. Ein Backup erfasst den Zustand Ihrer Datenbank zu einem bestimmten Zeitpunkt und ermöglicht Ihnen die Wiederherstellung von Daten bei Hardwarefehlern, menschlichen Fehlern oder Katastrophen.
SQL Server speichert Backups standardmäßig in .bak-Dateien, die alle Datenbankobjekte enthalten, einschließlich Tabellen, gespeicherte Prozeduren, Ansichten, Indizes und Transaktionsprotokolle.
1.2 Warum SQL Server Backup ist entscheidend
Datenbank-Backups dienen als letzte Verteidigungslinie gegen Datenverlust. Ohne ordnungsgemäße Backups besteht für Ihr Unternehmen folgendes Risiko:
- Dauerhafter Datenverlust durch Hardwarefehler oder Beschädigung
- Längere Ausfallzeiten bei Wiederherstellungsversuchen
- Geschäftsunterbrechung und Einnahmeverluste
- Compliance-Verstöße wenn Daten nicht wiederhergestellt werden können
- Reputationsschaden von Dienstunterbrechungen
Normale SQL Server Backups gewährleisten die Geschäftskontinuität und erfüllen die gesetzlichen Anforderungen zum Datenschutz.
1.3 Häufige Datenverlustszenarien
Wenn Sie wissen, wann ein Datenverlust auftritt, können Sie eine effektive Sicherungsstrategie entwickeln:
- Hardwarefehler: Festplattenabstürze, Serverstörungen oder Speichersystemausfälle
- Menschliche Fehler: Versehentliche Löschungen, falsche Aktualisierungen oder gelöschte Tabellen
- Softwareprobleme: Anwendungsfehler, beschädigte Updates oder Systemabstürze
- Sicherheitsverstoss: Ransomware-Angriffe, böswillige Löschungen oder unbefugter Zugriff
- Naturkatastrophen: Brände, Überschwemmungen oder Stromausfälle beeinträchtigen Rechenzentren
2 Verstehen SQL Server Sicherungstypen
SQL Server unterstützt mehrere Sicherungstypen, die jeweils unterschiedliche Wiederherstellungs- und Speicheranforderungen erfüllen.
2.1 Vollständige Sicherung
Bei einer vollständigen Sicherung wird eine vollständige Kopie Ihrer gesamten Datenbank erstellt, einschließlich aller Datendateien und eines Teils des Transaktionsprotokolls, das für die Wiederherstellung erforderlich ist.
2.1.1 Wann ist eine vollständige Sicherung sinnvoll?
Vollständige Backups sind ideal für:
- Festlegen einer Basislinie für andere Sicherungstypen
- Kleine bis mittlere Datenbanken, bei denen die Sicherungszeit akzeptabel ist
- Wöchentliche oder monatliche Sicherungspläne
- Datenbanken mit seltenen Änderungen
2.1.2 Vorteile und Einschränkungen der vollständigen Sicherung
Vorteile:
- Einfachster Wiederherstellungsprozess – eine einzige Datei enthält alles
- Eigenständig und unabhängig von anderen Backups
- Schnellste Wiederherstellungszeit für die vollständige Datenbankwiederherstellung
Einschränkungen:
- Benötigt erheblichen Speicherplatz
- Längere Sicherungszeit für große Datenbanken
- Höherer Ressourcenverbrauch bei Sicherungsvorgängen
2.2 Differenzielle Sicherung
Bei einer differenziellen Sicherung werden nur die Datenänderungen seit der letzten vollständigen Sicherung erfasst, wodurch die Sicherungszeit und der Speicherbedarf reduziert werden.
2.2.1 Funktionsweise der differenziellen Sicherung
Differenzielle Backups verfolgen Änderungen anhand geänderter Extents. Bei der Wiederherstellung SQL Server wendet zuerst die letzte vollständige Sicherung an und wendet dann die m anost aktuelle differenzielle Sicherung.
2.2.2 Vollständige vs. differenzielle Sicherung
| Aspekt | Vollständige Sicherung | Differenzielle Sicherung |
|---|---|---|
| Größe | Vollständige Datenbank | Nur Änderungen seit der letzten Vollsicherung |
| Backup-Zeit | höchste | Schneller als voll |
| Wiederherstellungsprozess | Wiederherstellung einzelner Dateien | Erfordert Voll + Differenzial |
| Erforderlicher Speicherplatz | Most Raum | Anfangs weniger Platz, wächst mit der Zeit |
2.3 Transaktionsprotokollsicherung
Transaktionsprotokollsicherungen erfassen alle Transaktionen seit der letzten Protokollsicherung und ermöglichen so eine zeitpunktbezogene Wiederherstellung.
2.3.1 Transaktionsprotokolle verstehen
Das Transaktionsprotokoll zeichnet jede Änderung an Ihrer Datenbank auf. Protokollsicherungen kürzen den inaktiven Teil des Protokolls und verhindern so, dass dieser unbegrenzt wächst und Ihre Festplatte füllt.
2.3.2 Wiederherstellung zu einem bestimmten Zeitpunkt
Mit Transaktionsprotokollsicherungen können Sie Ihre Datenbank zu einem beliebigen Zeitpunkt innerhalb einer Protokollsicherung wiederherstellen. Dies ist entscheidend für die Wiederherstellung nach versehentlichen Datenänderungen oder -löschungen.
Um eine zeitpunktbezogene Wiederherstellung durchzuführen, benötigen Sie:
- Die letzte Vollsicherung
- Die most aktuelles differenzielles Backup (optional)
- Alle Transaktionsprotokoll-Backups vom Voll-/Differenz-Backup bis zu Ihrem tarZeit bekommen
2.4 Tail-Log-Sicherung
Tail-Log-Backups erfassen Protokolldatensätze, die noch nicht gesichert wurden. So verhindern Sie Datenverlust und erhalten eine intakte Protokollkette. Vor der Wiederherstellung eines SQL Server Datenbank auf den neuesten Stand zu bringen, müssen Sie das Ende des Transaktionsprotokolls sichern. Die Sicherung des Protokollendes ist die letzte relevante Sicherung im Wiederherstellungsplan für die Datenbank.

Hinweis: Nicht alle Wiederherstellungsszenarien erfordern eine Protokollfragmentsicherung. Sie benötigen keine, wenn der Wiederherstellungspunkt in einer früheren Protokollsicherung enthalten ist. Eine Protokollfragmentsicherung ist auch nicht erforderlich, wenn Sie eine Datenbank verschieben oder ersetzen (überschreiben) und sie nicht zu einem Zeitpunkt nach ihrer Veröffentlichung wiederherstellen müssen.ost letzte Sicherung.
2.4.1 Wann Tail-Log-Backups erforderlich sind
Die folgenden Szenarien beschreiben, wann Sie eine Sicherung des Protokollfragments durchführen sollten:
Online-Datenbankwiederherstellung: Wenn die Datenbank online ist und Sie eine Wiederherstellung planen, sichern Sie zunächst das Protokollende. Um Fehler bei einer Online-Datenbank zu vermeiden, müssen Sie beim Sichern die Option WITH NORECOVERY der Transact-SQL-Anweisung BACKUP verwenden. SQL Server Datenbank.
Offline-Datenbankwiederherstellung: Wenn eine Datenbank offline ist und nichttarWenn Sie die Datenbank wiederherstellen müssen, sichern Sie zunächst das Ende des Protokolls. Da zu diesem Zeitpunkt keine Transaktionen stattfinden können, ist die Verwendung der Option WITH NORECOVERY optional. NORECOVERY entspricht in diesem Szenario im Wesentlichen einer reinen Kopie des Transaktionsprotokoll-Backups.
Beschädigte Datenbanksicherung: Wenn eine Datenbank beschädigt ist, versuchen Sie, eine Protokollfragmentsicherung mit der Option WITH CONTINUE_AFTER_ERROR der BACKUP-Anweisung zu erstellen. Bei einer beschädigten Datenbank kann die Sicherung des Protokollfragments nur erfolgreich sein, wenn die Protokolldateien unbeschädigt sind, sich die Datenbank in einem Zustand befindet, der Protokollfragmentsicherungen unterstützt, und die Datenbank keine massenprotokollierten Änderungen enthält. Wenn keine Protokollfragmentsicherung erstellt werden kann, werden alle Transaktionen, die nach dem letzten MS SQL Server Backup-Datenbank sind lost.
2.4.2 Wichtige Optionen für Tail-Log-Backups
MIT NORECOVERY: Verwenden Sie WITH NORECOVERY, wenn Sie ein Protokoll einer Online-Datenbank sichern und anschließend wiederherstellen möchten. NORECOVERY schaltet die Datenbank offline. Sie können auch SQL Server Tail-Protokoll einer Offline-Datenbank. Wenn Sie die Datenbank offline lassen möchten, verwenden Sie WITH NORECOVERY. Beachten Sie, dass das Protokoll abgeschnitten wird, sofern Sie nicht die Option COPY_ONLY oder NO_TRUNCATE angeben.
MIT CONTINUE_AFTER_ERROR: Verwenden Sie CONTINUE_AFTER_ERROR nur, wenn Sie das Ende einer beschädigten Datenbank sichern. Wenn Sie das Ende eines Protokolls einer beschädigten Datenbank sichern, sind einige der Metadaten, die normalerweise in Protokollsicherungen erfasst werden, möglicherweise nicht verfügbar.
2.5 Nur-Kopie-Backup
Bei reinen Kopiesicherungen wird eine unabhängige Sicherung erstellt, ohne die normale Sicherungssequenz zu beeinträchtigen. Sie unterbrechen weder differenzielle Sicherungsketten noch die Kontinuität des Transaktionsprotokolls.
Verwenden Sie Nur-Kopier-Backups für:
- Erstellen von Test- oder Entwicklungsdatenbankkopien
- Ad-hoc-Backups ohne Beeinträchtigung geplanter Backups
- Backup vor größeren Änderungen oder Tests
2.6 Datei- und Dateigruppensicherung
Datei- und Dateigruppensicherungen tarRufen Sie bestimmte Datenbankdateien oder Dateigruppen statt der gesamten Datenbank ab. Dieser Ansatz eignet sich gut für sehr große Datenbanken, bei denen das Sichern aller Daten zu lange dauert.
Die Vorteile umfassen:
- Schnellere Sicherungsvorgänge für große Datenbanken
- Parallele Sicherung mehrerer Dateigruppen
- Granulare Wiederherstellungsoptionen
- Optimierte Sicherungszeitpläne für schreibgeschützte Dateigruppen
2.7 Teilsicherung
Teilsicherungen umfassen alle Daten in der primären Dateigruppe und allen Lese-/Schreibdateigruppen, mit Ausnahme der schreibgeschützten Dateigruppen. Dadurch werden Größe und Dauer der Sicherung für Datenbanken mit statischen Verlaufsdaten, die in schreibgeschützten Dateigruppen gespeichert sind, reduziert.
3. SQL Server Wiederherstellungsmodelle
SQL Server Wiederherstellungsmodelle bestimmen, welche Sicherungstypen verfügbar sind und wie Transaktionsprotokolle verwaltet werden.
3.1 Einfaches Wiederherstellungsmodell
3.1.1 Eigenschaften und Anwendungsfälle
Bei der einfachen Wiederherstellung wird das Transaktionsprotokoll nach jedem Prüfpunkt automatisch gekürzt, sodass Speicherplatz frei wird, ohne dass Protokollsicherungen erforderlich sind.
Besonders geeignet für:
- Entwicklungs- und Testdatenbanken
- Datenbanken, bei denen ein Datenverlust zwischen Sicherungen akzeptabel ist
- Data Warehouses mit erneut ausführbaren ETL-Prozessen
- Schreibgeschützte oder Berichtsdatenbanken
3.1.2 Verfügbare Sicherungsoptionen
Einfache Wiederherstellung unterstützt:
- Vollständige Backups
- Differenzielle Sicherungen
- Datei- und Dateigruppensicherungen
- Nur-Kopier-Backups
Transaktionsprotokoll-Backups sind nicht vorhanden im einfachen Wiederherstellungsmodell.
3.2 Vollständiges Wiederherstellungsmodell
3.2.1 Funktionen und Vorteile
Bei der vollständigen Wiederherstellung werden alle Transaktionen protokolliert und die Protokolldatensätze bis zur Sicherung aufbewahrt. Dies ermöglicht eine vollständige Datenwiederherstellung zu jedem beliebigen Zeitpunkt innerhalb einer Transaktionsprotokollsicherung.
Vorteile:
- Minimales Datenverlustpotenzial
- Point-in-Time-Wiederherstellungsfunktion
- Unterstützt Protokollversand und Datenbankspiegelung
- Maximale Wiederherstellungsflexibilität
3.2.2 Transaktionsprotokollverwaltung
Bei einer vollständigen Wiederherstellung müssen Sie regelmäßige Transaktionsprotokollsicherungen durchführen, um:
- Verhindern, dass das Transaktionsprotokoll Speicherplatz belegt
- Sorgen Sie für eine kontinuierliche Sicherungskette
- Aktivieren der zeitpunktbezogenen Wiederherstellung
- Kontrollieren Sie das Wachstum der Protokolldateien
Typischer Sicherungsplan: vollständige Sicherungen wöchentlich, differenzielle Sicherungen täglich, Protokollsicherungen alle 15–30 Minuten.
3.3 Massenprotokolliertes Wiederherstellungsmodell
3.3.1 Wann wird Bulk-Logged verwendet?
Bei der massenprotokollierten Wiederherstellung werden Massenvorgänge wie BULK INSERT, SELECT INTO und Indexneuerstellungen nur minimal protokolliert, während die vollständige Protokollierung für reguläre Transaktionen beibehalten wird.
Verwenden Sie die massenprotokollierte Wiederherstellung, wenn:
- Durchführen großer Massenimportvorgänge
- Neuerstellen von Indizes für große Tabellen
- Ausführen von Vorgängen, die von minimaler Protokollierung profitieren
- Notwendigkeit, die Größe des Transaktionsprotokolls während bestimmter Vorgänge zu reduzieren
3.3.2 Einschränkungen und Überlegungen
Wichtige Einschränkungen:
- Point-in-Time-Wiederherstellung während Massenvorgängen nicht verfügbar
- Protokollsicherungen sind bei Massenvorgängen umfangreicher
- Bei Bedarf muss zwischen vollständiger und Massenprotokollierung gewechselt werden
3.4 Auswahl des richtigen Wiederherstellungsmodells
Wählen Sie Ihr Wiederherstellungsmodell basierend auf den Geschäftsanforderungen aus:
| Wiederherstellungsmodell | Datenverlustrisiko | Wiederherstellung zu einem bestimmten Zeitpunkt | Am besten geeignet für |
|---|---|---|---|
| Einfacher | Änderungen seit der letzten Sicherung | Nein | Entwicklung/Test, akzeptabler Datenverlust |
| Vollständiger | Minimal (normalerweise Minuten) | Ja | Produktionsdatenbanken, kritische Daten |
| Massenprotokolliert | Änderungen seit der letzten Protokollsicherung | Eingeschränkt bei Massenvorgängen | Temporary Verwendung bei Massenvorgängen |
4. Sicherungskopie SQL Server Datenbank mit SSMS
4.1 Voraussetzungen und Vorbereitung
Bevor Sie Ihre SQL Server Datenbank, stellen Sie sicher:
- Sie verfügen über die entsprechenden Berechtigungen (db_owner- oder BACKUP DATABASE-Berechtigung)
- Ausreichend Speicherplatz für die Sicherungsdatei
- SQL Server Management Studio (SSMS) installiert
- Zugriff auf Netzwerkpfade beim Sichern an Netzwerkstandorten
4.2 Schritt für Schritt: Vollständige Sicherung mit SSMS
Führen Sie die folgenden Schritte aus, um eine vollständige Sicherung Ihres SQL Server Datenbank mit SSMS.
Eröffnung 4.2.1 SQL Server Management-Studio
- Start SQL Server Management-Studio
- Geben Sie Ihren Servernamen in das Feld Servername Feld
- Wählen Sie Ihre Authentifizierungsmethode
- Gehen Sie auf Verbinden
4.2.2 Auswählen von Datenbank- und Sicherungsoptionen
- In Objekt-Explorer, erweitere das Datenbanken Knoten
- Klicken Sie mit der rechten Maustaste auf die Datenbank, die Sie sichern möchten
- Wählen Sie Aufgaben -> Sichern
- Bei Datenbank sichern Fenster, überprüfen Sie den Datenbanknamen
- Wählen Sie Vollständiger wie die Sicherungstyp
4.2.3 Konfigurieren des Sicherungsziels
- Der Reiseziel, klicken Entfernen um den Standardpfad zu löschen (falls erforderlich)
- Gehen Sie auf Speichern um einen neuen Sicherungsspeicherort anzugeben
- Geben Sie den Dateipfad und den Namen mit ein bak Erweiterung
- Gehen Sie auf OK um das Ziel zu bestätigen
4.2.4 Advanced Backup Einstellungen
- Gehen Sie auf Medienoptionen im linken Bereich
- Wählen Sie Sicherungsoptionen:
- Alle vorhandenen Sicherungssätze überschreiben – Ersetzt vorhandene Backups
- An vorhandenen Sicherungssatz anhängen – Fügt die vorhandene Sicherungsdatei hinzu
- Gehen Sie auf Backup-Optionen im linken Bereich
- Konfigurieren Sie optionale Einstellungen:
- Backup komprimieren – Reduziert die Größe der Sicherungsdatei
- Backup verschlüsseln – Schützt sensible Daten
- Überprüfen Sie die Sicherung, wenn sie abgeschlossen ist – Überprüft die Integrität der Sicherung
4.2.5 Ausführen der Sicherung
- Überprüfen Sie alle Einstellungen im Datenbank sichern Fenster
- Gehen Sie auf OK es ist start den Backup-Prozess
- Warten Sie, bis die Sicherung abgeschlossen ist
- Nach Abschluss der Sicherung wird eine Erfolgsmeldung angezeigt
- Gehen Sie auf OK um den Bestätigungsdialog zu schließen
4.3 Differenzielles Backup mit SSMS erstellen
Um ein differentielles Backup zu erstellen, folgen Sie den gleichen Schritten wie bei einem vollständigen Backup, wählen Sie jedoch Differentiell als Sicherungstyp in Schritt 4.2.2. Denken Sie daran, dass differenzielle Sicherungen eine vorherige vollständige Sicherung als Basis erfordern.
4.4 Erstellen einer Transaktionsprotokollsicherung mit SSMS
Transaktionsprotokollsicherungen sind nur für Datenbanken verfügbar, die vollständige oder massenprotokollierte Wiederherstellungsmodelle verwenden.
- Klicken Sie mit der rechten Maustaste auf die Datenbank in Objekt-Explorer
- Wählen Sie Aufgaben -> Sichern
- Wählen Transaktionsprotokoll als Sicherungstyp
- Konfigurieren Sie Ziel und Optionen nach Bedarf
- Gehen Sie auf OK um die Protokollsicherung zu erstellen
4.5 Erstellen einer Nur-Kopie-Sicherung mit SSMS
Nur-Kopier-Backups beeinträchtigen Ihre reguläre Backup-Sequenz nicht.
- Befolgen Sie die Schritte zum Erstellen einer vollständigen Sicherung
- Bei Backup-Optionen Seite
- Prüfen Sie die Nur-Kopie-Backup ganz ohne irgendetwas tun oder drücken zu müssen.
- Schließen Sie den Sicherungsvorgang normal ab
5. Sicherungskopie SQL Server Datenbank mit T-SQL
5.1 Grundlegende BACKUP DATABASE-Syntax
Der T-SQL BACKUP DATABASE-Befehl bietet programmatische Kontrolle über SQL Server Backups.
BACKUP DATABASE database_name
TO DISK = 'backup_file_path'
WITH options;
5.2 T-SQL-Befehle für die vollständige Sicherung
5.2.1 Einfaches Vollsicherungsskript
Erstellen Sie eine einfache vollständige Sicherung mit minimalen Optionen:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
GO
5.2.2 Vollsicherung mit Optionen
Fügen Sie beschreibende Informationen und Formatierungsoptionen hinzu:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH FORMAT,
INIT,
NAME = 'AdventureWorks-Full Database Backup',
DESCRIPTION = 'Full backup of AdventureWorks database',
STATS = 10
GO
Erläuterung der Optionen:
- FORMAT – Erstellt einen neuen Backup-Satz
- INIT – Überschreibt vorhandene Sicherungsdateien
- NAME/FUNKTION – Weist den Namen des Sicherungssatzes zu
- BESCHREIBUNG – Fügt beschreibenden Text hinzu
- STATISTIKEN – Zeigt alle 10 % den Fortschritt an
5.3 T-SQL-Befehle für differenzielle Sicherungen
Differenzielle Sicherungen verwenden die Option DIFFERENTIAL:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Diff.bak'
WITH DIFFERENTIAL,
INIT,
NAME = 'AdventureWorks-Differential Backup',
STATS = 10
GO
5.4 T-SQL-Befehle zur Sicherung des Transaktionsprotokolls
Verwenden Sie BACKUP LOG für Transaktionsprotokollsicherungen:
BACKUP LOG AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Log.trn'
WITH INIT,
NAME = 'AdventureWorks-Transaction Log Backup',
STATS = 10
GO
5.5 Erweiterte T-SQL-Sicherungsoptionen
5.5.1 Sicherung in mehrere Dateien
Verteilen Sie die Sicherung auf mehrere Dateien, um die Leistung zu verbessern:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_1.bak',
DISK = 'D:\Backups\AdventureWorks_2.bak',
DISK = 'E:\Backups\AdventureWorks_3.bak'
WITH FORMAT, INIT
GO
5.5.2 Backup mit Komprimierung
Reduzieren Sie die Größe der Sicherungsdatei und die Netzwerkbandbreite:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Compressed.bak'
WITH COMPRESSION,
INIT,
STATS = 10
GO
5.5.3 Backup mit Verschlüsselung
Schützen Sie sensible Daten durch Verschlüsselung:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Encrypted.bak'
WITH COMPRESSION,
ENCRYPTION (
ALGORITHM = AES_256,
SERVER CERTIFICATE = BackupCertificate
),
STATS = 10
GO
5.5.4 Backup mit Passwortschutz
Kennwortschutz hinzufügen (veraltet, stattdessen Verschlüsselung verwenden):
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH PASSWORD = 'StrongPassword123!',
INIT
GO
5.5.5 Gespiegelte Backups
Erstellen Sie gleichzeitig Kopien an verschiedenen Standorten:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
MIRROR TO DISK = 'D:\Backups\AdventureWorks_Mirror.bak'
WITH FORMAT, INIT
GO
5.6 T-SQL-Sicherungsbeispiele und -Skripte
Komplettes Backup-Skript mit Fehlerbehandlung:
DECLARE @BackupPath NVARCHAR(500);
DECLARE @DatabaseName NVARCHAR(128) = 'AdventureWorks';
DECLARE @BackupDate NVARCHAR(20);
SET @BackupDate = CONVERT(NVARCHAR(20), GETDATE(), 112);
SET @BackupPath = 'C:\Backups\' + @DatabaseName + '_' + @BackupDate + '.bak';
BEGIN TRY
BACKUP DATABASE @DatabaseName
TO DISK = @BackupPath
WITH COMPRESSION,
INIT,
NAME = @DatabaseName + '-Full Backup',
STATS = 10;
PRINT 'Backup completed successfully: ' + @BackupPath;
END TRY
BEGIN CATCH
PRINT 'Backup failed: ' + ERROR_MESSAGE();
END CATCH
GO
6. Sicherungskopie SQL Server Datenbank mit PowerShell
6.1 PowerShell-Sicherungs-Cmdlets
SQL Server Das PowerShell-Modul bietet Cmdlets zur Automatisierung der Sicherung:
- Backup-SQL-Datenbank – Erstellt Datenbank-Backups
- Wiederherstellen-SqlDatabase – Stellt Datenbanksicherungen wieder her
- Get-SqlDatabase – Ruft Datenbankinformationen ab
Importieren Sie die SQL Server Modul:
Import-Module SqlServer
6.2 Erstellen von Backup-Skripten mit PowerShell
Grundlegender PowerShell-Sicherungsbefehl:
Backup-SqlDatabase -ServerInstance "localhost" `
-Database "AdventureWorks" `
-BackupFile "C:\Backups\AdventureWorks.bak" `
-BackupAction Database `
-CompressionOption On
Beispiel für eine differenzielle Sicherung:
Backup-SqlDatabase -ServerInstance "localhost" `
-Database "AdventureWorks" `
-BackupFile "C:\Backups\AdventureWorks_Diff.bak" `
-BackupAction Database `
-Incremental
Sicherung des Transaktionsprotokolls:
Backup-SqlDatabase -ServerInstance "localhost" `
-Database "AdventureWorks" `
-BackupFile "C:\Backups\AdventureWorks_Log.trn" `
-BackupAction Log
6.3 Automatisieren von Backups mit PowerShell
Erstellen Sie ein automatisiertes Sicherungsskript für mehrere Datenbanken:
# Configuration
$ServerInstance = "localhost"
$BackupPath = "C:\Backups"
$Databases = @("AdventureWorks", "TestDB", "ProductionDB")
$Timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
# Create backup directory if not exists
if (-not (Test-Path $BackupPath)) {
New-Item -ItemType Directory -Path $BackupPath
}
# Backup each database
foreach ($Database in $Databases) {
$BackupFile = Join-Path $BackupPath "$Database`_$Timestamp.bak"
try {
Backup-SqlDatabase -ServerInstance $ServerInstance `
-Database $Database `
-BackupFile $BackupFile `
-BackupAction Database `
-CompressionOption On
Write-Host "Successfully backed up $Database to $BackupFile" -ForegroundColor Green
}
catch {
Write-Host "Failed to backup $Database : $_" -ForegroundColor Red
}
}
7. Sicherungskopie SQL Server Datenbank über die Befehlszeile
SQL Server bietet Befehlszeilenprogramme, mit denen Sie Backups erstellen SQL Server Datenbank ohne SSMS oder grafische Benutzeroberflächen. Diese Tools sind für Automatisierungs-, Skripting- und Remoteverwaltungsszenarien unerlässlich.
7.1 SQLCMD-Sicherungsdatenbank verwenden
SQLCMD ist das moderne Kommandozeilen-Dienstprogramm für SQL Server das OSQL ersetzt hat. Es bietet erweiterte Funktionen und ist das empfohlene Tool zum Ausführen von T-SQL-Befehlen über die Eingabeaufforderung.
7.1.1 Grundlegende SQLCMD-Syntax
sqlcmd -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
- -S: Gibt die an SQL Server Instanzname
- -d: Gibt den Datenbanknamen an
- -Q: Führt eine Abfrage aus und beendet
- -UND: Verwendet Windows-Authentifizierung
- -U: Gibt an SQL Server Login-Benutzername
- -P: Gibt das Passwort an für SQL Server login
7.1.2 Backup erstellen mit SQLCMD
So sichern Sie SQL Server Führen Sie mithilfe von SQLCMD die folgenden Schritte aus:
- Öffne Eingabeaufforderung or Powershell
- Navigieren Sie zu der SQL Server Tools-Verzeichnis (normalerweise während der Installation zu PATH hinzugefügt)
- Führen Sie den SQLCMD-Befehl „Datenbank sichern“ mit den entsprechenden Parametern aus.
- Überprüfen Sie, ob die Sicherungsdatei erfolgreich erstellt wurde
Beispiel für einen vollständigen Sicherungsbefehl mit Windows-Authentifizierung:
sqlcmd -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH COMPRESSION, INIT"
Beispiel mit SQL Server Authentifizierung:
sqlcmd -S localhost -U sa -P YourPassword -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH COMPRESSION, INIT"
Erstellen einer differenziellen Sicherung mit SQLCMD
sqlcmd -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks_Diff.bak' WITH DIFFERENTIAL, COMPRESSION, INIT"
Erstellen einer Transaktionsprotokollsicherung mit SQLCMD
sqlcmd -S localhost -E -Q "BACKUP LOG AdventureWorks TO DISK='C:\Backups\AdventureWorks_Log.trn' WITH COMPRESSION, INIT"
7.1.3 Backup der Publisher-Datenbank in SQL Server Replikation
Beim Sichern von Verlagsdatenbanken in SQL Server Verwenden Sie für die Replikation die Option WITH REPLICATION, um Replikationsmetadaten zu erhalten und Transaktionskonsistenz zu gewährleisten.
-- Backup publisher database with replication support
BACKUP DATABASE PublisherDB
TO DISK = 'C:\Backup\PublisherDB_Full.bak'
WITH REPLICATION,
COMPRESSION,
CHECKSUM,
INIT,
STATS = 10;
GO
Weitere Details zu SQL Server Replikation, siehe unsere umfassende Anleitung.
7.2 OSQL-Backup-Datenbank verwenden
OSQL ist ein veraltetes Befehlszeilenprogramm für SQL Server. Microsoft empfiehlt zwar stattdessen die Verwendung von SQLCMD, OSQL bleibt jedoch aus Gründen der Abwärtskompatibilität mit älteren Skripten und Systemen verfügbar.
7.2.1 Grundlegende OSQL-Syntax
Die OSQL-Syntax ähnelt SQLCMD:
osql -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
- -S: SQL Server Instanzname
- -d: Name der Datenbank
- -Q: Führt die Abfrage aus und beendet
- -UND: Verwendet vertrauenswürdige Verbindung (Windows-Authentifizierung)
- -U: Login Benutzername
- -P: Passwort
7.2.2 Backup mit OSQL erstellen
So führen Sie OSQL-Sicherungsdatenbankvorgänge durch:
- Öffne Eingabeaufforderung
- Überprüfen Sie, ob OSQL in Ihrem SQL Server
- Führen Sie den OSQL-Sicherungsbefehl aus
Beispiel für eine vollständige Sicherung:
osql -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH INIT"
Beispiel für eine differenzielle Sicherung:
osql -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks_Diff.bak' WITH DIFFERENTIAL, INIT"
8. Dritte Seite SQL Server Sicherungswerkzeuge
Während SQL Server Enthält native Backup-Funktionen, Drittanbieter-Tools bieten erweiterte Funktionen, Automatisierung und Enterprise-Management für Unternehmen mit komplexen Anforderungen. Diese Lösungen bieten erweiterte Komprimierung, zentrales Management und optimierte Workflows für die Sicherung SQL Server Datenbanken über mehrere Umgebungen hinweg.
8.1 Veeam Backup für SQL Server
Veeam bietet umfassende Datenschutzlösungen, die speziell für die Sicherung SQL Server Datenbanken mit minimalen Auswirkungen auf Produktionssysteme.
Hauptmerkmale
- Anwendungsorientierte Verarbeitung für SQL Server Sicherungskonsistenz
- Sicherung und Verwaltung des Transaktionsprotokolls
- Point-in-Time-Wiederherstellung mit granularen Wiederherstellungsoptionen
- Integration mit Veeam Backup & Replication für einheitlichen Datenschutz
- Automatisierte Backup-Verifizierung und -Validierung
- Unterstützung für Always On-Verfügbarkeitsgruppen
- VM-Ebene und Anwendungsebene SQL Server Backup-Optionen
8.2 Barracuda Backup für SQL Server
Barracuda bietet Cloud-integrierte Backup-Lösungen mit vereinfachter Verwaltung für MS SQL Server Sicherungsdatenbankvorgänge.
Hauptmerkmale
- Automated SQL Server Sicherungsplanung
- Integrierte Cloud-Replikation zum Barracuda Cloud Storage
- Globale Deduplizierung und Komprimierung
- Sofortige lokale Wiederherstellungsfunktionen
- Webbasierte Verwaltungskonsole
- Unterstützung für vollständige, differenzielle und Transaktionsprotokollsicherungen
- Ransomware-Schutz mit unveränderlichen Backups
8.3 Veritas NetBackup für SQL Server
Veritas NetBackup ist eine Backup-Plattform der Enterprise-Klasse, die umfassenden Schutz für SQL Server Datenbanken in komplexen IT-Umgebungen.
Hauptmerkmale
- Backup-Management im Unternehmensmaßstab für Tausende SQL Server Instanzen
- Erweiterte Deduplizierungs- und Komprimierungsalgorithmen
- Flexible Sicherungsrichtlinien und -planung
- Unterstützung für alle SQL Server Wiederherstellungsmodelle
- Integration mit Tape Libraries und Cloud-Speicher
- Granulare Wiederherstellung von Datenbanken, Tabellen und Objekten
- Multiplattform-Unterstützung (Windows, Linux SQL Server)
- Automatisiertes Backup-Lebenszyklusmanagement
8.4 Commvault Complete Backup & Recovery für SQL Server
Commvault bietet intelligentes Datenmanagement mit umfassender Sicherung SQL Server Funktionen und erweiterte Automatisierungsfunktionen.
Hauptmerkmale
- KI-gesteuerte Backup-Optimierung und Anomalieerkennung
- Einheitliche Plattform für Backup, Wiederherstellung und Archivierung
- Erweitert SQL Server Backup-Komprimierung (bis zu 90 % Reduzierung)
- Automatisierte Disaster Recovery-Orchestrierung
- Live-Sync für nahezu Null-RPO-Schutz
- Unterstützung für SQL Server On-Premises-, Cloud- und Hybrid-Bereitstellungen
- IntelliSnap für Snapshot-basierte Backups
- Umfassende Compliance- und E-Discovery-Funktionen
8.5 Cohesity DataProtect für SQL Server
Cohesity bietet Datenmanagement der nächsten Generation mit hyperkonvergenter Infrastruktur für moderne SQL Server Sicherungsvorgänge.
Hauptmerkmale
- Web-Scale-Architektur für vereinfachte Verwaltung
- Sofortige Massenwiederherstellungsfunktionen für SQL Server Datenbanken
- Anwendungskonsistente Snapshots
- Globale Deduplizierung über alle Backups hinweg
- Native Cloud-Integration (AWS, Azure, Google Cloud)
- Integrierte Analyse- und Überwachungs-Dashboards
- Datenbankfunktionen klonen und testen
- Ransomware-Schutz mit unveränderlichen Snapshots
8.6 Red Gate SQL Backup Pro
Red Gate SQL Backup Pro ist ein spezialisiertes Tool, das sich ausschließlich auf die Optimierung konzentriert SQL Server Sicherungs- und Wiederherstellungsvorgänge mit überlegener Komprimierung und Leistung.
Hauptmerkmale
- Branchenführende Komprimierungsraten (bis zu 95 %)
- Netzwerkausfallsicherheit für Backups SQL Server über unzuverlässige Verbindungen
- Backup-Verschlüsselung mit 256-Bit-AES
- Überprüfung der Sicherungskopie und Integritätsprüfung
- Detaillierter Sicherungsverlauf und Berichte
- Integration mit SQL Server Management-Studio
- Unterstützung für Backups an Netzwerkstandorten und Cloud-Speicher
- Parallele Sicherung und Wiederherstellung für schnellere Vorgänge
9. Wiederherstellen SQL Server Datenbank
9.1 Den Wiederherstellungsvorgang verstehen
Wiederherstellen von a SQL Server database erstellt die Datenbank aus Sicherungsdateien neu. Der Wiederherstellungsprozess liest die Sicherungsdatei und rekonstruiert die Datenbank in ihrem gesicherten Zustand.
Wichtige Überlegungen:
- Beim Wiederherstellen wird die vorhandene Datenbank überschrieben
- Benutzer werden während der Wiederherstellung getrennt
- Die Wiederherstellung muss der Sicherungssequenz folgen (vollständig, dann differenziell, dann Protokolle).
- Die Datenbank ist während des Wiederherstellungsvorgangs nicht verfügbar.
9.2 Wiederherstellen einer vollständigen Sicherung mit SSMS
Befolgen Sie diese Schritte, um eine vollständige Datenbanksicherung wiederherzustellen.
9.2.1 Schrittweiser Wiederherstellungsprozess
- Öffne SQL Server Management-Studio und verbinden Sie sich mit Ihrem Server
- In Objekt-Explorer, Rechtsklick Datenbanken
- Wählen Sie Datenbank wiederherstellen
- Bei Quelle Abschnitt auswählen Gerät
- Klicken Sie auf ... Schaltfläche zum Suchen nach Sicherungsdateien
- Gehen Sie auf Speichern und navigieren Sie zu Ihrer .bak-Datei
- Wählen Sie die Sicherungsdatei aus und klicken Sie auf OK
- Bei Reiseziel Geben Sie im Abschnitt „Datenbanknamen“ den Datenbanknamen ein.
- Überprüfen Sie die wiederherzustellenden Sicherungssätze
- Gehen Sie auf OK es ist start die Wiederherstellung
9.2.2 Wiederherstellungsoptionen und -einstellungen
Gehen Sie auf Einstellungen im linken Bereich, um Folgendes zu konfigurieren:
- Überschreiben der vorhandenen Datenbank (WITH REPLACE) – Ermöglicht die Wiederherstellung über eine vorhandene Datenbank
- Replikationszustände beibehalten (WITH KEEP_REPLICATION) - Behalte das SQL Server Replikation Zustand
- Zugriff auf die wiederhergestellte Datenbank einschränken (WITH RESTRICTED_USER) – Grenzen post-Zugriff wiederherstellen
- Wiederherstellungszustand – Wählen Sie zwischen RESTORE WITH RECOVERY oder NORECOVERY
9.3 Wiederherstellen einer differenziellen Sicherung
Für die differenzielle Wiederherstellung sind sowohl vollständige als auch differenzielle Sicherungen erforderlich:
- Stellen Sie zunächst die vollständige Sicherung wieder her mit NORECOVERY ganz ohne irgendetwas tun oder drücken zu müssen.
- Stellen Sie anschließend das differenzielle Backup wieder her mit RECOVERY ganz ohne irgendetwas tun oder drücken zu müssen.
T-SQL-Beispiel:
-- Restore full backup (NORECOVERY to allow differential)
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;
-- Restore differential backup (RECOVERY to complete)
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Diff.bak'
WITH RECOVERY;
GO
9.4 Wiederherstellen mit Transaktionsprotokollsicherungen
Führen Sie für die Wiederherstellung zu einem bestimmten Zeitpunkt die Wiederherstellung in der folgenden Reihenfolge durch:
- Vollständiges Backup mit NORECOVERY wiederherstellen
- Wiederherstellen der differenziellen Sicherung mit NORECOVERY (falls verfügbar)
- Stellen Sie Transaktionsprotokollsicherungen mit NORECOVERY der Reihe nach wieder her
- Stellen Sie die endgültige Protokollsicherung mit RECOVERY wieder her
-- Restore full backup
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;
-- Restore first log backup
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH NORECOVERY;
-- Restore second log backup with recovery
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log2.trn'
WITH RECOVERY;
GO
9.5 Point-in-Time-Wiederherstellung
Stellen Sie die Datenbank mit der Option STOPAT zu einem bestimmten Zeitpunkt wieder her:
-- Restore to specific time: January 15, 2025 at 2:30 PM
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log.trn'
WITH RECOVERY, STOPAT = '2025-01-15 14:30:00';
GO
9.6 Tabellenwiederherstellung
SQL Server Die direkte Wiederherstellung auf Tabellenebene aus Sicherungsdateien wird nicht unterstützt. Es gibt jedoch einige Lösungsansätze.
9.6.1 Methode 1: Datenbank-Snapshots (Am besten zur Prävention geeignet)
Datenbank-Snapshots bieten die schnellste Möglichkeit, Tabellendaten wiederherzustellen, sofern sie vor dem Auftreten des Problems erstellt wurden. Ein Snapshot ist eine schreibgeschützte, statische Ansicht einer Datenbank zu einem bestimmten Zeitpunkt.
Erstellen eines Datenbank-Snapshots:
-- Create snapshot before making changes
CREATE DATABASE ProductionDB_Snapshot_20250107
ON
( NAME = ProductionDB_Data,
FILENAME = 'C:\Snapshots\ProductionDB_Snapshot.ss' )
AS SNAPSHOT OF ProductionDB;
GO
Wiederherstellen von Tabellendaten aus einem Snapshot:
USE ProductionDB;
GO
-- Replace entire table content
BEGIN TRANSACTION;
-- Disable constraints temporarily
ALTER TABLE dbo.Orders NOCHECK CONSTRAINT ALL;
-- Clear current data
TRUNCATE TABLE dbo.Orders;
-- Restore from snapshot
INSERT INTO dbo.Orders
SELECT * FROM ProductionDB_Snapshot_20250107.dbo.Orders;
-- Re-enable constraints
ALTER TABLE dbo.Orders CHECK CONSTRAINT ALL;
COMMIT TRANSACTION;
GO
Versionsanforderungen: Datenbank-Snapshots sind verfügbar in SQL Server Enterprise Edition (alle Versionen) und Standard Editiontarting mit SQL Server 2016 SP1.
9.6.2 Methode 2: Tempo wiederherstellenrary Datenbank (Most Gemeinsam)
Diese Methode eignet sich, wenn Sie Tabellendaten wiederherstellen müssen, nachdem ein Problem aufgetreten ist und kein Snapshot existiert:
- Backup auf ein Tempo wiederherstellenrary-Datenbank
- Tabellendaten aus dem Tempo kopierenrary-Datenbank zur aktuellen Datenbank
9.7 Seitenwiederherstellung
Die Seitenwiederherstellung stellt einzelne beschädigte Seiten wieder her, ohne die gesamte Datenbank wiederherstellen zu müssen, wodurch die Ausfallzeit minimiert wird. tarEs werden nur beschädigte Seiten abgerufen. Diese Funktion ist nur bei den Wiederherstellungsmodellen „Vollständig“ oder „Massenprotokolliert“ verfügbar und erfordert eine lückenlose Kette von Transaktionsprotokollsicherungen von der Seitensicherung bis zur aktuellen Protokolldatei.
Um eine Seitenwiederherstellung durchzuführen, müssen Sie zuerst die beschädigten Seiten identifizieren, eine Sicherung des Transaktionsprotokolls erstellen, die betreffenden Seiten wiederherstellen und anschließend alle Transaktionsprotokolle anwenden:
-- Identify damaged pages
SELECT * FROM msdb.dbo.suspect_pages
WHERE database_id = DB_ID('AdventureWorks');
-- Take tail-log backup
BACKUP LOG AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_TailLog.trn'
WITH NORECOVERY;
-- Restore damaged pages
RESTORE DATABASE AdventureWorks
PAGE = '1:123, 1:456'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY;
-- Apply transaction logs
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH NORECOVERY;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_TailLog.trn'
WITH RECOVERY;
GO
Hinweis: Die Wiederherstellung von Seiten ist im einfachen Wiederherstellungsmodell nicht verfügbar. Seiten aus Systemtabellen oder Metadaten der primären Dateigruppe können nicht wiederhergestellt werden.
9.8 Stückweise Wiederherstellung
Die stückweise Wiederherstellung (Teilwiederherstellung) stellt eine Datenbank schrittweise auf Dateigruppenebene wieder her.tarDie Wiederherstellung erfolgt in Verbindung mit der primären Dateigruppe. Dadurch werden kritische Daten sofort wieder online geschaltet, während weniger kritische Daten im Hintergrund wiederhergestellt werden. Im einfachen Wiederherstellungsmodell müssen alle Lese-/Schreib-Dateigruppen zusammen mit der primären Dateigruppe wiederhergestellt werden; nur schreibgeschützte Dateigruppen können separat wiederhergestellt werden. In den Wiederherstellungsmodellen „Vollständig“ oder „Massenprotokolliert“ kann jede Dateigruppe nach Anwendung der Transaktionsprotokolle unabhängig voneinander wieder online geschaltet werden.
| Wiederherstellungsmodell | Stückweise Wiederherstellung des Verhaltens |
|---|---|
| Einfacher | Primäre und alle Lese-/Schreib-Dateigruppen wurden gemeinsam wiederhergestellt. Schreibgeschützte Dateigruppen wurden separat wiederhergestellt. |
| Vollständig/Massenprotokolliert | Jede Dateigruppe wurde unabhängig auf Dateigruppenebene wiederhergestellt. |
Beispiel für das vollständige Wiederherstellungsmodell – zuerst die primäre Dateigruppe wiederherstellen, um die Datenbank online zu bringen, dann die sekundären Dateigruppen wiederherstellen, während die Datenbank weiterhin betriebsbereit ist:
-- Stage 1: Restore primary filegroup (database comes online)
RESTORE DATABASE AdventureWorks
FILEGROUP = 'PRIMARY'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH PARTIAL, NORECOVERY;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH RECOVERY;
GO
-- Stage 2: Restore secondary filegroup (database stays online)
RESTORE DATABASE AdventureWorks
FILEGROUP = 'HistoricalData'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH RECOVERY;
GO
Beispiel für ein einfaches Wiederherstellungsmodell:
-- Restore primary with all read-write filegroups
RESTORE DATABASE AdventureWorks
FILEGROUP = 'PRIMARY'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH PARTIAL, RECOVERY;
-- Restore read-only filegroup separately
RESTORE DATABASE AdventureWorks
FILEGROUP = 'ReadOnlyArchive'
FROM DISK = 'C:\Backups\AdventureWorks_ReadOnly.bak'
WITH RECOVERY;
GO
9.9 Wiederherstellen mit T-SQL-Befehlen
Vollständiges Wiederherstellungsskript mit Dateiverschiebung:
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH MOVE 'AdventureWorks_Data' TO 'D:\Data\AdventureWorks.mdf',
MOVE 'AdventureWorks_Log' TO 'E:\Logs\AdventureWorks.ldf',
REPLACE,
STATS = 10;
GO
9.10 Überprüfen der Sicherungsintegrität vor der Wiederherstellung
Gültigkeit der Sicherung prüfen, ohne sie wiederherzustellen:
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak';
GO
Dieser Befehl überprüft, ob der Sicherungssatz vollständig und lesbar ist, ohne die Datenbank tatsächlich wiederherzustellen.
10 SQL Server Best Practices für Sicherungen
10.1 Entwicklung einer Backup-Strategie
10.1.1 Bewertung der Geschäftsanforderungen
Bevor Sie Backups implementieren, bewerten Sie:
- Datenkritikalität: Wie wichtig sind diese Daten für den Betrieb?
- Änderungshäufigkeit: Wie oft ändern sich Daten?
- Datenbankgröße: Wie groß ist die Datenbank?
- Verfügbare Ressourcen: Welcher Speicher und welche Bandbreite stehen zur Verfügung?
- Compliance-Anforderungen: Welche Vorschriften müssen Sie beachten?
10.1.2 Definition von RTO und RPO
Ziel der Wiederherstellungszeit (RTO): Maximal akzeptable Ausfallzeit. Bestimmt, wie schnell Sie den Betrieb wiederherstellen müssen.
Wiederherstellungspunktziel (RPO): Maximal zulässiger Datenverlust. Bestimmt die Sicherungshäufigkeit.
| RTO/RPO-Anforderung | Empfohlene Sicherungsstrategie |
|---|---|
| RPO: Stunden, RTO: Stunden | Täglich vollständig + Transaktionsprotokoll alle 1–2 Stunden |
| RPO: Minuten, RTO: Stunden | Tägliche vollständige + Protokollsicherungen alle 15–30 Minuten |
| RPO: Nahezu Null, RTO: Minuten | Always On-Verfügbarkeitsgruppen + häufige Protokollsicherungen |
| RPO: Tage, RTO: Tage | Wöchentliche Vollzahlung + tägliche Differenz |
10.2 Erstellen eines Sicherungszeitplans
10.2.1 Frequenzempfehlungen
Typischer Sicherungszeitplan für Produktionsdatenbanken:
- Vollständige Backups: Wöchentlich (Sonntagnacht bei geringer Aktivität)
- Differenzielle Sicherungen: Täglich (jede Nacht)
- Transaktionsprotokollsicherungen: Alle 15–30 Minuten während der Geschäftszeiten
- Nur-Kopier-Backups: Nach Bedarf für Tests oder Entwicklung
10.2.2 Ausgleich von Leistung und Schutz
Berücksichtigen Sie bei der Planung folgende Faktoren:
- Nebenzeiten: Führen Sie in Zeiten geringer Aktivität vollständige Sicherungen durch
- Ressourcenauswirkungen: Komprimierung reduziert die E/A, erhöht aber die CPU-Auslastung
- Netzwerk Bandbreite: Planen Sie Netzwerksicherungen bei geringem Datenverkehr
- Sicherungsfenster: Stellen Sie sicher, dass die Sicherungen vor Geschäftsschluss abgeschlossen sind
10.3 Best Practices für die Sicherungsspeicherung
10.3.1 On-Site-Speicherung vs. Off-Site-Speicherung
Vor-Ort-Backups:
- Schnellere Sicherungs- und Wiederherstellungszeiten
- Tiefes cost für den Hochfrequenzzugang
- Anfällig für lokale Katastrophen
- Am besten für schnelle Wiederherstellungsszenarien
Offsite-Backups:
- Schutz vor standortspezifischen Katastrophen
- Einhaltung der Anforderungen an die geografische Redundanz
- Langsamere Wiederherstellungszeiten
- Unverzichtbar für die Notfallwiederherstellung
10.3.2 Cloud-Backup-Optionen
Vorteile der Cloud-Speicherung:
- Azure Blob-Speicher: Ureinwohner SQL Server Integration, cost-effektiv für seltenen Zugriff
- Amazon S3: Äußerst langlebige, flexible Speicherebenen
- Google Cloud-Speicher: Wettbewerbsfähige Preise, weltweite Verfügbarkeit
10.3.3 Richtlinien zur Datensicherungsaufbewahrung
Richtlinien zur Probenaufbewahrung:
- Bewahren Sie tägliche Backups für 7 Tage auf
- Bewahren Sie wöchentliche Backups für 4 Wochen auf
- Monatliche Backups 12 Monate lang aufbewahren
- Jährliche Backups 7 Jahre lang aufbewahren (Compliance)
10.4 Backup-Komprimierung und -Verschlüsselung
Vorteile der Komprimierung:
- Reduziert die Größe der Sicherungsdatei um 50–70 %
- Verkürzt die Sicherungszeit
- Senkt die Lagerkapazitätosts
- Reduziert die Netzwerkbandbreite für Remote-Backups
Bewährte Methoden zur Verschlüsselung:
- Verschlüsseln Sie Backups mit sensiblen Daten immer
- Verwenden Sie die AES-256-Bit-Verschlüsselung
- Sichere Zertifikats- oder Schlüsselverwaltung
- Dokumentieren Sie die Verschlüsselungsschlüssel und bewahren Sie sie separat auf
10.5 Testen und Überprüfen von Backups
10.5.1 Regelmäßige Wiederherstellungstests
Testen Sie die Wiederherstellungsverfahren vierteljährlich oder monatlich:
- Wiederherstellen von Sicherungen in einer Testumgebung
- Überprüfen Sie die Datenintegrität und -vollständigkeit
- Überprüfen Sie die Anwendungsfunktionalität
- Wiederherstellungszeit dokumentieren (RTO validieren)
- Identifizieren und lösen Sie alle Probleme
10.5.2 RESTORE VERIFYONLY verwenden
Automatisieren Sie die Sicherungsvalidierung:
-- Verify backup integrity
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM;
GO
Führen Sie die Überprüfung unmittelbar nach Abschluss der Sicherung oder als Teil der geplanten Wartung durch.
10.6 Backup-Automatisierung und -Überwachung
10.6.1 SQL Server Agentenjobs
Erstellen Sie automatisierte Sicherungsaufträge:
- Erweitern Sie die Funktionalität der SQL Server Makler
in SSMS
- Der rechten Maustaste auf Jobs gedrückt und wählen Sie Neuer Job
- Benennen Sie den Job (z. B. „Tägliche vollständige Sicherung“)
- Hinzufügen Schritt mit T-SQL-Backup-Befehlen
- Erstellen Sie Programm für die Ausführungszeit
- Einrichtung Benachrichtigungen für Erfolg/Misserfolg
10.6.2 Wartungspläne
SQL Server Wartungspläne bieten eine visuelle Schnittstelle zur Backup-Automatisierung:
- Navigieren Verwaltung -> Wartungspläne
- Klicken Sie mit der rechten Maustaste und wählen Sie Wartungsplan-Assistent
- Wählen Sie Sicherungsaufgaben zur Automatisierung aus
- Konfigurieren des Sicherungszeitplans und der Optionen
- Einrichten von Berichterstellung und Protokollierung
10.6.3 Backup-Warnmeldungen und -Benachrichtigungen
E-Mail-Benachrichtigungen konfigurieren:
- Einrichten von Datenbank-E-Mail in SQL Server
- Erstellen Sie Warnungen für Sicherungsfehler
- Überwachen des Verlaufs von Sicherungsaufträgen
- Senden Sie zusammenfassende Berichte an Administratoren
10.7 Dokumentation und Notfallwiederherstellungsplanung
Pflegen Sie eine umfassende Dokumentation:
- Sicherungszeitplan: Wann und was wird gesichert
- Aufbewahrungsrichtlinien: Wie lange Backups aufbewahrt werden
- Lagerorte: Wo Backups gespeichert werden
- Wiederherstellungsverfahren: Schritt-für-Schritt-Anleitung zur Wiederherstellung
- Kontakt Informationen: Schlüsselpersonal und Lieferanten
- Ergebnisse des Wiederherstellungstests: Dokumentierte Testergebnisse
11. fortgeschritten SQL Server Sicherungsszenarien
11.1 Sichern sehr großer Datenbanken (VLDB)
11.1.1 Datei- und Dateigruppenstrategien
Für Datenbanken mit mehr als mehreren hundert Gigabyte:
- Trennen Sie schreibgeschützte und Lese-/Schreibdaten in verschiedene Dateigruppen
- Sichern Sie schreibgeschützte Dateigruppen selten
- Konzentrieren Sie sich bei häufigen Sicherungen auf aktive Dateigruppen
- Nutzen Sie Backups auf Dateiebene für eine granulare Kontrolle
Beispiel einer Dateisicherung:
-- Back up specific file
BACKUP DATABASE LargeDB
FILE = 'LargeDB_Data1'
TO DISK = 'C:\Backups\LargeDB_File1.bak'
WITH COMPRESSION;
GO
11.1.2 Optimierung der Sicherungsleistung
Verbessern Sie die VLDB-Sicherungsleistung:
- Striped-Backups: Gleichzeitiges Schreiben in mehrere Dateien
- Komprimierung: Reduzieren Sie die E/A- und Speicheranforderungen
- Mehrere Sicherungsgeräte: Parallelisieren von Sicherungsvorgängen
- Schnelle Speicherung: Verwenden Sie SSDs für die Backup-Staging
- Pufferanzahl: Option „BUFFERCOUNT erhöhen“
- Maximale Übertragungsgröße: Optimieren Sie die MAXTRANSFERSIZE-Einstellung
-- Optimized VLDB backup
BACKUP DATABASE LargeDB
TO DISK = 'C:\Backups\LargeDB_1.bak',
DISK = 'D:\Backups\LargeDB_2.bak',
DISK = 'E:\Backups\LargeDB_3.bak'
WITH COMPRESSION,
BUFFERCOUNT = 100,
MAXTRANSFERSIZE = 4194304;
GO
11.2 Sicherung in Always On-Verfügbarkeitsgruppen
Always On-Verfügbarkeitsgruppen verteilen die Sicherungslast auf Replikate:
- Konfigurieren Sie die Sicherungseinstellungen (primär, sekundär oder ein beliebiges Replikat).
- Auslagern von Backups auf sekundäre Replikate, um die primäre Arbeitslast zu reduzieren
- Verwenden Sie COPY_ONLY-Sicherungen auf sekundären Replikaten
- Überwachen der Sicherungsprioritätseinstellungen
-- Check backup preferences
SELECT
ag.name AS AvailabilityGroup,
ar.replica_server_name,
ar.backup_priority
FROM sys.availability_replicas ar
INNER JOIN sys.availability_groups ag ON ar.group_id = ag.group_id;
GO
11.3 Sicherung für die Datenbankspiegelung
In Datenbankspiegelungsszenarien:
- Regelmäßiges Sichern der Prinzipaldatenbank
- Transaktionsprotokoll-Backups sind für die Spiegelung unerlässlich
- Die Spiegeldatenbank befindet sich im Status „WIEDERHERSTELLEN“ (kann nicht direkt gesichert werden)
- Erwägen Sie nach dem Failover eine Sicherung des Spiegels
11.4 Sicherung im Azure Blob Storage
SQL Server kann direkt in Azure Blob Storage sichern:
- Erstellen eines Azure Storage-Kontos
- Erschaffung SQL Server Anmeldeinformationen für die Azure-Authentifizierung
- URL-Syntax für das Sicherungsziel verwenden
-- Create credential for Azure
CREATE CREDENTIAL [https://mystorageaccount.blob.core.windows.net/backups]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'your_SAS_token';
GO
-- Backup to Azure
BACKUP DATABASE AdventureWorks
TO URL = 'https://mystorageaccount.blob.core.windows.net/backups/AdventureWorks.bak'
WITH COMPRESSION,
STATS = 10;
GO
11.5 Backup auf URL
Vorteile der Sicherung auf URL:
- Unbegrenzte Cloud-Speicherkapazität
- Automatische Handhabung geografischer Redundanz
- Pay-as-you-go-Preismodell
- Kein lokaler Speicherplatz erforderlich
- Unterstützt bis zu 64 URLs pro Backup (Striping)
11.6 Striped Backups für mehr Leistung
Striped-Backups verteilen Daten auf mehrere Dateien, um die E/A zu beschleunigen:
-- Striped backup to 4 files
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AW_Stripe1.bak',
DISK = 'D:\Backups\AW_Stripe2.bak',
DISK = 'E:\Backups\AW_Stripe3.bak',
DISK = 'F:\Backups\AW_Stripe4.bak'
WITH COMPRESSION, FORMAT;
GO
Hinweis: Für die Wiederherstellung werden alle Stripe-Dateien benötigt. Fehlt eine Datei, ist die Sicherung unbrauchbar.
12. Fehlerbehebung SQL Server Sicherungsprobleme
12.1 Häufige Sicherungsfehler und Lösungen
Fehler: „Betriebssystemfehler 5: Zugriff verweigert“
- Ursache: SQL Server Dienstkonto verfügt nicht über die erforderlichen Berechtigungen
- Lösung: Schreibberechtigungen erteilen für SQL Server Dienstkonto im Sicherungsordner
Fehler: „Backup-Gerät kann nicht geöffnet werden … Gerätefehler oder Gerät offline“
- Ursache: Ungültiger Pfad oder nicht verfügbare Netzwerkfreigabe
- Lösung: Überprüfen Sie, ob der Pfad vorhanden ist, überprüfen Sie die Netzwerkkonnektivität und stellen Sie sicher, dass ausreichend Speicherplatz vorhanden ist
Fehler: „Nicht genügend Speicherplatz auf der Festplatte“
- Ursache: Nicht genügend Speicherplatz für die Sicherung
- Lösung: Geben Sie Speicherplatz frei, verwenden Sie Komprimierung, sichern Sie an einem anderen Ort
Fehler: „Datenbank wird verwendet. Die Datenbank wird von anderen Benutzern verwendet.“
- Ursache: Aktive Verbindungen während der Wiederherstellung
- Lösung: Verwenden Sie die Option WITH REPLACE oder trennen Sie zuerst die Benutzer
12.2 Probleme mit der Backup-Leistung
Diagnose langsamer Backups:
- Überprüfen Sie die Festplatten-E/A-Leistung mit Performance Monitor
- Überwachen Sie den Sicherungsfortschritt mit der STATS-Option
- Bewertung SQL Server Fehlerprotokoll für Engpässe
- Erwägen Sie eine Komprimierung, um die E/A zu reduzieren
- Verwenden Sie gestreifte Backups auf mehreren Festplatten
Abfrage zur Überwachung des Sicherungsfortschritts:
SELECT
session_id,
command,
percent_complete,
CAST(((DATEDIFF(s,start_time,GetDate()))/3600) as varchar) + ' hour(s), '
+ CAST((DATEDIFF(s,start_time,GetDate())%3600)/60 as varchar) + 'min, '
+ CAST((DATEDIFF(s,start_time,GetDate())%60) as varchar) + ' sec' as running_time,
CAST((estimated_completion_time/3600000) as varchar) + ' hour(s), '
+ CAST((estimated_completion_time %3600000)/60000 as varchar) + 'min, '
+ CAST((estimated_completion_time %60000)/1000 as varchar) + ' sec' as est_time_to_go,
dateadd(second,estimated_completion_time/1000, getdate()) as est_completion_time
FROM sys.dm_exec_requests
WHERE command LIKE 'BACKUP%';
GO
12.3 Platz- und Speicherprobleme
Verhindern Sie Speicherprobleme:
- Implementieren Sie Aufbewahrungsrichtlinien: Alte Backups automatisch löschen
- Komprimierung verwenden: Reduzieren Sie die Größe der Sicherungsdatei um 50–70 %
- Archivieren auf günstigerem Speicher: Verschieben Sie alte Backups in den Archivspeicher
- Speicherplatz überwachen: Richten Sie Warnmeldungen bei geringem Speicherplatz ein
- Geschätzte Sicherungsgröße: Berechnen Sie die erwartete Größe vor dem Sichern
Geschätzte Sicherungsgröße:
-- Estimate full backup size
EXEC sp_spaceused;
GO
12.4 Berechtigungs- und Zugriffsprobleme
Erforderliche Berechtigungen für Backups:
- DATENBANK-BACKUP Erlaubnis
- db_backupoperator Rollenmitgliedschaft
- Sysadmin Serverrolle (für alle Sicherungsvorgänge)
Erteilen Sie Sicherungsberechtigungen:
-- Grant backup permission to user
GRANT BACKUP DATABASE TO [BackupUser];
GRANT BACKUP LOG TO [BackupUser];
GO
-- Add user to backup operator role
ALTER ROLE db_backupoperator ADD MEMBER [BackupUser];
GO
12.5 Beschädigte Sicherungsdateien
Erkennen und Behandeln beschädigter Backups:
Überprüfen Sie die Sicherungsintegrität:
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM;
GO
Aktivieren Sie CHECKSUM für zukünftige Sicherungen:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM, INIT;
GO
Präventionsstrategien:
- Verwenden Sie während der Sicherung immer die Option CHECKSUM
- Überprüfen Sie Backups sofort nach der Erstellung
- Testen Sie Wiederherstellungen regelmäßig
- Speichern Sie Backups auf einem zuverlässigen Speicher
- Bewahren Sie mehrere Sicherungskopien auf
12.6 Daten aus beschädigten Sicherungsdateien wiederherstellen
Wenn Ihre Sicherungsdateien beschädigt sind und Sie dennoch Daten daraus wiederherstellen möchten, können Sie Tools von Drittanbietern verwenden, wie z. B. DataNumen SQL Recovery, wie nachstehend:
- Start DataNumen SQL Recovery.
- Wählen Sie die beschädigte Sicherungsdatei als Quelldatei aus, indem Sie den Filter auf „Alle Dateien (*.*)“ ändern:
- Legen Sie bei Bedarf die Ausgabedatei .MDF fest.
- Klicken Sie auf „S.tart Recovery“ und folgen Sie den Anweisungen zum Wiederherstellen der Datenbank.
- Nach dem Wiederherstellungsprozess wird eine neue Wiederherstellungsdatenbank angezeigt in SQL Server die alle wiederhergestellten Daten enthält.
13 SQL Server Backup-Sicherheit
13.1 Sichern von Sicherungsdateien
Schützen Sie Sicherungsdateien vor unbefugtem Zugriff:
- Dateisystemberechtigungen: Beschränken Sie den Zugriff auf autorisierte Administratoren
- Netzwerksicherheit: Verwenden Sie sichere Protokolle für Netzwerk-Backups
- Physische Sicherheit: Bewahren Sie Sicherungsmedien an sicheren Orten auf
- Zugriffsprotokollierung: Zugriff auf Sicherungsdateien prüfen
13.2 Verschlüsselungsoptionen
SQL Server unterstützt transparente Backup-Verschlüsselung:
Zertifikat zur Verschlüsselung erstellen:
-- Create master key
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'StrongP@ssw0rd!';
GO
-- Create certificate
CREATE CERTIFICATE BackupCertificate
WITH SUBJECT = 'Database Backup Certificate',
EXPIRY_DATE = '2026-12-31';
GO
Verschlüsselte Sicherung:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Encrypted.bak'
WITH COMPRESSION,
ENCRYPTION (
ALGORITHM = AES_256,
SERVER CERTIFICATE = BackupCertificate
);
GO
Wichtig: Sichern Sie Zertifikat und privaten Schlüssel separat. Ohne diese können verschlüsselte Backups nicht wiederhergestellt werden.
-- Backup certificate
BACKUP CERTIFICATE BackupCertificate
TO FILE = 'C:\Certificates\BackupCertificate.cer'
WITH PRIVATE KEY (
FILE = 'C:\Certificates\BackupCertificate.key',
ENCRYPTION BY PASSWORD = 'C3rt!f!c@t3P@ss'
);
GO
13.3 Zugriffskontrolle und Berechtigungen
Implementieren Sie das Prinzip der geringsten Privilegien:
- Gewähren Sie Sicherungsberechtigungen nur den erforderlichen Konten
- Verwenden Sie separate Konten für Sicherungs- und Wiederherstellungsvorgänge
- Vermeiden Sie die Verwendung eines SA-Kontos für Backups
- Überprüfen Sie regelmäßig die Sicherungsberechtigungen
- Entfernen Sie Berechtigungen, wenn sie nicht mehr benötigt werden
13.4 Compliance-Überlegungen
Erfüllen Sie die gesetzlichen Anforderungen:
- DSGVO: Verschlüsseln Sie Backups mit persönlichen Daten und implementieren Sie Aufbewahrungsrichtlinien
- HIPAA: PHI in Backups verschlüsseln, Zugriff kontrollieren, Prüfpfade pflegen
- PCI-DSS: Verschlüsseln Sie Backups von Karteninhaberdaten und sichern Sie die Backup-Speicherung
- SOX: Bewahren Sie die Integrität der Sicherung und dokumentieren Sie die Aufbewahrungsrichtlinien
14. Überwachung und Aufrechterhaltung von Sicherungsvorgängen
14.1 Verfolgen des Sicherungsverlaufs
SQL Server speichert den Sicherungsverlauf in der msdb-Datenbank:
-- View recent backup history
SELECT
bks.database_name,
bks.backup_start_date,
bks.backup_finish_date,
CASE bks.type
WHEN 'D' THEN 'Full'
WHEN 'I' THEN 'Differential'
WHEN 'L' THEN 'Log'
ELSE 'Other'
END AS backup_type,
bks.backup_size / 1024 / 1024 AS backup_size_mb,
bkmf.physical_device_name
FROM msdb.dbo.backupset bks
INNER JOIN msdb.dbo.backupmediafamily bkmf ON bks.media_set_id = bkmf.media_set_id
WHERE bks.backup_start_date >= DATEADD(DAY, -7, GETDATE())
ORDER BY bks.backup_start_date DESC;
GO
Suchen Sie nach Datenbanken ohne aktuelle Sicherungen:
SELECT
d.name AS database_name,
MAX(bs.backup_finish_date) AS last_backup_date,
DATEDIFF(DAY, MAX(bs.backup_finish_date), GETDATE()) AS days_since_last_backup
FROM sys.databases d
LEFT JOIN msdb.dbo.backupset bs ON d.name = bs.database_name
WHERE d.database_id > 4 -- Exclude system databases
GROUP BY d.name
HAVING MAX(bs.backup_finish_date) < DATEADD(DAY, -7, GETDATE())
OR MAX(bs.backup_finish_date) IS NULL
ORDER BY last_backup_date;
GO
14.2 Verwenden von SQL Server Reports
SQL Server Management Studio enthält integrierte Sicherungsberichte:
- Klicken Sie mit der rechten Maustaste auf die Datenbank im Objekt-Explorer
- Wählen Sie Reports -> Standardberichte
- Wählen Sie aus den verfügbaren Berichten:
- Sicherungs- und Wiederherstellungsereignisse
- Alle Backups
- Versandstatus des Transaktionsprotokolls
14.3 Überwachungstools von Drittanbietern
Kommerzielle Überwachungslösungen:
- SQL Sentry: Umfassende Überwachung und Alarmierung
- Redgate SQL-Monitor: Echtzeitüberwachung und -diagnoseostics
- SolarWinds-Datenbank-Leistungsanalysator: Leistungs- und Backup-Überwachung
- Idera SQL-Diagnoseostic Manager: Sicherungsvalidierung und -warnung
14.4 Backup-Integritätsprüfungen
Erstellen Sie ein Integritätsprüfungsverfahren:
-- Backup health check procedure
CREATE PROCEDURE sp_BackupHealthCheck
AS
BEGIN
-- Check for databases without recent full backup
SELECT
'Missing Recent Full Backup' AS issue,
d.name AS database_name,
ISNULL(CAST(MAX(bs.backup_finish_date) AS VARCHAR), 'Never') AS last_backup
FROM sys.databases d
LEFT JOIN msdb.dbo.backupset bs
ON d.name = bs.database_name AND bs.type = 'D'
WHERE d.database_id > 4
GROUP BY d.name
HAVING MAX(bs.backup_finish_date) < DATEADD(DAY, -7, GETDATE()) OR MAX(bs.backup_finish_date) IS NULL; -- Check for failed backup jobs SELECT 'Failed Backup Job' AS issue, j.name AS job_name, jh.run_date, jh.run_time, jh.message FROM msdb.dbo.sysjobs j INNER JOIN msdb.dbo.sysjobhistory jh ON j.job_id = jh.job_id WHERE jh.run_status = 0 -- Failed AND jh.step_id = 0 AND jh.run_date >= CONVERT(INT, CONVERT(VARCHAR, GETDATE()-7, 112))
AND j.name LIKE '%backup%';
END
GO
15 SQL Server Häufig gestellte Fragen zur Datensicherung
15.1 Wie oft sollte ich ein Backup erstellen? SQL Server?
Die Sicherungshäufigkeit hängt von Ihrem Recovery Point Objective (RPO) ab:
- Kritische Produktionsdatenbanken: Vollständige wöchentliche Aufzeichnung, tägliche Differenzaufzeichnung, Protokollierung alle 15–30 Minuten
- Standardproduktionsdatenbanken: Wöchentlich vollständig, täglich differenziell, alle 1–2 Stunden protokollieren
- Entwicklungsdatenbanken: Ganztägig oder wöchentlich
- Schreibgeschützte Datenbanken: Vollständig nach jeder Datenänderung
15.2 Was ist der Unterschied zwischen einer vollständigen und einer differenziellen Sicherung?
Bei einer Vollsicherung wird die gesamte Datenbank kopiert, während bei einer differenziellen Sicherung nur die Änderungen seit der letzten Vollsicherung erfasst werden. Differenzielle Sicherungen sind kleiner und schneller, erfordern für die Wiederherstellung jedoch die Basisvollsicherung.
15.3 Kann ich ein Backup erstellen SQL Server Während es läuft?
Ja, SQL Server unterstützt Online-Backups. Benutzer können während des Backup-Vorgangs weiterarbeiten. SQL Server verwendet sein Transaktionsprotokoll, um die Konsistenz aufrechtzuerhalten und sicherzustellen, dass Sicherungen auch bei gleichzeitigen Änderungen gültig sind.
15.4 Wie lange dauert SQL Server Sicherungskopie aufnehmen?
Die Dauer der Sicherung variiert je nach:
- Datenbankgröße: Größere Datenbanken benötigen mehr Zeit
- Sicherungstyp: Vollständige Backups dauern am längsten
- Komprimierung: Kann die CPU-Zeit erhöhen, aber die Gesamtdauer verkürzen
- Speichergeschwindigkeit: SSDs deutlich schneller als HDDs
- Serverlast: Höhere Aktivität verlangsamt Backups
Typische Bereiche: Für eine vollständige Sicherung einer 10 GB großen Datenbank mit Komprimierung kann es auf moderner Hardware 5–15 Minuten dauern.
15.5 Wo soll ich aufbewahren SQL Server Backups?
Best Practice: Befolgen Sie die 3-2-1-Regel:
- 3 Kopien Ihrer Daten
- 2 verschiedene Speichertypen (z. B. Festplatte und Band/Cloud)
- 1 Kopie außerhalb des Standorts
Empfohlene Standorte:
- Lokale Festplatte für schnelle Wiederherstellung
- Netzwerkspeicher für zentrale Verwaltung
- Cloud-Speicher (Azure, AWS) für die Notfallwiederherstellung
15.6 Was ist die Dateierweiterung .bak?
Die Erweiterung .bak ist die Standarddateierweiterung für SQL Server Sicherungsdateien. Es ist eine Konvention, keine Anforderung – SQL Server Backups funktionieren mit jeder Dateierweiterung. Die Verwendung von .bak macht Backup-Dateien jedoch leicht identifizierbar und ist ein Industriestandard.
15.7 So führen Sie eine Datensicherung durch SQL Server zum Netzlaufwerk?
So sichern Sie auf einem Netzlaufwerk:
- Gewährleisten SQL Server Das Dienstkonto verfügt über Schreibberechtigungen für die Netzwerkfreigabe.
- UNC-Pfad im Sicherungsbefehl verwenden:
\\ServerName\ShareName\BackupFile.bak - Testen Sie die Konnektivität, bevor Sie automatische Sicherungen planen
BACKUP DATABASE AdventureWorks
TO DISK = '\\BackupServer\SQLBackups\AdventureWorks.bak'
WITH COMPRESSION, INIT;
GO
15.8 Kann ich komprimieren SQL Server Backups?
Ja, SQL Server unterstützt native Backup-Komprimierung (Enterprise Edition oder Standard Edition starTing SQL Server 2016 SP1). Durch die Komprimierung wird die Sicherungsgröße normalerweise um 50–70 % reduziert und die Sicherungszeit wird häufig durch die Reduzierung der E/A verkürzt, allerdings erhöht sich dadurch die CPU-Auslastung.
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH COMPRESSION;
GO
16. Fazit
16.1 Key Takeaways
Effektiv SQL Server Backup-Strategien schützen Ihre Daten und gewährleisten die Geschäftskontinuität. Beachten Sie diese wichtigen Punkte:
- Grundlegendes zu den Sicherungstypen: Wählen Sie geeignete Sicherungstypen (vollständig, differenziell, Transaktionsprotokoll) basierend auf Ihren Wiederherstellungsanforderungen
- Wählen Sie das richtige Wiederherstellungsmodell: Vollständige Wiederherstellung kritischer Daten, einfach für Entwicklungsdatenbanken
- Backup-Zeitplan implementieren: Regelmäßige Voll-Backups kombiniert mit differenziellen und Log-Backups minimieren Datenverluste
- Testen Sie die Wiederherstellungsverfahren: Backups sind nur dann wertvoll, wenn sie erfolgreich wiederhergestellt werden können
- Automatisieren und überwachen: Arbeiten jederzeit weiterbearbeiten können. Jede Präsentation und jeder KI-Avatar, den Sie von Grund auf neu erstellen oder hochladen, SQL Server Agent, Wartungspläne und Überwachungstools
- Sichere Backups: Verschlüsseln Sie vertrauliche Daten und kontrollieren Sie den Zugriff auf Sicherungsdateien
- Externe Kopien speichern: Schützen Sie sich vor standortweiten Katastrophen mit Cloud- oder Remote-Speicher
- Alles dokumentieren: Führen Sie eine klare Dokumentation der Sicherungs- und Wiederherstellungsverfahren
16.2 Nächste Schritte und Ressourcen
Um Ihre zu verbessern SQL Server Backup-Implementierung:
- Bewerten Sie Ihre aktuelle Backup-Strategie anhand bewährter Methoden
- Berechnen Sie Ihre RTO- und RPO-Anforderungen
- Testen Sie Wiederherstellungsverfahren auf Nicht-Produktionssystemen
- Überprüfen und aktualisieren Sie regelmäßig die Sicherungspläne
- Implementieren Sie automatisierte Überwachung und Warnmeldungen
- Schulen Sie Teammitglieder in Wiederherstellungsverfahren
Zusätzliche Ressourcen:
- Microsoft SQL Server Dokumentation: Offizielle Anleitung zum Sichern und Wiederherstellen
- SQL Server Backup-Community-Foren: Erfahrungen und Lösungen austauschen
- Professionelle Zertifizierungen: Microsoft Certified: Azure Database Administrator Associate
16.3 Empfohlene Tools und Lösungen
Basierend auf verschiedenen Szenarien:
Kleine Geschäfte:
- Ureinwohner SQL Server Backup mit geplanten SQL Server Agentenjobs
- SQLBackupAndFTP für die Cloud-Integration
- Azure Backup für SQL Server
Mittlere Unternehmen:
- SQL Server Wartungspläne
- Tools von Drittanbietern wie Redgate SQL Backup Pro
- Veeam Backup für SQL Server
Große Unternehmen:
- Quest LiteSpeed für maximale Komprimierung
- Commvault oder Veritas NetBackup für die Backup-Verwaltung im Unternehmen
- Always On-Verfügbarkeitsgruppen für hohe Verfügbarkeit
SQL Server Backups sind für die Datenbankverwaltung von grundlegender Bedeutung. Mit der richtigen Planung, Implementierung und Tests können Sie sicherstellen, dass Ihre Daten geschützt und bei Bedarf wiederherstellbar bleiben. Start Implementierung dieser Best Practices heute, um Ihre SQL Server Datenbanken.
Über den Autor
Yuan Sheng ist ein erfahrener Datenbankadministrator (DBA) mit über 10 Jahren Erfahrung in SQL Server Umgebungen und Unternehmensdatenbankverwaltung. Er hat Hunderte von Datenbankwiederherstellungsszenarien in Finanzdienstleistungs-, Gesundheits- und Fertigungsunternehmen erfolgreich gelöst.
Yuan ist spezialisiert auf SQL Server Datenbankwiederherstellung, Hochverfügbarkeitslösungen und Leistungsoptimierung. Seine umfangreiche praktische Erfahrung umfasst die Verwaltung von Multi-Terabyte-Datenbanken, die Implementierung von Always On Availability Groups und die Entwicklung automatisierter Backup- und Wiederherstellungsstrategien für unternehmenskritische Geschäftssysteme.
Durch sein technisches Fachwissen und seinen praktischen Ansatz konzentriert sich Yuan auf die Erstellung umfassender Anleitungen, die Datenbankadministratoren und IT-Experten bei der Lösung komplexer SQL Server Herausforderungen effizient. Er bleibt auf dem Laufenden mit den neuesten SQL Server und die sich entwickelnden Datenbanktechnologien von Microsoft und testet regelmäßig Wiederherstellungsszenarien, um sicherzustellen, dass seine Empfehlungen den bewährten Vorgehensweisen der Praxis entsprechen.
Haben Sie Fragen zu SQL Server Wiederherstellung oder benötigen Sie zusätzliche Anleitung zur Datenbank-Fehlerbehebung? Yuan begrüßt Feedback und Vorschläge zur Verbesserung dieser technischen Ressourcen.











