Dateimomentaufnahme-Sicherungen für Datenbankdateien in Azure

Gilt für:SQL Server

Sql Server File-Momentaufnahme Backup verwendet Azure Momentaufnahme s, um nahezu sofortige Sicherungen und schnellere Wiederherstellungen für Datenbankdateien bereitzustellen, die mit Azure Blob Storage gespeichert sind. Sicherungs- und Wiederherstellungsrichtlinien lassen sich dank dieser Funktion vereinfachen. Weitere Informationen zum Speichern von Datenbankdateien mithilfe von Azure Blob Storage finden Sie unter SQL Server-Datendateien in Microsoft Azure.

Diagram explaining the snapshot backup architecture.

Verfügen Sie bereits über ein Azure-Konto? Besuchen Sie SQL Server auf virtuellen Azure-Computern , um einen virtuellen Computer mit bereits installiertem SQL Server zu aktivieren.

Verwenden von Azure Momentaufnahme s zum Sichern von Datenbankdateien, die in Azure gespeichert sind

Was ist eine SQL Server-Datei-Momentaufnahme Sicherung

Eine Dateimomentaufnahme-Sicherung besteht aus einem Satz von Azure-Momentaufnahmen der BLOBs, die die Datenbankdateien enthalten, und einer Sicherungsdatei mit Zeigern auf diese Dateimomentaufnahmen. Jede Dateimomentaufnahme wird im Container mit dem Basis-BLOB gespeichert. Sie können angeben, dass die Sicherungsdatei selbst über URL, auf Datenträger oder auf Band geschrieben wird. Sicherung über URL wird empfohlen. Weitere Informationen zum Sichern finden Sie unter SICHERUNG und Sichern mit DER URL unter SQL Server Backup to URL.

Diagram of the architecture of snapshot feature.

Durch das Löschen des Basis-BLOBs wird der Sicherungssatz ungültig, und Sie werden daran gehindert, ein BLOB zu löschen, das Dateimomentaufnahmen enthält (es sei denn, Sie entscheiden ausdrücklich, ein BLOB mit allen zugehörigen Dateimomentaufnahmen zu löschen). Durch Löschen einer Datenbank oder einer Datei wird zudem weder das Basis-BLOB noch eine seiner Dateimomentaufnahmen gelöscht. Darüber hinaus werden durch das Löschen der Sicherungsdatei keine Dateimomentaufnahmen aus dem Sicherungssatz gelöscht. Verwenden Sie die sys.sp_delete_backup gespeicherte Prozedur des Systems, um einen Datei-Momentaufnahme Sicherungssatz zu löschen.

Vollständige Datenbanksicherung: Durch eine vollständige Datenbanksicherung mithilfe einer Sicherung einer Dateimomentaufnahme wird eine Azure-Momentaufnahme aller Daten- und Protokolldateien der Datenbank erstellt, die Sicherungskette von Transaktionsprotokollen erzeugt und der Speicherort der Dateimomentaufnahmen in die Sicherungsdatei geschrieben.

Transaktionsprotokollsicherung: Durch Ausführen einer Transaktionsprotokollsicherung mithilfe einer Sicherung einer Dateimomentaufnahme wird eine Dateimomentaufnahme der einzelnen Datenbankdateien (nicht nur das Transaktionsprotokoll) erstellt. Es werden die Informationen zum Speicherort der Dateimomentaufnahme in der Sicherungsdatei aufgezeichnet, und die Transaktionsprotokolldatei wird abgeschnitten.

Wichtig

Nach der ersten vollständigen Sicherung, die zum Einrichten der Transaktionsprotokoll-Sicherungskette (die eine Dateimomentaufnahme-Sicherung sein kann) erforderlich ist, brauchen nur noch Sicherungen des Transaktionsprotokolls ausgeführt werden, da jeder Dateimomentaufnahme-Sicherungssatz des Transaktionsprotokolls die Dateimomentaufnahmen aller Datenbankdateien enthält und verwendet werden kann, um eine Datenbank- oder Protokollwiederherstellung durchzuführen. Nach der ersten vollständigen Datenbanksicherung müssen Sie keine zusätzlichen vollständigen oder differenziellen Sicherungen mehr ausführen, weil Azure Blob Storage die Unterschiede zwischen den einzelnen Dateimomentaufnahmen und dem aktuellen Zustand des Basisblobs für jede Datenbankdatei verwaltet.

