Erstellen einer Datenbankmomentaufnahme (Transact-SQL)

Eine SQL Server-Datenbankmomentaufnahme kann nur mithilfe von Transact-SQL erstellt werden. Das Erstellen von Datenbank-Momentaufnahmen wird von SQL Server Management Studio nicht unterstützt.

  • **Vorbereitungen: **

    Voraussetzungen

    Sicherheit

    Bewährte Methode: Benennen von Datenbankmomentaufnahmen

  • **Erstellen einer Datenbank-Momentaufnahme mit ** Transact-SQL

Vorbereitungen

Voraussetzungen

Die Quelldatenbank, die ein Wiederherstellungsmodell verwenden kann, muss die folgenden Voraussetzungen erfüllen:

  • Auf der Serverinstanz muss eine Edition von SQL Server ausgeführt werden, die Datenbankmomentaufnahmen unterstützt. Informationen zur Unterstützung von Datenbankmomentaufnahmen in SQL Server 2012 finden Sie unter Von den SQL Server 2012-Editionen unterstützte Funktionen

  • Die Quelldatenbank muss online sein, es sei denn, bei der Datenbank handelt es sich um eine Spiegeldatenbank innerhalb einer Datenbank-Spiegelungssitzung.

  • Zum Erstellen einer Datenbank-Momentaufnahme für die Spiegeldatenbank muss sich die Datenbank im synchronisierten Spiegelungsstatus befinden.

  • Die Quelldatenbank kann nicht als skalierbare freigegebene Datenbank konfiguriert werden.

Wichtiger HinweisWichtig

Informationen zu anderen bedeutenden Überlegungen finden Sie unter Datenbank-Momentaufnahmen (SQL Server).

Empfehlungen

In diesem Abschnitt werden die folgenden bewährten Methoden erläutert:

  • Bewährte Methode: Benennen von Datenbankmomentaufnahmen

  • Bewährte Methode: Beschränken der Anzahl von Datenbankmomentaufnahmen

  • Bewährte Methode: Clientverbindungen mit einer Datenbankmomentaufnahme

Bewährte Methode: Benennen von Datenbankmomentaufnahmen

Vor dem Erstellen von Momentaufnahmen müssen Sie unbedingt überlegen, wie Sie diese benennen. Jede Datenbankmomentaufnahme erfordert einen eindeutigen Datenbanknamen. Um den Verwaltungsaufwand zu reduzieren, kann der Name einer Momentaufnahme Informationen enthalten, mit denen die Datenbank identifiziert wird:

  • Den Namen der Quelldatenbank

  • Einen Hinweis, dass der neue Name für eine Momentaufnahme ist

  • Das Erstellungsdatum und die Erstellungszeit der Momentaufnahme, eine Sequenznummer oder sonstige Informationen, wie z. B. die Tageszeit, um sequenzielle Momentaufnahmen in einer bestimmten Datenbank zu unterscheiden

Angenommen, Sie haben eine Reihe von Momentaufnahmen für die AdventureWorks2012 -Datenbank. Täglich werden drei Momentaufnahmen im Abstand von sechs Stunden zwischen 6:00 Uhr und 18:00 Uhr erstellt (24-Stunden-System). Jede tägliche Momentaufnahme wird nach 24 Stunden gelöscht und durch eine neue gleichnamige Momentaufnahme ersetzt. Beachten Sie, dass jeder Momentaufnahmename einen Hinweis auf die Uhrzeit, aber nicht auf den Tag enthält:

AdventureWorks_snapshot_0600
AdventureWorks_snapshot_1200
AdventureWorks_snapshot_1800

Falls alternativ die Erstellungszeit dieser täglichen Momentaufnahmen von Tag zu Tag variiert, ist möglicherweise eine weniger präzise Benennungskonvention vorzuziehen, wie beispielsweise:

AdventureWorks_snapshot_morning
AdventureWorks_snapshot_noon
AdventureWorks_snapshot_evening

Bewährte Methode: Beschränken der Anzahl von Datenbankmomentaufnahmen

Durch das Erstellen einer Reihe von Momentaufnahmen werden im Laufe der Zeit sequenzielle Momentaufnahmen der Quelldatenbank aufgezeichnet. Jede Momentaufnahme wird so lange persistent gespeichert, bis sie explizit gelöscht wird. Durch jede Momentaufnahme nehmen die ursprünglichen Seiten beim Aktualisieren an Größe zu. Deshalb sollten Sie Speicherplatz freigeben, indem Sie eine ältere Momentaufnahme löschen, nachdem eine neue Momentaufnahme erstellt wurde.

HinweisHinweis

Wenn Sie eine Datenbankmomentaufnahme wiederherstellen möchten, müssen Sie andere Momentaufnahmen in dieser Datenbank löschen.

Bewährte Methode: Clientverbindungen mit einer Datenbankmomentaufnahme

