Wie kann ich eine SQL Server-Datenbank mit Windows Server Backup sichern?

11

Anscheinend hat Windows Server - Sicherung eine gewisse Unterstützung für die Sicherung von SQL Server - Datenbanken:

Möglichkeit zur Wiederherstellung von Anwendungen. Windows Server Backup verwendet VSS-Funktionen, die in Anwendungen wie Microsoft® SQL Server® integriert sind, um Anwendungsdaten zu schützen. [Quelle: TechNet ]

Darüber hinaus berichten Benutzer, dass Windows Server Backup eine Art Sicherungsvorgang in SQL Server auslöst .

Ich finde jedoch keine (offizielle) Dokumentation zum genauen Sichern von SQL Server-Datenbanken mit Windows Server Backup.

  • Muss ich nur das sichern .mdf? Das .mdfund das .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?

(Ich weiß, wie Backups mit SQL Server-Wartungsplänen sqlmaint.exe, T-SQL BACKUP und SQL Server Agent durchgeführt werden. Ich bin nur an der Alternative interessiert, die Windows Server Backup (anscheinend?) Bietet.)

Heinzi
quelle
Welche Version von Windows Server und welche Version von SQL Server?
Pause
@pauska: Persönlich würde mich Windows Server 2012 R2 und SQL Server 2012 interessieren. (Ich halte die Frage bewusst allgemeiner, um sie für andere nützlicher zu machen.)
Heinzi
1
Ich habe einen Windows Server 2008, der eine vollständige Sicherung durchführt. Soweit ich das beurteilen kann, werden die Datenbanken im Rahmen der vollständigen Sicherung aus SQL Server Express abgerufen, da jede Datenbank angibt, dass sie zum Zeitpunkt der Ausführung dieser Sicherung zuletzt gesichert wurde. Dies hat mich verwirrt, da ich herausfinden möchte, wie ich es geschafft habe, diese Datenbanken zu sichern, da ich nirgendwo ein Skript finden kann, das dies tut. Ich denke, ich werde trotzdem ein Skript schreiben, damit ich weiß, dass es funktioniert und genau weiß, was ich habe.
Dave Cousineau

Antworten:

5

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.)
  5. 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 = 1und FULLfü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.

John aka hot2use
quelle
1

Das kannst du nicht. Oder zumindest solltest du es wahrscheinlich nicht. In Bezug auf SQL Server-Datenbanken werden native Backups unterstützt.

Ich denke, Sie verstehen möglicherweise falsch, was der TechNet-Artikel sagt. Der von Ihnen zitierte Kommentar gibt nicht an, dass Sie die Windows Server-Sicherung für SQL Server-Datenbanken verwenden können. Es wird lediglich hervorgehoben, dass die Windows Server-Sicherung denselben Volume Shadow Copy-Dienst verwendet, der von SQL Server verwendet wird. Weitere Informationen: TechNet: SQL Writer Service

Shiitake
quelle
Ich weiß, dass ich nicht sollte - ich würde meine Daten nicht einer so schlecht dokumentierten Funktion anvertrauen. Trotzdem bin ich gespannt, ob es theoretisch möglich ist: SQL Server bietet einen VSS-Writer, und Windows Server Backup ist ein VSS-Anforderer. Daher lasse ich die Frage vorerst offen. Vielleicht ist es nur eine Frage der Übereinstimmung dieser beiden (es gibt zum Beispiel online Anweisungen, wie dies für den Hyper-V VSS-Writer zu tun ist ).
Heinzi
1
Anscheinend löst die Windows Server-Sicherung eine Art SQL Server-Sicherung aus (siehe diese Frage) .
Heinzi
1

SQL-Sicherung kopiert nicht nur Daten, sondern schneidet auch das Protokoll ab. Auf der Manpage finden Sie Hunderte von Optionen, die Ihnen dabei helfen, die Sicherungsdatei im laufenden Betrieb zu komprimieren.

Ich erinnere mich, dass die vss-Sicherung zum Kopieren einer eingefrorenen virtuellen Maschine oder zum Snapshot eines Lun in einem SAN verwendet wurde, um ein statisches Image zu sichern, aber die Sicherung ist "absturzkonsistent", genau wie eine Stromunterbrechung und nicht wirklich konsistent.

verbunden

Massimiliano Piccinini
quelle
0

Ich denke, es wird ein spezieller Sicherungstyp namens "Snapshot Backup" verwendet.

Aus der SQL Server 2008-Dokumentation:

Die SQL Server-Snapshot-Sicherung wird auch von Microsoft Windows Server 2003 Volume Shadow Copy Service (VSS) und von allen Sicherungs- und Speichersoftware verwendet, die dieses Framework verwenden. Weitere Informationen finden Sie unter SQL Writer-Dienst.

Es ist mir alles sehr unklar. Insbesondere, wenn dadurch Transaktionsprotokolle abgeschnitten werden oder nicht.

StackzOfZtuff
quelle