Hinweis

Ein Lernprogramm zur Verwendung von SQL Server mit Microsoft Azure Blob Storage finden Sie im Lernprogramm: Verwenden von Microsoft Azure Blob Storage mit SQL Server-Datenbanken

Wiederherstellung mithilfe von Dateimomentaufnahme-Sicherungen

Da jeder Dateimomentaufnahme-Sicherungssatz eine Dateimomentaufnahme jeder einzelnen Datenbankdatei enthält, erfordert ein Wiederherstellungsvorgang höchstens zwei aufeinander folgende Dateimomentaufnahme-Sicherungssätze. Dies gilt unabhängig davon, ob der Sicherungssatz aus einer vollständigen Sicherung oder einer Protokollsicherung stammt. Dies unterscheidet sich wesentlich vom Wiederherstellungsvorgang unter Verwendung herkömmlicher Streamingsicherungsdateien. Bei der herkömmlichen Streamingsicherung ist für den Wiederherstellungsvorgang eine vollständige Kette von Sicherungssätzen erforderlich: die vollständige Sicherung, eine differenzielle Sicherung und eine oder mehrere Transaktionsprotokollsicherungen. Der Wiederherstellungsteil Wiederherstellungsvorgangs ist identisch, unabhängig davon, ob von der Wiederherstellung ein Dateimomentaufnahme-Sicherungs- oder ein Streamingsicherungssatz verwendet wird.

Auf den Zeitpunkt eines beliebigen Sicherungssatzes: Um einen RESTORE DATABASE-Vorgang zum Wiederherstellen einer Datenbank auf den Zeitpunkt einer bestimmten Dateimomentaufnahme-Sicherungssatzes auszuführen, werden nur der entsprechende Sicherungssatz und des Basis-Blobs selbst benötigt. Da Sie einen Dateimomentaufnahme-Sicherungssatz des Transaktionsprotokolls verwenden können, um einen RESTORE DATABASE-Vorgang auszuführen, verwenden Sie zum Ausführen dieser Art von RESTORE DATABASE-Vorgang in der Regel einen Sicherungssatz des Transaktionsprotokolls und selten einen vollständigen Sicherungssatz der Datenbank. Am Ende dieses Artikels wird ein Beispiel angezeigt, in dem diese Technik veranschaulicht wird.

Auf einen bestimmten Zeitpunkt zwischen zwei Dateimomentaufnahme-Sicherungssätzen: Um einen RESTORE DATABASE-Vorgang auszuführen, der eine Datenbank auf einen bestimmten Zeitpunkt zwischen zwei aufeinander folgenden Transaktionsprotokoll-Sicherungssätzen wiederherstellt, werden nur zwei Transaktionsprotokoll-Sicherungssätze benötigt: ein Sicherungssatz vor und ein Sicherungssatz nach dem Zeitpunkt, auf den Sie die Datenbank wiederherstellen möchten. Um dies zu erreichen, führen Sie einen RESTORE DATABASE-Vorgang WITH NORECOVERY mithilfe des Dateimomentaufnahme-Sicherungssatzes des Transaktionsprotokolls des früheren Zeitpunkts sowie einen RESTORE LOG-Vorgang WITH RECOVERY mithilfe des Dateimomentaufnahme-Sicherungssatzes des Transaktionsprotokolls des späteren Zeitpunkt aus und verwenden das STOPAT-Argument, um den Zeitpunkt anzugeben, an dem die Wiederherstellung aus der Transaktionsprotokollsicherung angehalten werden soll. Am Ende dieses Artikels wird ein Beispiel angezeigt, in dem diese Technik veranschaulicht wird.

Wartung eines Dateimomentaufnahme-Sicherungssatzes