Zur Verwendung einer Datenbankmomentaufnahme müssen die Clients wissen, wo sie diese finden. Die Benutzer können aus einer Datenbankmomentaufnahme lesen, während eine andere Datenbankmomentaufnahme erstellt oder gelöscht wird. Wenn Sie jedoch eine vorhandenen Momentaufnahme durch eine neue Momentaufnahme ersetzen, müssen Sie Clients an die neue Momentaufnahme umleiten. Die Benutzer können mithilfe von SQL Server Management Studio manuell eine Verbindung mit einer Datenbankmomentaufnahme herstellen. Für die Unterstützung einer Produktionsumgebung sollten Sie jedoch eine programmatische Lösung erstellen, die Berichterstellungsclients transparent an die neueste Momentaufnahme der Datenbank weiterleitet.

[Nach oben]

Sicherheit

Berechtigungen

Jeder Benutzer, der eine Datenbank erstellen kann, kann auch eine Datenbank-Momentaufnahme erstellen. Eine Momentaufnahme einer Spiegeldatenbank kann jedoch nur von Mitgliedern der festen Serverrolle sysadmin erstellt werden.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

So erstellen Sie eine Datenbankmomentaufnahme (mit Transact-SQL)

So erstellen Sie eine Datenbankmomentaufnahme

HinweisHinweis

Ein Beispiel für diese Prozedur finden Sie in Beispiele (Transact-SQL) an späterer Stelle in diesem Abschnitt.

  1. Prüfen Sie die aktuelle Größe der Quelldatenbank, um sicherzustellen, dass der verfügbare Festplattenspeicher zum Speichern der Datenbankmomentaufnahme ausreicht. Die maximale Größe einer Datenbankmomentaufnahme beläuft sich auf die Größe der Quelldatenbank zum Zeitpunkt der Momentaufnahmeerstellung. Weitere Informationen finden Sie unter Anzeigen der Größe der Datei mit geringer Dichte einer Datenbank-Momentaufnahme (Transact-SQL).

  2. Geben Sie eine CREATE DATABASE-Anweisung für die Dateien aus, und verwenden Sie dabei die AS SNAPSHOT OF-Klausel. Bei der Erstellung einer Momentaufnahme müssen die logischen Namen aller in der Quelldatenbank enthaltenen Datenbankdateien angegeben werden. Die Syntax lautet wie folgt:

    CREATE DATABASE database_snapshot_name

        ON

        (

            NAME = logical_file_name,

            FILENAME = 'os_file_name'

        ) [ ,...n ]

        AS SNAPSHOT OF source_database_name

    [;]

    Dabei ist source_database_name die Quelldatenbank, logical_file_name i der in SQL Server beim Verweis auf die Datei verwendete logische Name, os_file_name der vom Betriebssystem beim Erstellen der Datei verwendete Pfad- und Dateiname und database_snapshot_name der Name der Momentaufnahme, aus der die Datenbank wiederhergestellt werden soll. Eine vollständige Beschreibung dieser Syntax finden Sie unter CREATE DATABASE (Transact-SQL).

    HinweisHinweis

    Wenn Sie eine Datenbank-Momentaufnahme erstellen, darf die CREATE DATABASE-Anweisung weder Protokolldateien noch Offlinedateien, Wiederherstellungsdateien oder außer Kraft gesetzte Dateien enthalten.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Beispiele (Transact-SQL)

HinweisHinweis

Die in den Beispielen verwendete Erweiterung .ss ist willkürlich.

Dieser Abschnitt enthält die folgenden Beispiele:

  • A. Erstellen einer Momentaufnahme für die AdventureWorks-Datenbank

  • B. Erstellen einer Momentaufnahme für die Sales-Datenbank

A.Erstellen einer Momentaufnahme für die AdventureWorks-Datenbank

In diesem Beispiel wird eine Datenbankmomentaufnahme für die AdventureWorks-Datenbank erstellt. Der Momentaufnahmename, AdventureWorks_dbss_1800, und der Dateiname der entsprechenden Datei mit geringer Dichte, AdventureWorks_data_1800.ss, geben als Erstellungszeit 18:00 Uhr an.

CREATE DATABASE AdventureWorks_dbss1800 ON
( NAME = AdventureWorks_Data, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\AdventureWorks_data_1800.ss' )
AS SNAPSHOT OF AdventureWorks;
GO

B.Erstellen einer Momentaufnahme für die Sales-Datenbank

In diesem Beispiel wird eine Datenbankmomentaufnahme, sales_snapshot1200, für die Sales-Datenbank erstellt. Diese Datenbank wurde im Beispiel für das Erstellen einer Datenbank mit Dateigruppen unter CREATE DATABASE (Transact-SQL) erstellt.

--Creating sales_snapshot1200 as snapshot of the
--Sales database:
CREATE DATABASE sales_snapshot1200 ON
( NAME = SPri1_dat, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\data\SPri1dat_1200.ss'),
( NAME = SPri2_dat, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\data\SPri2dt_1200.ss'),
( NAME = SGrp1Fi1_dat, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\mssql\data\SG1Fi1dt_1200.ss'),
( NAME = SGrp1Fi2_dat, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\data\SG1Fi2dt_1200.ss'),
( NAME = SGrp2Fi1_dat, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\data\SG2Fi1dt_1200.ss'),
( NAME = SGrp2Fi2_dat, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\data\SG2Fi2dt_1200.ss')
AS SNAPSHOT OF Sales
GO

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Verwandte Aufgaben

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Siehe auch

Verweis

CREATE DATABASE (Transact-SQL)

Konzepte

Datenbank-Momentaufnahmen (SQL Server)