Windows Server Backup ist nicht als Sicherungstool für SQL Server gedacht.
... Aufgrund seines Designs eignet es sich jedoch besonders für kleinere Organisationen oder Einzelpersonen, die keine IT-Experten sind ...
Zitat aus der Windows Server-Sicherung Schritt-für-Schritt-Anleitung für Windows Server 2008 : "Wer sollte die Windows Server-Sicherung verwenden?"
In dem von Ihnen zitierten Abschnitt heißt es im Grunde, dass beim Start von Windows Server Backup die VSS-Funktion in Windows ausgelöst wird. SQL Server ist sich bewusst, dass eine Volume Shadow Copy stattfindet, und stellt mithilfe des SQL Server Writer-Dienstes sicher, dass eine Kopie der Datenbankdateien (* .mdf, * .ndf, * .ldf) ausgeführt werden kann.
Der Zweck des SQL Server Writer-Dienstes ist wie folgt definiert:
Während der Ausführung sperrt Database Engine und hat exklusiven Zugriff auf die Datendateien. Wenn der SQL Writer-Dienst nicht ausgeführt wird, haben unter Windows ausgeführte Sicherungsprogramme keinen Zugriff auf die Datendateien, und Sicherungen müssen mithilfe der SQL Server-Sicherung durchgeführt werden.
Verwenden Sie den SQL Writer-Dienst, um Windows-Sicherungsprogrammen das Kopieren von SQL Server-Datendateien zu ermöglichen, während SQL Server ausgeführt wird.
Zitat aus dem Abschnitt SQL Writer Service : "Zweck"
Das ist also im Grunde alles, was mit der Windows Server-Sicherung passiert.
Die mit Windows Server Backup erstellten Sicherungen, während SQL Server ausgeführt wird, sollten konsistent sein, aber die Transaktionen, die noch nicht auf die Festplatte geschrieben wurden, befinden sich nicht in der Volume Shadow Copy. Der Datenbank-Snapshot wurde ONLINE erstellt.
Im MSDN-Artikel Snapshot Backups heißt es jedoch:
Nur die folgenden Arten von Sicherungen können Snapshot-Sicherungen sein:
- Vollständige Backups
- Teilweise Backups
- Dateisicherungen
- Differenzielle Datenbanksicherungen. Diese werden nur unterstützt, wenn der Anbieter die VSS-Schnittstelle verwendet.
und zusätzlich:
Sofern in diesem Thema nicht anders angegeben, entsprechen Snapshot-Sicherungen funktional den entsprechenden herkömmlichen Sicherungen. Sie können Snapshot-Sicherungen in Wiederherstellungssequenzen mit vollständigen Nicht-Snapshot-Sicherungen, differenziellen Sicherungen und Protokollsicherungen verwenden. Wie andere Sicherungen werden Snapshot-Sicherungen in der msdb-Datenbank nachverfolgt, wobei Snapshot-Sicherungen durch backupset.is_snapshot = 1 identifiziert werden. Weitere Informationen zu msdb finden Sie unter msdb-Datenbank.
SQL Server unterstützt keine Online-Wiederherstellung aus einer Snapshot-Sicherung. Durch das Wiederherstellen einer Snapshot-Sicherung wird die Datenbank automatisch offline geschaltet. Eine stückweise Wiederherstellung kann Snapshot-Sicherungen enthalten, aber alle Wiederherstellungssequenzen sind Offline-Wiederherstellungen. Weitere Informationen zu stückweisen Wiederherstellungen finden Sie unter Durchführen stückweiser Wiederherstellungen.
So beantworten Sie Ihre Fragen:
- Muss ich nur die .mdf sichern? Die .mdf und die .ldf?
- Online oder nur offline?
- Wie wird offiziell auf diese Weise gesicherte SQL Server-Datenbanken wiederhergestellt?
- Gibt es etwas Besonderes zu beachten, wenn inkrementelle / differenzielle Sicherungen durchgeführt werden?
- Wo ist das alles dokumentiert?
Antworten:
- Ja, Sie können eine Windows Server Backup (VSS) -Kopie der .mdf- und .ldf-Dateien erstellen. Die Sicherung sollte konsistent sein, aber die Datenbank ist nach einer Wiederherstellung OFFLINE.
- Wenn SQL Server gestoppt ist / die Datenbank getrennt ist / die Datenbank OFFLINE ist, ist eine VSS-Kopie der .mdf- und .ldf-Dateien zu 100% konsistent.
- Ich bin mir nicht sicher, wie eine Datenbank (zu einem bestimmten Zeitpunkt) wiederhergestellt werden soll, die mit Windows Server Backup ausgeführt wird, da die Datenbank in einem OFFLINE-Status wiederhergestellt wird. Eine Datenbank im OFFLINE-Status kann nicht weiter wiederhergestellt / wiederhergestellt werden. Wenn Sie die Datenbank ONLINE verwenden, wird eine Datenbank als vollständig wiederhergestellt betrachtet. Ich würde separate SQL Server FULL-, DIFF- und TLOG-Sicherungen empfehlen, um sicherzustellen, dass Sie eine Datenbankwiederherstellung zu einem bestimmten Zeitpunkt durchführen können.
- Transaktionsprotokolle sind nicht Teil der mit Windows Server Backup erstellten Snapshots und sollten zusätzlich ausgeführt werden. Differenzielle Snapshots werden von Drittanbietern als Teil der Sicherungssequenz unterstützt, aber Windows Server Backup scheint keine differenziellen Sicherungen durchführen zu können. In diesem Fall müssten Sie auch zusätzliche differenzielle Sicherungen durchführen. (siehe 3.)
- Verschiedene Referenzen
Erklärt in der realen Implementierung
In unserer Umgebung haben wir eine ähnliche Situation, in der VMware einen Snapshot durchführt und die Datenbankadministratoren SQL Server-Dumps mit Commvault durchführen. Der Sicherungsverlauf sieht folgendermaßen aus:
DBNAME TYPE BACKUPSET_NAME IS_SNAPSHOT BACKUP_START_DATE
------- ---- ------------------------- ----------- -----------------------
DB_NAME Full NULL 1 2016-12-10 18:23:59.000
DB_NAME Full CommVault Galaxy Backup 0 2016-12-10 20:07:41.000
DB_NAME Log CommVault Galaxy Backup 0 2016-12-11 06:00:40.000
DB_NAME Full NULL 1 2016-12-11 18:24:00.000
DB_NAME Diff CommVault Galaxy Backup 0 2016-12-11 20:03:38.000
DB_NAME Log CommVault Galaxy Backup 0 2016-12-12 06:02:29.000
DB_NAME Log CommVault Galaxy Backup 0 2016-12-12 07:02:17.000
Der VMware-Snapshot erstellt mit IS_SNAPSHOT = 1
und FULL
für jeden VMware-Snapshot, der (täglich) durchgeführt wird, einen Eintrag in den MSDB-Datenbankverlaufstabellen . Die nativen (auch Commvault mit nativen) SQL Server-Sicherungen werden mit FULL-, DIFF- und TLOG-Sicherungen durchgeführt. Diese Sicherungen sind nicht als IS_SNAPSHOT gekennzeichnet und existieren als zusätzliche Einträge FULL (einmal pro Woche), DIFF (jeden zweiten Tag) und LOG (stündlich) in den Sicherungstabellen in der msdb-Datenbank.
Mit diesem Setup können wir entweder eine Wiederherstellung der Snaphot-Datums- und Uhrzeit durchführen und dann die Datenbank ONLINE schalten, oder wir können eine individuelle Wiederherstellung zu jedem Zeitpunkt mithilfe der "nativen" SQL Server-Sicherungen durchführen.