Löschen eines Sicherungssatzes einer Dateimomentaufnahme: Ein Sicherungssatz einer Dateimomentaufnahme kann nicht mit dem FORMAT-Argument überschrieben werden. Das Argument FORMAT ist nicht zulässig, um zu vermeiden, dass Dateimomentaufnahmen, die mit der ursprünglichen Dateimomentaufnahme-Sicherung erstellt wurden, verwaist zurückbleiben. Verwenden Sie die sys.sp_delete_backup gespeicherte Prozedur des Systems, um einen Datei-Momentaufnahme Sicherungssatz zu löschen. Diese gespeicherte Prozedur löscht die Sicherungsdatei und die Dateimomentaufnahmen, die den Sicherungssatz bilden. Bei Verwendung einer anderen Methode zum Löschen eines Dateimomentaufnahme-Sicherungssatzes kann die Sicherungsdatei gelöscht werden, ohne dass die Dateimomentaufnahmen im Sicherungssatz gelöscht werden.

Löschen verwaister Sicherungsdatei-Momentaufnahme s: Möglicherweise haben Sie verwaiste Datei-Momentaufnahme s, wenn die Sicherungsdatei gelöscht wurde, ohne die sys.sp_delete_backup gespeicherte Systemprozedur zu verwenden, oder wenn eine Datenbank- oder Datenbankdatei gelöscht wurde, während die Blobs, die die Datenbank oder Datenbankdatei enthalten, sicherungsdatei-Momentaufnahme zugeordnet waren. Um Datei-Momentaufnahme zu identifizieren, die möglicherweise verwaist sind, verwenden Sie die sys.fn_db_backup_file_snapshots Systemfunktion, um alle Datei-Momentaufnahme der Datenbankdateien auflisten. Um die Dateimomentaufnahmen zu suchen, die Teil eines bestimmten Dateimomentaufnahme-Sicherungssatzes sind, verwenden Sie die gespeicherte Systemprozedur RESTORE FILELISTONLY. Anschließend können Sie die sys.sp_delete_backup_file_snapshot gespeicherte Systemprozedur verwenden, um eine einzelne sicherungsdatei-Momentaufnahme zu löschen, die verwaist wurde. Beispiele für diese Systemfunktion und diese gespeicherten Systemprozeduren finden Sie am Ende dieses Artikels. Weitere Informationen finden Sie unter sp_delete_backup, sys.fn_db_backup_file_Momentaufnahme s, sp_delete_backup_file_Momentaufnahme und RESTORE FILELISTONLY.

Überlegungen und Einschränkungen

Storage Premium: Bei Verwendung von Storage Premium gelten die folgenden Einschränkungen:

Einzelnes Speicherkonto: Dateimomentaufnahme- und Zielblobs müssen dasselbe Speicherkonto verwenden.

Massenwiederherstellungsmodell: Wenn Sie das Wiederherstellungsmodell für massenprotokollieren und mit einer Transaktionsprotokollsicherung arbeiten, die minimal protokollierte Transaktionen enthält, können Sie keine Protokollwiederherstellung (einschließlich Zeitwiederherstellung) mithilfe der Transaktionsprotokollsicherung durchführen. Führen Sie stattdessen eine Wiederherstellung der Datenbank auf den Zeitpunkt des Dateimomentaufnahme-Sicherungssatzes aus. Diese Einschränkung entspricht der Einschränkung bei Streamingsicherungen.

Onlinewiederherstellung: Bei Sicherungen von Dateimomentaufnahmen ist keine Onlinewiederherstellung möglich. Weitere Informationen zur Onlinewiederherstellung finden Sie unter "Onlinewiederherstellung (SQL Server)".

Abrechnung: Bei Verwendung von SQL Server-Dateimomentaufnahme-Sicherungen fallen zusätzliche Gebühren an, wenn sich Daten ändern. Weitere Informationen finden Sie unter Grundlegendes zur Ermittlung der Gebühren für Momentaufnahmen.

Archivierung: Sie können Dateimomentaufnahme-Sicherungen in einem Blob-Speicher oder einer Streamingsicherung archivieren. Kopieren Sie zum Archivieren in einem Blob-Speicher die Momentaufnahmen im Dateimomentaufnahme-Sicherungssatz in getrennte Blobs. Zum Archivieren in eine Streamingsicherung stellen Sie die Dateimomentaufnahme-Sicherung als neue Datenbank wieder her, und führen Sie dann eine normale Streamingsicherung mit Komprimierung und/oder Verschlüsselung durch, und archivieren Sie diese für die gewünschte Dauer, unabhängig von den Basis-BLOBs.

