Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server
La sauvegarde instantanée de fichiers SQL Server utilise des instantanés Azure pour fournir des sauvegardes presque instantanées (et des restaurations plus rapides) des fichiers de base de données stockés dans Stockage Blob Azure. Utilisez des sauvegardes snapshot de fichiers pour simplifier vos politiques de sauvegarde et de restauration.
Pour plus d’informations sur le stockage des fichiers de base de données dans Stockage Blob Azure, voir SQL Server data files in Microsoft Azure.
Vous disposez déjà d’un compte Azure ? Visitez SQL Server sur les machines virtuelles Azure pour créer une machine virtuelle qui a SQL Server préinstallé.
Utilisation d’instantanés Azure pour sauvegarder des fichiers de base de données stockés dans Azure
Qu’est-ce qu’une sauvegarde instantanée de fichiers SQL Server ?
Une sauvegarde instantanée de fichier est un ensemble d’instantanés Azure des blobs contenant les fichiers de la base de données, ainsi qu’un fichier de sauvegarde avec des pointeurs vers ces instantanés de fichiers. Chaque instantané de fichier réside dans le conteneur avec le blob de base.
Vous pouvez écrire le fichier de sauvegarde sur URL, disque ou cassette, mais vous devriez sauvegarder à URL dès que possible. Pour plus d’informations, voir BACKUPSQL Server sauvegarder à l’URL pour Stockage Blob Azure.
Supprimer le blob de base invalide le set de sauvegarde. Vous ne pouvez pas déposer un blob contenant des instantanés de fichiers à moins de choisir explicitement de supprimer le blob ainsi que tous ses instantanés de fichiers. Supprimer une base de données ou un fichier de données ne supprime pas le blob de base ni aucun de ses instantanés de fichiers, et supprimer le fichier de sauvegarde ne supprime aucun des instantanés de fichiers dans l’ensemble de sauvegarde. Pour supprimer un jeu de sauvegarde de captures instantanées de fichiers, utilisez la procédure stockée système sys.sp_delete_backup.
Sauvegarde complète de la base de données : Une sauvegarde complète en instantané de fichiers prend un instantané Azure de chaque fichier de données et de journal dans la base de données, établit la chaîne de sauvegarde du journal des transactions, puis écrit les emplacements des instantanés de fichiers dans le fichier de sauvegarde.
Sauvegarde du journal des transactions : Une sauvegarde instantanée de fichier du journal des transactions prend un instantané de chaque fichier de base de données (pas seulement le journal des transactions), enregistre les emplacements des instantanés dans le fichier de sauvegarde, et tronque le journal des transactions.
Important
Après la sauvegarde complète initiale qui établit la chaîne de sauvegarde des journaux de transactions (qui peut elle-même être une sauvegarde instantanée de fichiers), il ne vous reste plus besoin que des sauvegardes des journaux de transactions. Chaque ensemble de sauvegarde de fichiers de journal de transaction-snapshot contient des instantanés de fichiers de chaque fichier de base de données, vous pouvez donc l’utiliser soit pour une restauration de base de données, soit pour une restauration de journaux. Vous n'avez pas besoin de sauvegardes complètes ou différentielles supplémentaires car Stockage Blob Azure gère les différences entre chaque instantané de fichier et l'état actuel du blob de base.
Pour un tutoriel sur l’utilisation de SQL Server avec Stockage Blob Azure, voir le tutoriel : Utilisez Stockage Blob Azure avec SQL Server.
Effectuer une restauration à l’aide de sauvegardes d’instantanés de fichiers
Chaque ensemble de sauvegarde instantané de fichier contient un instantané de fichier de chaque fichier de base de données, donc une restauration nécessite au maximum deux ensembles adjacents de sauvegarde instantanés de fichiers. Cette exigence est valable que le jeu de sauvegarde provienne d’une sauvegarde complète de la base de données ou d’une sauvegarde de journaux. Avec la sauvegarde traditionnelle en streaming, le processus de restauration nécessite la sauvegarde complète, une sauvegarde différentielle, et une ou plusieurs sauvegardes des journaux de transaction. L’étape de récupération est la même pour les deux approches.
Jusqu’à l’époque de tout ensemble de sauvegarde : Pour restaurer une base de données à l’époque d’un ensemble RESTORE DATABASE de sauvegarde en instantané de fichiers, il suffit de ce jeu de sauvegarde et des blobs de base. Comme RESTORE DATABASE il fonctionne avec un ensemble de sauvegarde de fichier fichier et instantané de journaux de transactions, vous utilisez généralement un ensemble de sauvegarde de journal de transactions et rarement un ensemble complet de sauvegarde de base de données. Voir l’exemple plus loin dans cet article.
À un moment précis entre deux ensembles de sauvegarde instantanés de fichiers : Pour restaurer une base de données à un moment précis entre deux ensembles adjacents de journaux de transaction, RESTORE DATABASE il suffit de deux ensembles de sauvegarde de journaux de transactions : un avant le moment où vous souhaitez restaurer la base de données, et un d’après. Exécutez RESTORE DATABASE ... WITH NORECOVERY avec le précédent ensemble de sauvegarde, puis avec RESTORE LOG ... WITH RECOVERY le dernier. Utilisez cet STOPAT argument pour spécifier le moment où il faut arrêter la récupération à partir de la sauvegarde du journal de transaction. Voir l’exemple plus loin dans cet article.
Maintenance de l’ensemble de sauvegarde de fichiers
Suppression d’un ensemble de sauvegarde instantané de fichier : Vous ne pouvez pas écraser un ensemble de sauvegarde instantané de fichiers avec cet FORMAT argument. L’argument FORMAT n’est pas autorisé car il peut orpheliner des instantanés de fichiers à partir de la sauvegarde originale du fichier instantané. Pour supprimer un ensemble de sauvegarde, utilisez la sys.sp_delete_backup procédure stockée système. Il supprime le fichier de sauvegarde et tous les instantanés de fichiers de l’ensemble. D’autres méthodes de suppression peuvent supprimer le fichier de sauvegarde mais laisser les instantanés de fichiers.
Suppression des snapshots de fichiers de sauvegarde orphelins : Vous pourriez vous retrouver avec des snapshots de fichiers orphelins si vous supprimez le fichier de sauvegarde sans sys.sp_delete_backup, ou si vous supprimez une base de données ou un fichier de données alors que ses blobs ont encore des snapshots de sauvegarde associés. Pour trouver des candidats, utilisez la sys.fn_db_backup_file_snapshots fonction système pour lister chaque instantané de fichier pour les fichiers de la base de données. Pour voir quels instantanés de fichiers appartiennent à un ensemble de sauvegarde spécifique, utilisez la RESTORE FILELISTONLY procédure de stockage système. Ensuite, retirer un orphelin avec la sys.sp_delete_backup_file_snapshot procédure système stockée. Voir les exemples plus loin dans cet article.
Pour en savoir plus, consultez :
- sp_delete_backup
- sys.fn_db_backup_file_snapshots
- sp_delete_backup_file_snapshot
- RESTORE Déclarations- FILELISTONLY
Considérations et limites
Stockage premium : Lorsque vous utilisez un stockage premium, les limitations suivantes s’appliquent :
Vous ne pouvez pas stocker le fichier de sauvegarde lui-même en utilisant un stockage premium.
Vous ne pouvez pas régler la fréquence des sauvegardes pour qu’elle soit inférieure à 10 minutes.
Vous pouvez stocker jusqu’à 100 instantanés.
Vous devez utiliser
RESTORE WITH MOVE.Pour plus d’informations sur premium storage, voir Stockage Premium : High-Performance Stockage pour Azure charges de travail de machines virtuelles.
Compte de stockage unique : L’instantané de fichier et les blobs de destination doivent utiliser le même compte de stockage.
Modèle de récupération en masse : Si vous utilisez le modèle de récupération en bloc avec une sauvegarde du journal des transactions contenant un minimum de transactions, vous ne pouvez pas restaurer le journal (y compris la récupération instantanée) à partir de cette sauvegarde. À la place, restaurez la base de données à l’époque de la sauvegarde instantanée de fichiers. La même limitation s’applique à la sauvegarde en streaming.
Restauration en ligne : Vous ne pouvez pas effectuer de restauration en ligne à partir d’une sauvegarde instantanée de fichiers. Pour plus d’informations sur la restauration en ligne, consultez Restauration en ligne (SQL Server).
Facturation : La sauvegarde instantanée de fichiers SQL Server ajoute des frais à mesure que les données changent. Pour plus d’informations, consultez Understanding How Snapshots Accrue Charges(Comprendre comment les captures instantanées contribuent à l’augmentation des coûts).
Archivage : Vous pouvez archiver une sauvegarde instantanée de fichiers sur Stockage Blob Azure ou sur une sauvegarde en streaming. Pour Stockage Blob Azure, copiez les instantanés dans l’ensemble de sauvegarde de fichiers instantanés dans des blobs séparés. Pour la sauvegarde en streaming, restaurez la sauvegarde instantanée de fichiers sous forme de nouvelle base de données, puis effectuez une sauvegarde en streaming régulière avec compression et/ou chiffrement. Vous pouvez garder l’archive aussi longtemps que vous le souhaitez, indépendamment des blobs de base.
Important
Maintenir plusieurs sauvegardes instantanées de fichiers comporte une petite surcharge de performance, mais en maintenir trop peut affecter les performances des E/S sur la base de données. Ne conservez que les sauvegardes instantanées de fichiers nécessaires pour atteindre votre objectif de point de récupération.
Sauvegarder la base de données et le journal à l’aide d’une sauvegarde de captures instantanées de fichiers
L’exemple suivant utilise une sauvegarde instantanée de fichiers pour sauvegarder la base de données d’exemple AdventureWorks2025 sur une 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
Restaurer à partir d’une sauvegarde de captures instantanées de fichiers SQL Server
L’exemple suivant restaure la AdventureWorks2025 base de données en utilisant un ensemble de sauvegarde de fichier journal de transactions et instantané, et montre une opération de récupération. Vous pouvez restaurer une base de données à partir d’un seul ensemble de sauvegarde de fichier journal de transaction.
RESTORE DATABASE AdventureWorks2025 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025_2026_05_18_16_00_00.trn'
WITH RECOVERY, REPLACE;
GO
Restaurer à partir d’une sauvegarde de captures instantanées de fichiers SQL Server à un point dans le temps
L’exemple suivant utilise deux ensembles de sauvegarde de fichiers de journal de transactions pour restaurer la AdventureWorks2025 base de données à son état à un moment spécifié, et montre une opération de récupération.
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
Supprimer un jeu de sauvegarde de captures instantanées d’un fichier de base de données
Pour supprimer un jeu de sauvegarde de captures instantanées de fichiers, utilisez la procédure stockée système sys.sp_delete_backup. Incluez le nom de la base de données afin que la procédure vérifie que le jeu de sauvegarde est une sauvegarde pour cette base de données. Si vous omets le nom de la base de données, la procédure saute cette vérification et supprime le jeu de sauvegarde ainsi que ses instantanés de fichiers. Pour plus d’informations, consultez sp_delete_backup.
Avertissement
Si vous supprimez un ensemble de sauvegarde instantanée de fichiers autrement, par exemple depuis le portail Azure ou le nœud stockage Azure dans Explorateur d'objets de SQL Server Management Studio, les instantanés de fichiers restent derrière. Ces outils ne suppriment que le fichier de sauvegarde, qui contient les pointeurs vers les instantanés de fichiers. Pour trouver les instantanés de fichiers restants, utilisez la sys.fn_db_backup_file_snapshots fonction système, puis supprimez chacun avec la sys.sp_delete_backup_file_snapshot procédure système stockée.
L’exemple suivant supprime un ensemble de sauvegarde instantané de fichier, y compris son fichier de sauvegarde et tous les instantanés de fichiers de l’ensemble.
EXECUTE sys.sp_delete_backup
'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025.bak',
'AdventureWorks2025';
GO
Voir les instantanés de fichiers de sauvegarde de la base de données
Pour lister les instantanés de fichiers du blob de base pour chaque fichier de base de données, utilisez la sys.fn_db_backup_file_snapshots fonction système. On peut trouver des instantanés de fichiers de sauvegarde qui restent lorsqu’un autre fichier que sys.sp_delete_backup la suppression du fichier de sauvegarde est utilisé pour un ensemble de sauvegarde instantané de fichier. Pour voir quels instantanés de fichiers appartiennent à un ensemble de sauvegarde intact, utilisez RESTORE FILELISTONLY pour lister les instantanés de fichiers auxquels chaque fichier de sauvegarde fait référence. Pour plus d’informations, voir sys.fn_db_backup_file_snapshots et RESTORE Déclarations - FILELISTONLY.
L’exemple suivant liste chaque instantané de fichier de sauvegarde pour une base de données.
--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
Supprimer un instantané individuel de fichier de sauvegarde de base de données
Pour supprimer un instantané individuel de fichier de sauvegarde d’un blob de base de base, utilisez la sys.sp_delete_backup_file_snapshot procédure de stockage système. Utilisez-le principalement pour nettoyer les instantanés de fichiers orphelins qui restent lorsqu’un processus autre qu’un sys.sp_delete_backup autre que supprime le fichier de sauvegarde. Pour plus d’informations, consultez sp_delete_backup_file_snapshot.
Avertissement
Supprimer un instantané individuel appartenant à un ensemble de sauvegarde de snapshots de fichier invalide le jeu de sauvegarde.
L’exemple suivant supprime un instantané de fichier de sauvegarde. Vous pouvez obtenir l’URL depuis 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