Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine Datenbankmomentaufnahme ist eine schreibgeschützte, statische Ansicht einer SQL Server-Datenbank (die Quelldatenbank). Die Datenbankmomentaufnahme ist transaktionskonsensiert mit der Quelldatenbank ab dem Zeitpunkt der Erstellung der Momentaufnahme. Eine Datenbankmomentaufnahme befindet sich immer auf derselben Serverinstanz wie die Quelldatenbank. Wenn die Quelldatenbank aktualisiert wird, wird die Datenbankmomentaufnahme aktualisiert. Je länger eine Datenbankmomentaufnahme existiert, desto wahrscheinlicher ist es, dass sie ihren verfügbaren Speicherplatz aufbraucht.
Mehrere Momentaufnahmen können in einer bestimmten Quelldatenbank vorhanden sein. Jede Datenbankmomentaufnahme wird beibehalten, bis sie vom Datenbankbesitzer explizit gelöscht wird.
Hinweis
Datenbank-Snapshots sind nicht mit Snapshot-Backups, der Snapshot-Isolation von Transaktionen oder der Snapshot-Replikation bezogen.
In diesem Thema:
Funktionsübersicht
Datenbank-Snapshots funktionieren auf der Ebene der Datenseiten. Bevor eine Seite der Quelldatenbank zum ersten Mal geändert wird, wird die ursprüngliche Seite aus der Quelldatenbank in die Momentaufnahme kopiert. Die Momentaufnahme speichert die ursprüngliche Seite und erhält die Datensätze, wie sie zum Zeitpunkt der Erstellung der Momentaufnahme bestanden. Derselbe Vorgang wird für jede Seite wiederholt, die zum ersten Mal geändert wird. Dem Benutzer scheint sich eine Datenbankmomentaufnahme nie zu ändern, da Lesevorgänge in einer Datenbankmomentaufnahme immer auf die ursprünglichen Datenseiten zugreifen, unabhängig davon, wo sie sich befinden.
Um die kopierten originalen Seiten zu speichern, verwendet die Momentaufnahme eine oder mehrere wenige Dateien. Zunächst ist eine sparse-Datei eine im Wesentlichen leere Datei, die keine Benutzerdaten enthält und noch keinen Speicherplatz für Benutzerdaten zugewiesen wurde. Wenn immer mehr Seiten in der Quelldatenbank aktualisiert werden, wächst die Größe der Datei. Die folgende Abbildung veranschaulicht die Auswirkungen von zwei kontrastreichen Aktualisierungsmustern auf die Größe einer Momentaufnahme. Updatemuster A spiegelt eine Umgebung wider, in der nur 30 Prozent der ursprünglichen Seiten während der Lebensdauer der Momentaufnahme aktualisiert werden. Updatemuster B spiegelt eine Umgebung wider, in der 80 Prozent der ursprünglichen Seiten während der Lebensdauer der Momentaufnahme aktualisiert werden.
Vorteile von Datenbankmomentaufnahmen
Momentaufnahmen können für Berichterstellungszwecke verwendet werden.
Clients können eine Datenbankmomentaufnahme abfragen, was das Schreiben von Berichten basierend auf den Daten zum Zeitpunkt der Momentaufnahmeerstellung nützlich macht.
Beibehalten von historischen Daten für die Berichtsgenerierung.
Eine Momentaufnahme kann den Benutzerzugriff auf Daten von einem bestimmten Zeitpunkt aus erweitern. Sie können z. B. eine Datenbankmomentaufnahme am Ende eines bestimmten Zeitraums (z. B. ein Finanzquartal) für spätere Berichte erstellen. Sie können dann Abschlussberichte für die Momentaufnahme erstellen. Wenn Speicherplatz zulässig ist, können Sie auch Momentaufnahmen für den Endzeitraum auf unbestimmte Zeit verwalten, sodass Abfragen für die Ergebnisse aus diesen Zeiträumen möglich sind; Um beispielsweise die Leistung der Organisation zu untersuchen.
Verwenden einer Spiegeldatenbank, die Sie für Verfügbarkeitszwecke verwalten, um Berichte auslagern zu können.
Mithilfe von Datenbankmomentaufnahmen mit Datenbankspiegelung können Sie die Daten auf dem Spiegelserver für die Berichterstellung zugänglich machen. Darüber hinaus kann das Ausführen von Abfragen in der Spiegeldatenbank Ressourcen in der Hauptdatenbank entlasten. Weitere Informationen finden Sie unter Datenbankspiegelung und Datenbankmomentaufnahmen (SQL Server).
Schutz von Daten vor Administratorfehlern.
Im Fall eines Benutzerfehlers in einer Quelldatenbank können Sie die Quelldatenbank auf den Zustand zurücksetzen, in dem sie sich befand, als eine bestimmte Datenbankmomentaufnahme erstellt wurde. Der Datenverlust beschränkt sich auf Aktualisierungen der Datenbank seit der Erstellung der Momentaufnahme.
Erstellen Sie beispielsweise vor wichtigen Updates, z. B. einer Massenaktualisierung oder einer Schemaänderung, eine Datenbankmomentaufnahme, um die Daten in der Datenbank zu schützen. Wenn Sie einen Fehler machen, können Sie den Snapshot verwenden, um die Datenbank auf den Snapshot zurückzusetzen und so wiederherzustellen. Das Zurücksetzen ist für diesen Zweck potenziell viel schneller als die Wiederherstellung aus einer Sicherung; danach können Sie jedoch nicht weiter fortfahren.
Von Bedeutung
Das Wiederherstellen funktioniert nicht in einer offline oder beschädigten Datenbank. Daher sind regelmäßige Sicherungen und Tests Ihres Wiederherstellungsplans erforderlich, um eine Datenbank zu schützen.
Hinweis
Datenbankmomentaufnahmen sind von der Quelldatenbank abhängig. Daher ist die Verwendung von Datenbankmomentaufnahmen zum Wiederherstellen einer Datenbank kein Ersatz für Ihre Sicherungs- und Wiederherstellungsstrategie. Das Ausführen aller geplanten Sicherungen bleibt unerlässlich. Wenn Sie die Quelldatenbank zu dem Zeitpunkt wiederherstellen müssen, zu dem Sie eine Datenbankmomentaufnahme erstellt haben, implementieren Sie eine Sicherungsrichtlinie, mit der Sie dies tun können.
Schutz von Daten vor Benutzerfehlern.
Durch die regelmäßige Erstellung von Datenbankmomentaufnahmen können Sie die Auswirkungen eines großen Benutzerfehlers wie z. B. einer verworfenen Tabelle verringern. Für einen hohen Schutz können Sie eine Reihe von Datenbankmomentaufnahmen erstellen, die genügend Zeit umfassen, um die meisten Benutzerfehler zu erkennen und darauf zu reagieren. Sie können z. B. 6 bis 12 rollierende Momentaufnahmen beibehalten, die je nach Datenträgerressourcen ein 24-Stunden-Intervall umfassen. Jedes Mal, wenn eine neue Momentaufnahme erstellt wird, kann die früheste Momentaufnahme gelöscht werden.
Um sich von einem Benutzerfehler zu erholen, können Sie die Datenbank auf den Stand der Momentaufnahme unmittelbar vor dem Fehler zurücksetzen. Das Zurücksetzen ist für diesen Zweck potenziell viel schneller als die Wiederherstellung aus einer Sicherung; Sie können den Vorgang jedoch anschließend nicht mehr vorwärts ausführen.
Alternativ können Sie möglicherweise eine gelöschte Tabelle oder andere verloren gegangene Daten aus den Informationen einer Momentaufnahme manuell rekonstruieren. Sie könnten beispielsweise die Daten aus der Momentaufnahme in die Datenbank kopieren und anschließend manuell die Daten zurück in die Datenbank zusammenführen.
Hinweis
Ihre Gründe für die Verwendung von Datenbankmomentaufnahmen bestimmen, wie viele gleichzeitige Momentaufnahmen Sie für eine Datenbank benötigen, wie häufig sie eine neue Momentaufnahme erstellen und wie lange sie beibehalten werden sollen.
Verwalten einer Testdatenbank
In einer Testumgebung kann es nützlich sein, wenn wiederholt ein Testprotokoll für die Datenbank ausgeführt wird, um identische Daten zu Beginn jeder Testrunde zu enthalten. Bevor der erste Durchlauf ausgeführt wird, kann ein Anwendungsentwickler oder eine Testperson einen Snapshot der Testdatenbank erstellen. Nach jeder Testausführung kann die Datenbank schnell in den vorherigen Zustand wiederhergestellt werden, indem man den Datenbanksnapshot zurücksetzt.
Begriffe und Definitionen
Datenbankmomentaufnahme
Eine transaktionskonsistente, schreibgeschützte und statische Ansicht einer Datenbank (der Quelldatenbank).
Quelldatenbank
Bei einer Datenbankmomentaufnahme handelt es sich um die Datenbank, auf der die Momentaufnahme erstellt wurde. Datenbankmomentaufnahmen sind von der Quelldatenbank abhängig. Die Momentaufnahmen einer Datenbank müssen sich auf derselben Serverinstanz wie die Datenbank befinden. Wenn diese Datenbank aus irgendeinem Grund nicht verfügbar ist, werden auch alle Datenbankmomentaufnahmen nicht mehr verfügbar.
dünn besetzte Datei
Eine vom NTFS-Dateisystem bereitgestellte Datei, die viel weniger Speicherplatz benötigt, als andernfalls erforderlich wäre. Eine Sparse-Datei wird verwendet, um Seiten zu speichern, die in eine Datenbankmomentaufnahme kopiert wurden. Bei der ersten Erstellung beansprucht eine sparse Datei wenig Speicherplatz. Wenn Daten in eine Momentaufnahme der Datenbank geschrieben werden, weist NTFS der entsprechenden Sparse-Datei nach und nach Speicherplatz zu.
Voraussetzungen für und Einschränkungen für Datenbankmomentaufnahmen
In diesem Abschnitt:
Voraussetzungen
Die Quelldatenbank, die jedes Wiederherstellungsmodell verwenden kann, muss die folgenden Voraussetzungen erfüllen:
Die Serverinstanz muss in einer Edition von SQL Server ausgeführt werden, die Datenbankmomentaufnahmen unterstützt. Weitere Informationen finden Sie unter Features Supported by the Editions of SQL Server 2014.
Die Quelldatenbank muss online sein, es sei denn, die Datenbank ist eine Spiegeldatenbank innerhalb einer Datenbankspiegelungssitzung.
Sie können eine Datenbankmomentaufnahme für jede primäre oder sekundäre Datenbank in einer Verfügbarkeitsgruppe erstellen. Die Replikatrolle muss entweder PRIMARY oder SECONDARY sein und darf nicht den Status RESOLVING aufweisen.
Der Datenbanksynchronisierungsstatus sollte SYNCHRONIZING oder SYNCHRONIZED sein, wenn Sie eine Datenbankmomentaufnahme erstellen. Datenbankmomentaufnahmen können jedoch auch erstellt werden, wenn der Datenbanksynchronisierungsstatus NOT SYNCHRONIZING lautet.
Weitere Informationen finden Sie unter Datenbankmomentaufnahmen mit AlwaysOn-Verfügbarkeitsgruppen (SQL Server).For more information, see Database Snapshots with AlwaysOn Availability Groups (SQL Server).
Um eine Datenbankmomentaufnahme in einer Spiegeldatenbank zu erstellen, muss sich die Datenbank im SYNCHRONIZED-Spiegelungszustand befinden.
Die Quelldatenbank kann nicht als skalierbare freigegebene Datenbank konfiguriert werden.
Hinweis
Alle Wiederherstellungsmodelle unterstützen Datenbankmomentaufnahmen.
Einschränkungen für die Quelldatenbank
Solange eine Datenbankmomentaufnahme vorhanden ist, bestehen die folgenden Einschränkungen für die Quelldatenbank der Momentaufnahme:
Die Datenbank kann nicht gelöscht, getrennt oder wiederhergestellt werden.
Hinweis
Das Sichern der Quelldatenbank funktioniert normal; sie ist von Datenbankmomentaufnahmen nicht betroffen.
Die Leistung wird durch eine erhöhte E/A-Operation in der Quelldatenbank verringert, die sich aus einem Kopieren beim Schreiben in die Momentaufnahme jedes Mal, wenn eine Seite aktualisiert wird, ergibt.
Dateien können nicht aus der Quelldatenbank oder aus Momentaufnahmen gelöscht werden.
Einschränkungen bei Datenbank-Snapshots
Die folgenden Einschränkungen gelten für Datenbankmomentaufnahmen:
Eine Datenbankmomentaufnahme muss erstellt und auf derselben Serverinstanz wie die Quelldatenbank verbleiben.
Datenbankmomentaufnahmen funktionieren immer für eine gesamte Datenbank.
Datenbankmomentaufnahmen sind von der Quelldatenbank abhängig und sind nicht redundanter Speicher. Sie schützen nicht vor Datenträgerfehlern oder anderen Arten von Beschädigungen. Daher ist die Verwendung von Datenbankmomentaufnahmen zum Wiederherstellen einer Datenbank kein Ersatz für Ihre Sicherungs- und Wiederherstellungsstrategie. Das Ausführen aller geplanten Sicherungen bleibt unerlässlich. Wenn Sie die Quelldatenbank zu dem Zeitpunkt wiederherstellen müssen, zu dem Sie eine Datenbankmomentaufnahme erstellt haben, implementieren Sie eine Sicherungsrichtlinie, mit der Sie dies tun können.
Wenn eine Seite, die auf der Quelldatenbank aktualisiert wird, an eine Momentaufnahme übertragen wird, wenn die Momentaufnahme nicht genügend Speicherplatz aufweist oder ein anderer Fehler auftritt, wird die Momentaufnahme verdächtiger und muss gelöscht werden.
Momentaufnahmen sind schreibgeschützt. Da sie nur lesbar sind, können sie nicht aufgerüstet werden. Daher werden Datenbankmomentaufnahmen nach einem Upgrade nicht mehr nutzbar sein.
Momentaufnahmen der Modell-, Master- und tempdb-Datenbanken sind verboten.
Sie können keine der Spezifikationen der Datenbankmomentaufnahmendateien ändern.
Dateien können nicht aus einer Datenbankmomentaufnahme entfernt werden.
Sie können Datenbankmomentaufnahmen nicht sichern oder wiederherstellen.
Sie können Datenbankmomentaufnahmen weder anfügen noch entfernen.
Sie können keine Datenbankmomentaufnahmen auf FAT32-Dateisystem- oder RAW-Partitionen erstellen. Die spärlichen Dateien, die von Datenbankmomentaufnahmen verwendet werden, werden vom NTFS-Dateisystem bereitgestellt.
Die Volltextindizierung wird für Datenbankmomentaufnahmen nicht unterstützt. Volltextkataloge werden nicht aus der Quelldatenbank übertragen.
Eine Datenbankmomentaufnahme erbt die Sicherheitseinschränkungen der Quelldatenbank zum Zeitpunkt der Momentaufnahmeerstellung. Da Momentaufnahmen schreibgeschützt sind, können geerbte Berechtigungen nicht geändert werden, und Berechtigungsänderungen, die an der Quelle vorgenommen wurden, werden nicht in vorhandenen Momentaufnahmen widergespiegelt.
Eine Momentaufnahme gibt immer den Status von Dateigruppen zum Zeitpunkt der Momentaufnahmeerstellung wieder: Onlinedateigruppen bleiben online, und Offlinedateigruppen bleiben offline. Weitere Informationen finden Sie weiter unten in diesem Thema unter "Datenbankmomentaufnahmen mit Offlinedateigruppen".
Wenn eine Quelldatenbank in den RECOVERY_PENDING-Status gelangt, können ihre Datenbankmomentaufnahmen unzugänglich werden. Nachdem das Problem in der Quelldatenbank behoben wurde, sollten die Momentaufnahmen jedoch wieder verfügbar sein.
Das Zurücksetzen wird für schreibgeschützte Dateigruppen und für komprimierte Dateigruppen nicht unterstützt. Versuche, eine Datenbank zurückzugeben, die einen dieser Dateigruppentypen enthält, schlagen fehl.
In einer Protokollversandkonfiguration können Datenbankmomentaufnahmen nur in der primären Datenbank und nicht in einer sekundären Datenbank erstellt werden. Wenn Sie die Rollen zwischen der primären Serverinstanz und einer sekundären Serverinstanz tauschen, müssen Sie alle Datenbankmomentaufnahmen löschen, bevor Sie die primäre Datenbank als sekundäre Datenbank einrichten können.
Eine Datenbankmomentaufnahme kann nicht als skalierbare freigegebene Datenbank konfiguriert werden.
FILESTREAM-Dateigruppen werden von Datenbankmomentaufnahmen nicht unterstützt. Wenn FILESTREAM-Dateigruppen in einer Quelldatenbank vorhanden sind, werden sie in ihren Datenbankmomentaufnahmen als offline markiert, und die Datenbankmomentaufnahmen können nicht zum Wiederherstellen der Datenbank verwendet werden.
Hinweis
Eine SELECT-Anweisung, die in einer Datenbankmomentaufnahme ausgeführt wird, darf keine FILESTREAM-Spalte angeben; andernfalls wird die folgende Fehlermeldung zurückgegeben:
Could not continue scan with NOLOCK due to data movement.Wenn Statistiken zu einer schreibgeschützten Momentaufnahme fehlen oder veraltet sind, erstellt und verwaltet das Datenbankmodul temporäre Statistiken in tempdb. Weitere Informationen finden Sie in der Statistik.
Speicherplatzanforderungen
Datenbankmomentaufnahmen verbrauchen Speicherplatz. Wenn eine Datenbankmomentaufnahme nicht genügend Speicherplatz hat, wird sie als verdächtig gekennzeichnet und muss gelöscht werden. (Die Quelldatenbank ist jedoch nicht betroffen; Aktionen für sie werden normal fortgesetzt.) Im Vergleich zu einer vollständigen Kopie einer Datenbank sind Schnappschüsse jedoch äußerst platzsparend. Ein Schnappschuss erfordert nur genügend Speicherplatz für die Seiten, die sich während seiner Lebensdauer ändern. Im Allgemeinen werden Momentaufnahmen für einen begrenzten Zeitraum aufbewahrt, sodass ihre Größe kein großes Problem darstellt.
Je länger Sie jedoch eine Momentaufnahme beibehalten, desto wahrscheinlicher ist es, den verfügbaren Speicherplatz zu nutzen. Die maximale Größe, auf die eine geringe Datei wachsen kann, ist die Größe der entsprechenden Quelldatenbankdatei zum Zeitpunkt der Momentaufnahmeerstellung.
Wenn eine Datenbankmomentaufnahme keinen Speicherplatz mehr hat, muss sie gelöscht werden.
Hinweis
Mit Ausnahme des Speicherplatzes verbraucht eine Datenbankmomentaufnahme ungefähr so viele Ressourcen wie eine Datenbank.
Datenbankmomentaufnahmen mit Offline-Dateigruppen
Offline-Dateigruppen in der Quelldatenbank haben Auswirkungen auf Datenbankmomentaufnahmen bei dem Versuch, eine der folgenden Aktionen auszuführen:
Erstellen einer Momentaufnahme
Wenn eine Quelldatenbank über eine oder mehrere Offlinedateigruppen verfügt, ist die Snapshoterstellung mit den Dateigruppen offline erfolgreich. Für die Offlinedateigruppen werden keine Sparse-Dateien erstellt.
Eine Dateigruppe offline schalten
Sie können eine Datei in der Quelldatenbank offline schalten. Die Dateigruppe bleibt jedoch in Datenbankmomentaufnahmen online, wenn sie beim Erstellen der Momentaufnahme online war. Wenn sich die abgefragten Daten seit der Erstellung der Momentaufnahme geändert haben, kann auf die ursprüngliche Datenseite in der Momentaufnahme zugegriffen werden. Abfragen, die die Momentaufnahme verwenden, um auf nicht geänderte Daten in der Dateigruppe zuzugreifen, schlagen jedoch wahrscheinlich mit Eingabe-/Ausgabefehlern (E/A) fehl.
Onlinespeichern einer Dateigruppe
Sie können eine Dateigruppe nicht online schalten, wenn die Datenbank Datenbankmomentaufnahmen enthält. Wenn eine Dateigruppe zum Zeitpunkt der Momentaufnahmeerstellung offline ist oder offline geschaltet wird, während eine Datenbankmomentaufnahme vorhanden ist, bleibt die Dateigruppe offline. Dies liegt daran, dass die Online-Wiederherstellung einer Datei erforderlich ist, was nicht möglich ist, wenn eine Datenbankmomentaufnahme in der Datenbank vorhanden ist.
Setzen Sie die Quelldatenbank auf die Momentaufnahme zurück.
Das Wiederherstellen einer Quelldatenbank zu einer Datenbankmomentaufnahme erfordert, dass alle Dateigruppen online sind, mit Ausnahme von Dateigruppen, die offline waren, als die Momentaufnahme erstellt wurde.
Verwandte Aufgaben
Anzeigen der Größe der Datei mit geringer Dichte einer Datenbank-Momentaufnahme (Transact-SQL)
Wiederherstellen einer Datenbank aus einer Datenbankmomentaufnahme
Siehe auch
Datenbankspiegelung und Datenbankmomentaufnahmen (SQL Server)