Wichtig

Beim Verwalten mehrerer Dateimomentaufnahme-Sicherungen fällt nur ein geringer Leistungsmehraufwand an. Allerdings kann eine übermäßige Anzahl von Dateimomentaufnahme-Sicherungen die E/A-Leistung für die Datenbank beeinträchtigen. Wir empfehlen, nur die Dateimomentaufnahme-Sicherungen aufbewahren, die zur Unterstützung Ihres Ziels hinsichtlich der Wiederherstellungspunkte erforderlich sind.

Sichern von Datenbank und Protokoll mithilfe einer Sicherung einer Dateimomentaufnahme

In diesem Beispiel wird die Sicherung von Datei-Momentaufnahme verwendet, um die AdventureWorks2022 Beispieldatenbank auf DIE URL zu sichern.

-- To permit log backups, before the full database backup, modify the database   
-- to use the full recovery model.  
USE master;  
GO  
ALTER DATABASE AdventureWorks2022  
   SET RECOVERY FULL;  
GO  
-- Back up the full AdventureWorks2022 database.  
BACKUP DATABASE AdventureWorks2022   
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022.bak'   
WITH FILE_SNAPSHOT;  
GO  
-- Back up the AdventureWorks2022 log using a time stamp in the backup file name.  
DECLARE @Log_Filename AS VARCHAR (300);  
SET @Log_Filename = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_Log_'+   
REPLACE (REPLACE (REPLACE (CONVERT (VARCHAR (40), GETDATE (), 120), '-','_'),':', '_'),' ', '_') + '.trn';  
BACKUP LOG AdventureWorks2022  
 TO URL = @Log_Filename WITH FILE_SNAPSHOT;  
GO  

Wiederherstellen aus einer auf SQL Server-Sicherung einer Dateimomentaufnahme

Im folgenden Beispiel wird die AdventureWorks2022 Datenbank mithilfe einer Transaktionsprotokolldatei Momentaufnahme Sicherungssatz wiederhergestellt und ein Wiederherstellungsvorgang angezeigt. Beachten Sie, dass Sie eine Datenbank aus einem einzigen Dateimomentaufnahme -Sicherungssatzes des Transaktionsprotokolls wiederherstellen können.

RESTORE DATABASE AdventureWorks2022 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_2015_05_18_16_00_00.trn'   
WITH RECOVERY, REPLACE;  
GO  

Zeitpunktbezogenes Wiederherstellen einer SQL Server-Sicherung von Dateimomentaufnahmen

Im folgenden Beispiel wird der AdventureWorks2022 Zustand zu einem bestimmten Zeitpunkt mithilfe von zwei Transaktionsprotokolldateien Momentaufnahme Sicherungssätzen wiederhergestellt und ein Wiederherstellungsvorgang angezeigt.

RESTORE DATABASE AdventureWorks2022 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_2015_05_18_16_00_00.trn'   
WITH NORECOVERY,REPLACE;  
GO   
  
RESTORE LOG AdventureWorks2022 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_2015_05_18_18_00_00.trn'   
WITH RECOVERY,STOPAT = 'May 18, 2015 5:35 PM';  
GO  

Löschen eines auf einer Datenbankdatei basierenden Momentaufnahmesicherung

Verwenden Sie die sys.sp_delete_backup gespeicherte Prozedur des Systems, um einen Datei-Momentaufnahme Sicherungssatz zu löschen. Geben Sie den Datenbanknamen an, damit das System prüft, ob die angegebene Momentaufnahmesicherung tatsächlich eine Sicherung für die angegebene Datenbank ist. Wenn kein Datenbankname angegeben ist, wird der angegebene Sicherungssatz mit seinen Dateimomentaufnahmen ohne eine solche Überprüfung gelöscht. Weitere Informationen finden Sie unter sp_delete_backup.

Warnung

