Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
SQL Server bestandssnapshot-back-up gebruikt Azure snapshots om vrijwel onmiddellijke back-ups (en snellere herstels) van databasebestanden die zijn opgeslagen in Azure Blob Storage te maken. Gebruik bestandssnapshot-back-ups om je back-up- en herstelbeleid te vereenvoudigen.
Voor meer informatie over het opslaan van databasebestanden in Azure Blob Storage, zie SQL Server data files in Microsoft Azure.
Hebt u al een Azure-account? Bezoek SQL Server op virtuele machines in Azure om een virtuele machine te maken met SQL Server vooraf geïnstalleerd.
Azure-momentopnamen gebruiken om een back-up te maken van databasebestanden die zijn opgeslagen in Azure
Wat is een SQL Server bestandssnapshot-back-up?
Een bestandssnapshot-back-up is een set Azure-snapshots van de blobs die de databasebestanden bevatten, plus een back-upbestand met verwijzingen naar die bestandssnapshots. Elke bestandssnapshot bevindt zich in de container met de basisblob.
Je kunt het back-upbestand naar URL, schijf of tape schrijven, maar je moet indien mogelijk een back-up maken naar URL. Voor meer informatie, zie BACKUP en SQL Server backup naar URL voor Azure Blob Storage.
Het verwijderen van de basisblob maakt de back-upset ongeldig. Je kunt geen blob droppen die bestandssnapshots bevat, tenzij je expliciet kiest om de blob samen met alle bestandssnapshots te verwijderen. Het verwijderen van een database of databestand verwijdert de basisblob of een van zijn bestandssnapshots niet, en het verwijderen van het back-upbestand verwijdert geen van de bestandssnapshots in de back-upset. Als u een back-upset voor momentopnamen van bestanden wilt verwijderen, gebruikt u de door het sys.sp_delete_backup systeem opgeslagen procedure.
Volledige database-back-up: Een volledige bestandssnapshot-back-up maakt een Azure-snapshot van elk data- en logbestand in de database, stelt de transactielog-back-upketen op en schrijft de bestandssnapshotlocaties naar het back-upbestand.
Transaction log back-up: Een transaction log bestandssnapshot-backup neemt een bestandssnapshot van elk databasebestand (niet alleen het transactielog), registreert de locaties van de bestandssnapshots in het back-up bestand en kortst het transactielogboek af.
Belangrijk
Na de initiële volledige back-up die de back-upketen van het transactielogbestand opstelt (die zelf een bestandssnapshot-back-up kan zijn), heb je alleen back-ups van het transactielogboek nodig. Elke back-up set van een transactielog-bestandssnapshot bevat bestandssnapshots van elk databasebestand, dus je kunt het gebruiken voor een databaseherstel of een logherstel. Je hebt geen extra volledige of differentiële back-ups nodig omdat Azure Blob Storage de verschillen tussen elke bestandssnapshot en de huidige status van de basisblob afhandelt.
Voor een tutorial over het gebruik van SQL Server met Azure Blob Storage, zie Tutorial: Use Azure Blob Storage with SQL Server.
Herstellen met back-ups van momentopnamen van bestanden
Elke bestandssnapshot-back-upset bevat een bestandssnapshot van elk databasebestand, dus een herstel vereist maximaal twee aangrenzende bestandssnapshot-back-upsets. Deze eis geldt zowel als de back-up afkomstig is van een volledige database-back-up of van een log-back-up. Bij een traditionele streaming-back-up heeft het herstelproces de volledige back-up nodig, een differentiële back-up en één of meer transactielog-back-ups. De herstelstap is hetzelfde voor beide benaderingen.
Op het moment van elke back-up set: Om een database te herstellen naar het moment van een specifieke bestandssnapshot-back-up set, RESTORE DATABASE zijn alleen die back-up set en de basisblobs nodig. Omdat RESTORE DATABASE het werkt met een transaction log file-snapshot back-up set, gebruik je meestal een transaction log backup set en zelden een volledige database backup set. Zie het voorbeeld verderop in dit artikel.
Tot een tijdstip tussen twee bestandssnapshot-back-upsets: Om een database te herstellen naar een specifiek tijdstip tussen twee aangrenzende transactielog-back-upsets, zijn slechts twee transactielog-back-upsets nodig: RESTORE DATABASE één van vóór het moment waarop je de database wilt herstellen, en één van daarna. Voer RESTORE DATABASE ... WITH NORECOVERY de eerdere back-up uit en gebruik RESTORE LOG ... WITH RECOVERY daarna de latere. Gebruik het STOPAT argument om het moment aan te geven waarop het herstel uit de back-up van het transactielogboek moet stoppen. Zie het voorbeeld verderop in dit artikel.
Onderhoud van back-upset voor bestanden
Verwijderen van een file-snapshot backup set: Je kunt een file-snapshot backup set niet overschrijven met het FORMAT argument. Het FORMAT argument is niet toegestaan omdat het bestandssnapshots van de originele bestandssnapshot-back-up kan verwees. Om een back-upset te verwijderen, gebruik je de sys.sp_delete_backup systeemopgeslagen procedure. Het verwijdert het back-upbestand en elke bestandssnapshot in de set. Andere verwijderingsmethoden kunnen het back-upbestand verwijderen, maar de bestandssnapshots laten staan.
Verwijdering van verweesde back-upbestandssnapshots: Je kunt verweesde bestandssnapshots krijgen als je het back-upbestand verwijdert zonder sys.sp_delete_backup, of als je een database of databestand verwijdert terwijl de blobs nog steeds bijbehorende back-upbestandssnapshots hebben. Om kandidaten te vinden, gebruik je de sys.fn_db_backup_file_snapshots systeemfunctie om elke bestandssnapshot van de databasebestanden te vermelden. Om te zien welke bestandssnapshots tot een specifieke back-upset behoren, gebruik je de RESTORE FILELISTONLY systeemopslagprocedure. Verwijder dan een weeskind met de sys.sp_delete_backup_file_snapshot systeemopgeslagen procedure. Zie de voorbeelden later in dit artikel.
Voor meer informatie, zie:
- sp_delete_backup
- sys.fn_db_backup_file_snapshots
- sp_delete_backup_file_snapshot
- RESTORE Verklaringen- FILELISTONLY
Overwegingen en beperkingen
Premiumopslag: Wanneer je premiumopslag gebruikt, gelden de volgende beperkingen:
Je kunt het back-upbestand zelf niet opslaan door premium opslag te gebruiken.
Je kunt de frequentie van back-ups niet korter dan 10 minuten instellen.
Je kunt tot 100 snapshots opslaan.
Je moet
RESTORE WITH MOVEgebruiken.Voor meer informatie over premium storage, zie Premium Storage: High-Performance Storage for Azure Virtual Machine Workloads.
Enkel opslagaccount: De bestandssnapshot- en bestemmingsblobs moeten hetzelfde opslagaccount gebruiken.
Bulk recovery-model: Als je het bulk-logged recovery-model gebruikt met een transaction log-back-up die minimaal geregistreerde transacties bevat, kun je het log (inclusief point in time recovery) niet herstellen van die back-up. Herstel in plaats daarvan de database naar het tijdstip van de bestandssnapshot-back-up set. Dezelfde beperking geldt voor streaming-backup.
Online herstel: Je kunt geen online herstel uitvoeren vanaf een bestandssnapshot-back-up. Zie Online herstellen (SQL Server) voor meer informatie over online herstellen.
Facturering: SQL Server bestandssnapshot-back-up brengt kosten met zich mee naarmate data verandert. Zie Inzicht in hoe momentopnamen kosten maken voor meer informatie.
Archivaal: Je kunt een bestandssnapshot-back-up archiveren naar Azure Blob Storage of naar streaming-backup. Voor Azure Blob Storage kopieer je de snapshots uit de file-snapshot back-up set in aparte blobs. Voor streaming back-up herstel je de bestandssnapshot-back-up als een nieuwe database, en maak je daarna een reguliere streaming back-up met compressie en/of encryptie. Je kunt het archief zo lang bewaren als je wilt, onafhankelijk van de basisblobs.
Belangrijk
Het bijhouden van meerdere bestandssnapshot-back-ups heeft slechts een kleine prestatie-overhead, maar te veel onderhouden kan de I/O-prestaties op de database beïnvloeden. Bewaar alleen de bestandssnapshot-back-ups die je nodig hebt om je herstelpunt te bereiken.
Een back-up van de database maken en logboeken maken met behulp van een back-up van een momentopname van een bestand
Het volgende voorbeeld gebruikt een bestandssnapshot-back-up om de AdventureWorks2025 voorbeelddatabase te back-uppen naar een URL.
-- To permit log backups, before the full database backup, modify the database
-- to use the full recovery model.
USE master;
GO
ALTER DATABASE AdventureWorks2025
SET RECOVERY FULL;
GO
-- Back up the full AdventureWorks2025 database.
BACKUP DATABASE AdventureWorks2025
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025.bak'
WITH FILE_SNAPSHOT;
GO
-- Back up the AdventureWorks2025 log using a timestamp in the backup file name.
DECLARE @Log_Filename AS VARCHAR (300);
SET @Log_Filename = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025_Log_'+
REPLACE (REPLACE (REPLACE (CONVERT (VARCHAR (40), GETDATE (), 120), '-','_'),':', '_'),' ', '_') + '.trn';
BACKUP LOG AdventureWorks2025
TO URL = @Log_Filename WITH FILE_SNAPSHOT;
GO
Een back-up van een SQL Server-bestandsmomentopname herstellen
Het volgende voorbeeld herstelt de AdventureWorks2025 database door gebruik te maken van een transaction log file-snapshot back-up set en toont een hersteloperatie. Je kunt een database herstellen vanuit een enkele transactielog-bestandssnapshot-back-up set.
RESTORE DATABASE AdventureWorks2025 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025_2026_05_18_16_00_00.trn'
WITH RECOVERY, REPLACE;
GO
Een back-up van een SQL Server-bestandsmomentopname herstellen naar een specifiek tijdstip
Het volgende voorbeeld gebruikt twee transactielogbestand-snapshot back-upsets om de AdventureWorks2025 database op een bepaald moment terug te brengen naar zijn status en toont een hersteloperatie.
RESTORE DATABASE AdventureWorks2025
FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025_2026_05_18_16_00_00.trn'
WITH NORECOVERY,
REPLACE;
GO
RESTORE LOG AdventureWorks2025
FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025_2026_05_18_18_00_00.trn'
WITH RECOVERY,
STOPAT = 'May 18, 2026 5:35 PM';
GO
Een back-upset van een momentopname van een databasebestand verwijderen
Als u een back-upset voor momentopnamen van bestanden wilt verwijderen, gebruikt u de door het sys.sp_delete_backup systeem opgeslagen procedure. Voeg de databasenaam toe zodat de procedure verifieert dat de back-upset een back-up is voor die database. Als je de databasenaam weglaat, slaat de procedure die controle over en verwijdert de back-upset en de bestandssnapshots. Zie sp_delete_backup voor meer informatie.
Waarschuwing
Als je een bestandssnapshot-back-up op een andere manier verwijdert, bijvoorbeeld via het Azure-portaal of de Azure Storage-node in SQL Server Management Studio's Objectverkenner, blijven de bestandssnapshots achter. Die tools verwijderen alleen het back-upbestand, dat de verwijzingen naar de bestandssnapshots bevat. Om overgebleven bestandssnapshots te vinden, gebruik je de sys.fn_db_backup_file_snapshots systeemfunctie en verwijder je ze vervolgens met de sys.sp_delete_backup_file_snapshot systeemopgeslagen procedure.
Het volgende voorbeeld verwijdert een bestandssnapshot-back-upset, inclusief het back-upbestand en alle bestandssnapshots in de set.
EXECUTE sys.sp_delete_backup
'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025.bak',
'AdventureWorks2025';
GO
Bekijk snapshots van database-back-upbestanden
Om de bestandssnapshots van de basisblob voor elk databasebestand te vermelden, gebruik je de sys.fn_db_backup_file_snapshots systeemfunctie. Je kunt back-upbestandssnapshots vinden die blijven bestaan wanneer iets anders dan sys.sp_delete_backup het back-upbestand verwijdert voor een bestandssnapshot-back-up set. Om te zien welke bestandssnapshots tot een intacte back-upset behoren, gebruik RESTORE FILELISTONLY je om de bestandssnapshots te vermelden waarnaar elk back-upbestand verwijst. Voor meer informatie, zie sys.fn_db_backup_file_snapshots en RESTORE Statements - FILELISTONLY.
Het volgende voorbeeld geeft elke snapshot van back-upbestanden voor een database weer weer.
--Either specify the database name or set the database context
USE AdventureWorks2025;
SELECT *
FROM sys.fn_db_backup_file_snapshots(NULL);
GO
SELECT *
FROM sys.fn_db_backup_file_snapshots('AdventureWorks2025');
GO
Verwijder een snapshot van een individuele database-back-upbestand
Om een individuele back-upbestandssnapshot van een databasegebaseerde blob te verwijderen, gebruik je de sys.sp_delete_backup_file_snapshot systeemopgeslagen procedure. Gebruik het vooral om verweesde bestandssnapshots op te ruimen die blijven bestaan wanneer een ander sys.sp_delete_backup proces het back-upbestand verwijdert. Zie sp_delete_backup_file_snapshot voor meer informatie.
Waarschuwing
Het verwijderen van een individuele bestandssnapshot die bij een bestandssnapshot-back-upset hoort, maakt de back-upset ongeldig.
Het volgende voorbeeld verwijdert een snapshot van een back-upbestand. Je kunt de URL krijgen van sys.fn_db_backup_file_snapshots.
EXECUTE sys.sp_delete_backup_file_snapshot
N'AdventureWorks2025',
N'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025Data.mdf?snapshot=2026-05-29T21:31:31.6502195Z';
GO