Beim Versuch, einen Dateimomentaufnahmen-Sicherungssatz mit einer anderen Methode zu löschen, z. B. dem Microsoft Azure-Verwaltungsportal oder dem Azure-Speicher-Viewer in SQL Server Management Studio, werden die Dateimomentaufnahmen im Sicherungssatz nicht gelöscht. Durch diese Tools wird nur die Sicherungsdatei gelöscht, die die Zeiger auf die Dateimomentaufnahmen im Dateimomentaufnahme-Sicherungssatz enthält. Um Sicherungsdatei-Momentaufnahme zu identifizieren, die erneut Standard nachdem eine Sicherungsdatei nicht ordnungsgemäß gelöscht wurde, verwenden Sie die Systemfunktion, und verwenden Sie dann die sys.fn_db_backup_file_snapshotssys.sp_delete_backup_file_snapshot gespeicherte Systemprozedur, um eine einzelne Sicherungsdatei Momentaufnahme zu löschen.

Das folgende Beispiel löscht den angegebenen Dateimomentaufnahme-Sicherungssatz, einschließlich der Sicherungsdatei und der Dateimomentaufnahmen, die den angegebenen Sicherungssatz bilden.

EXEC sys.sp_delete_backup 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022.bak', 'AdventureWorks2022' ;  
GO  

Anzeigen von Momentaufnahmen von Datenbanksicherungsdateien

Verwenden Sie die sys.fn_db_backup_file_snapshots Systemfunktion, um Datei-Momentaufnahme des Basis-Blobs für jede Datenbankdatei anzuzeigen. Mit dieser Systemfunktion können Sie alle Sicherungsdatei-Momentaufnahme jedes Basis-Blobs für eine Datenbank anzeigen, die mit Azure Blob Storage gespeichert ist. Ein primärer Anwendungsfall für diese Funktion besteht darin, Sicherungsdatei-Momentaufnahme einer Datenbank zu identifizieren, die erneut Standard wenn die Sicherungsdatei für eine Datei-Momentaufnahme Sicherungssatz mithilfe eines anderen Mechanismus als der sys.sp_delete_backup gespeicherten Systemprozedur gelöscht wird. Um die Sicherungsdatei-Momentaufnahme zu bestimmen, die Teil von intakten Sicherungssätzen sind, und die, die nicht Teil von intakten Sicherungssätzen sind, verwenden Sie die RESTORE FILELISTONLY gespeicherte Systemprozedur, um die Datei-Momentaufnahme, die zu jeder Sicherungsdatei gehören, auflisten zu können. Weitere Informationen finden Sie unter sys.fn_db_backup_file_Momentaufnahme s und RESTORE FILELISTONLY.

Das folgende Beispiel gibt die Liste aller Sicherungsdatei-Momentaufnahmen für die angegebene Datenbank zurück.

--Either specify the database name or set the database context  
USE AdventureWorks2022  
select * from sys.fn_db_backup_file_snapshots (null) ;  
GO  
select * from sys.fn_db_backup_file_snapshots ('AdventureWorks2022') ;  
GO  

Löschen einer Momentaufnahme einer einzelnen Datenbanksicherungsdatei

Zum Löschen einer einzelnen Sicherungsdatei-Momentaufnahme eines Datenbankbasis-BLOB verwenden Sie die sys.sp_delete_backup_file_snapshot gespeicherte Systemprozedur. Ein primärer Anwendungsfall für diese gespeicherte Systemprozedur besteht darin, verwaiste Datei-Momentaufnahme Dateien zu löschen, die erneut Standard nachdem eine Sicherungsdatei mit einer anderen Methode als der sys.sp_delete_backup gespeicherten Systemprozedur gelöscht wurde. Weitere Informationen finden Sie unter sp_delete_backup_file_Momentaufnahme.

Warnung

Wird eine einzelne Dateimomentaufnahme gelöscht, die Bestandteil eines Dateimomentaufnahme-Sicherungssatzes ist, wird der Sicherungssatz ungültig.

Das folgende Beispiel löscht die angegebene Sicherungsdatei-Momentaufnahme. Die URL für die angegebene Sicherung wurde mithilfe der sys.fn_db_backup_file_snapshots Systemfunktion abgerufen.

EXEC sys.sp_delete_backup_file_snapshot N'AdventureWorks2022', N'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022Data.mdf?snapshot=2015-05-29T21:31:31.6502195Z';  
GO  

Nächste Schritte