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.
Un instantané de base de données est une vue statique en lecture seule d’une base de données SQL Server ( la base de données source). L'instantané de base de données est transactionnellement cohérent avec la base de données source au moment de la création de l'instantané. Un instantané de base de données réside toujours sur la même instance de serveur que sa base de données source. À mesure que la base de données source est mise à jour, l’instantané de base de données est mis à jour. Par conséquent, plus un instantané de base de données existe, plus il est probable qu’il utilise son espace disque disponible.
Plusieurs instantanés peuvent exister sur une base de données source donnée. Chaque instantané de base de données persiste jusqu’à ce qu’il soit explicitement supprimé par le propriétaire de la base de données.
Remarque
Les instantanés de base de données ne sont pas liés aux sauvegardes d’instantanés, à l’isolation instantanée des transactions ou à la réplication d’instantanés.
Dans cette rubrique :
Présentation des fonctionnalités
Les instantanés de base de données fonctionnent au niveau de la page de données. Avant la modification d’une page de la base de données source pour la première fois, la page d’origine est copiée de la base de données source vers l’instantané. L’instantané stocke la page d’origine, conservant les enregistrements de données tels qu’ils existaient lors de la création de l’instantané. Le même processus est répété pour chaque page en cours de modification pour la première fois. Pour l’utilisateur, un instantané de base de données ne semble jamais changer, car les opérations de lecture sur un instantané de base de données accèdent toujours aux pages de données d’origine, quel que soit l’emplacement où elles résident.
Pour stocker les pages d’origine copiées, l’instantané utilise un ou plusieurs fichiers clairsemés. Initialement, un fichier sparse est un fichier essentiellement vide qui ne contient aucune donnée utilisateur et auquel on n’a pas encore alloué d’espace disque pour les données utilisateur. À mesure que de plus en plus de pages sont mises à jour dans la base de données source, la taille du fichier augmente. La figure suivante illustre les effets de deux modèles de mise à jour contrastés sur la taille d’un instantané. Le modèle de mise à jour A reflète un environnement dans lequel seuls 30 % des pages d’origine sont mises à jour pendant la durée de vie de l’instantané. Le modèle de mise à jour B reflète un environnement dans lequel 80 % des pages d’origine sont mises à jour pendant la durée de vie de l’instantané.
Avantages des instantanés de base de données
Les instantanés peuvent être utilisés à des fins de création de rapports.
Les clients peuvent interroger un instantané de base de données, ce qui permet d’écrire des rapports en fonction des données au moment de la création d’instantanés.
Gestion des données historiques pour la génération de rapports.
Un instantané peut étendre l’accès utilisateur aux données à partir d’un point particulier dans le temps. Par exemple, vous pouvez créer un instantané de base de données à la fin d’une période donnée (par exemple, un trimestre financier) pour les rapports ultérieurs. Vous pouvez ensuite exécuter des rapports de fin de période sur l’instantané. Si l’espace disque le permet, vous pouvez également conserver des instantanés de fin de période indéfiniment, ce qui autorise les requêtes sur les résultats de ces périodes ; par exemple, pour examiner les performances de l’organisation.
Utilisation d’une base de données miroir que vous conservez à des fins de disponibilité pour décharger les rapports.
L’utilisation de captures instantanées de base de données avec la mise en miroir de bases de données vous permet de rendre les données sur le serveur miroir accessibles pour la création de rapports. En outre, l’exécution de requêtes sur la base de données miroir peut libérer des ressources sur le principal. Pour plus d’informations, consultez La mise en miroir de bases de données et les instantanés de base de données (SQL Server).
Protection des données contre les erreurs administratives.
En cas d’erreur utilisateur sur une base de données source, vous pouvez rétablir l’état dans lequel la base de données source a été créée lors de la création d’un instantané de base de données donné. La perte de données est limitée aux mises à jour de la base de données depuis la création de l’instantané.
Par exemple, avant d’effectuer des mises à jour majeures, telles qu’une mise à jour en bloc ou une modification de schéma, créez un instantané de base de données sur la base de données pour protéger les données. Si vous faites une erreur, vous pouvez utiliser l’instantané pour restaurer la base de données en revenant à l’état de l'instantané. Le retour en arrière est potentiellement beaucoup plus rapide à cet effet que la restauration à partir d’une sauvegarde ; toutefois, vous ne pouvez pas avancer ultérieurement.
Important
La restauration ne fonctionne pas dans une base de données hors connexion ou endommagée. Par conséquent, l’exécution de sauvegardes régulières et le test de votre plan de restauration sont nécessaires pour protéger une base de données.
Remarque
Les instantanés de base de données dépendent de la base de données source. Par conséquent, l’utilisation de captures instantanées de base de données pour rétablir une base de données n’est pas un substitut à votre stratégie de sauvegarde et de restauration. L’exécution de toutes vos sauvegardes planifiées reste essentielle. Si vous devez restaurer la base de données source au moment où vous avez créé un instantané de base de données, implémentez une stratégie de sauvegarde qui vous permet de le faire.
Protection des données contre l’erreur de l’utilisateur.
En créant régulièrement des instantanés de base de données, vous pouvez atténuer l’impact d’une erreur utilisateur majeure, telle qu’une table supprimée. Pour un niveau élevé de protection, vous pouvez créer une série d’instantanés de base de données couvrant suffisamment de temps pour reconnaître et répondre à la plupart des erreurs utilisateur. Par exemple, vous pouvez conserver 6 à 12 captures instantanées propagées couvrant un intervalle de 24 heures, en fonction de vos ressources de disque. Ensuite, chaque fois qu’un nouvel instantané est créé, l’instantané le plus tôt peut être supprimé.
Pour se remettre d'une erreur utilisateur, vous pouvez restaurer la base de données à l'instantané juste avant l'erreur. La réversion est potentiellement beaucoup plus rapide à cet effet que la restauration à partir d’une sauvegarde ; toutefois, vous ne pouvez pas avancer par la suite.
Vous pouvez également reconstruire manuellement une table supprimée ou d’autres données perdues à partir des informations d’un instantané. Par exemple, vous pouvez copier en bloc les données hors de la capture instantanée dans la base de données et fusionner manuellement les données dans la base de données.
Remarque
Vos raisons d’utiliser des captures instantanées de base de données déterminent le nombre de captures instantanées simultanées dont vous avez besoin sur une base de données, la fréquence à laquelle créer un instantané et la durée de conservation.
Gestion d’une base de données de test
Dans un environnement de test, il peut être utile lors de l’exécution répétée d’un protocole de test pour la base de données afin de contenir des données identiques au début de chaque série de tests. Avant d’exécuter le premier tour, un développeur d’applications ou un testeur peut créer un instantané de la base de données sur la base de données de test. Après chaque exécution de test, la base de données peut être rapidement retournée à son état antérieur en rétablissant l’instantané de la base de données.
Termes et définitions
Capture de base de données
Vue statique, cohérente sur le plan transactionnel et en lecture seule d’une base de données (la base de données source).
base de données source
Pour un instantané de base de données, base de données sur laquelle l’instantané a été créé. Les instantanés de base de données dépendent de la base de données source. Les instantanés d’une base de données doivent se trouver sur la même instance de serveur que la base de données. En outre, si cette base de données devient indisponible pour une raison quelconque, tous ses instantanés de base de données deviennent également indisponibles.
Fichier sparse
Fichier fourni par le système de fichiers NTFS qui nécessite beaucoup moins d’espace disque que ce qui serait nécessaire. Un fichier sparse est utilisé pour stocker les pages copiées dans un instantané de base de données. Lorsqu'il est créé, un fichier clairsemé occupe peu d'espace disque. À mesure que les données sont écrites dans une capture instantanée de base de données, NTFS alloue progressivement de l’espace disque au fichier sparse correspondant.
Conditions préalables pour les captures instantanées de base de données et limitations
Dans cette section :
Conditions préalables
La base de données source, qui peut utiliser n'importe quel mode de récupération, doit respecter les conditions préalables suivantes :
L’instance de serveur doit s’exécuter sur une édition de SQL Server qui prend en charge les captures instantanées de base de données. Pour plus d'informations, consultez Features Supported by the Editions of SQL Server 2014.
La base de données source doit être en ligne, à moins que la base de données soit une base de données miroir au sein d'une session de mise en miroir de bases de données.
Vous pouvez créer un instantané de base de données sur n’importe quelle base de données primaire ou secondaire dans un groupe de disponibilité. Le rôle de réplica doit être PRIMARY ou SECONDARY, et non dans l'état RESOLVING.
Nous vous recommandons que l'état de synchronisation de base de données soit SYNCHRONIZING ou SYNCHRONIZED lorsque vous créez un instantané de base de données. Toutefois, les instantanés de base de données peuvent être créés lorsque l'état de synchronisation de base de données est NOT SYNCHRONIZING.
Pour plus d’informations, consultez Captures instantanées de base de données avec des groupes de disponibilité AlwaysOn (SQL Server).
Pour créer un instantané de base de données sur une base de données miroir, la base de données doit être dans l’état de mise en miroir SYNCHRONISÉ.
La base de données source ne peut pas être configurée en tant que base de données partagée évolutive.
Remarque
Tous les modèles de récupération prennent en charge les instantanés de base de données.
Limitations relatives à la base de données source
Tant qu’un instantané de base de données existe, les limitations suivantes existent sur la base de données source de l’instantané :
La base de données ne peut pas être supprimée, détachée ou restaurée.
Remarque
La sauvegarde de la base de données source fonctionne normalement ; elle n’est pas affectée par les instantanés de base de données.
Les performances sont réduites en raison d’une augmentation des E/S sur la base de données source, due à une opération de copie par écriture dans l’instantané chaque fois qu’une page est mise à jour.
Les fichiers ne peuvent pas être supprimés de la base de données source ou des instantanés.
Limitations relatives aux instantanés de base de données
Les limitations suivantes s’appliquent aux captures instantanées de base de données :
Un instantané de base de données doit être créé et rester sur la même instance de serveur que la base de données source.
Les instantanés de base de données fonctionnent toujours sur une base de données entière.
Les instantanés de base de données dépendent de la base de données source et ne sont pas redondants. Ils ne protègent pas contre les erreurs de disque ou d’autres types d’altération. Par conséquent, l’utilisation de captures instantanées de base de données pour rétablir une base de données n’est pas un substitut à votre stratégie de sauvegarde et de restauration. L’exécution de toutes vos sauvegardes planifiées reste essentielle. Si vous devez restaurer la base de données source au moment où vous avez créé un instantané de base de données, implémentez une stratégie de sauvegarde qui vous permet de le faire.
Lorsqu’une page mise à jour sur la base de données source est envoyée à un instantané, si l’instantané manque d’espace disque ou rencontre une autre erreur, l’instantané devient suspect et doit être supprimé.
Les instantanés sont en lecture seule. Étant donné qu’ils sont en lecture seule, ils ne peuvent pas être mis à niveau. Par conséquent, les instantanés de base de données ne sont pas censés être viables après une mise à niveau.
Les instantanés des bases de données model, master et tempdb sont interdits.
Vous ne pouvez pas modifier les spécifications des fichiers des instantanés de la base de données.
Vous ne pouvez pas supprimer les fichiers d’un instantané de base de données.
Vous ne pouvez pas sauvegarder ou restaurer des instantanés de base de données.
Vous ne pouvez pas attacher ou détacher des instantanés de base de données.
Vous ne pouvez pas créer de captures instantanées de base de données sur le système de fichiers FAT32 ou les partitions RAW. Les fichiers clairsemés utilisés par les captures instantanées de base de données sont fournis par le système de fichiers NTFS.
L’indexation de texte intégral n’est pas prise en charge sur les instantanés de base de données. Les catalogues de texte intégral ne sont pas propagés à partir de la base de données source.
Un instantané de base de données hérite des contraintes de sécurité de sa base de données source au moment de sa création. Étant donné que les instantanés sont en lecture seule, les autorisations héritées ne peuvent pas être modifiées et les modifications d’autorisation apportées à la source ne sont pas reflétées dans les instantanés existants.
Un instantané reflète toujours l’état des groupes de fichiers au moment de la création d’instantanés : les groupes de fichiers en ligne restent en ligne et les groupes de fichiers hors connexion restent hors connexion. Pour plus d’informations, consultez « Captures instantanées de base de données avec groupes de fichiers hors connexion » plus loin dans cette rubrique.
Si une base de données source devient RECOVERY_PENDING, ses instantanés de base de données peuvent devenir inaccessibles. Une fois que le problème sur la base de données source est résolu, ses instantanés doivent de nouveau être disponibles.
La restauration n’est pas prise en charge pour les groupes de fichiers en lecture seule et pour les groupes de fichiers compressés. Les tentatives de restauration d’une base de données contenant l’un de ces types de groupes de fichiers échouent.
Dans une configuration de copie des journaux de transaction, les instantanés de base de données peuvent être créés uniquement sur la base de données primaire, et non sur une base de données secondaire. Si vous changez de rôle entre l’instance de serveur principal et une instance de serveur secondaire, vous devez supprimer tous les instantanés de base de données avant de pouvoir configurer la base de données primaire en tant que base de données secondaire.
Un instantané de base de données ne peut pas être configuré en tant que base de données partagée évolutive.
Les groupes de fichiers FILESTREAM ne sont pas pris en charge par les instantanés de base de données. Si des groupes de fichiers FILESTREAM existent dans une base de données source, ils sont marqués comme hors connexion dans ses instantanés de base de données et les instantanés de base de données ne peuvent pas être utilisés pour rétablir la base de données.
Remarque
Une instruction SELECT exécutée sur un instantané de base de données ne doit pas spécifier de colonne FILESTREAM ; sinon, le message d’erreur suivant est retourné :
Could not continue scan with NOLOCK due to data movement.Lorsque des statistiques sur un instantané en lecture seule sont manquantes ou obsolètes, le moteur de base de données crée et gère des statistiques temporaires dans tempdb. Pour plus d’informations, consultez Statistiques.
Configuration requise pour l’espace disque
Les instantanés de base de données consomment de l’espace disque. Si un instantané de base de données manque d’espace disque, il est marqué comme suspect et doit être supprimé. (Toutefois, la base de données source n’est pas affectée ; les actions sur celle-ci continuent normalement.) Par rapport à une copie complète d’une base de données, toutefois, les instantanés sont très efficaces en espace. Un instantané ne nécessite que suffisamment de stockage pour les pages qui changent pendant sa durée de vie. En règle générale, les instantanés sont conservés pendant une durée limitée, de sorte que leur taille n’est pas une préoccupation majeure.
Plus vous conservez un instantané, mais plus il est probable qu’il utilise de l’espace disponible. La taille maximale à laquelle un fichier clairsemé peut croître est la taille du fichier de base de données source correspondant au moment de la création de l’instantané.
Si un instantané de base de données manque d’espace disque, il doit être supprimé (supprimé).
Remarque
À l’exception de l’espace de fichier, un instantané de base de données consomme environ autant de ressources qu’une base de données.
Captures instantanées de base de données avec des groupes de fichiers hors connexion
Les groupes de fichiers hors connexion dans la base de données source affectent les instantanés de base de données lorsque vous essayez d’effectuer l’une des opérations suivantes :
Créer un instantané
Lorsqu’une base de données source a un ou plusieurs groupes de fichiers hors connexion, la création d’instantanés réussit avec les groupes de fichiers hors connexion. Les fichiers clairsemés ne sont pas créés pour les groupes de fichiers hors connexion.
Mettre un groupe de fichiers hors connexion
Vous pouvez prendre un fichier hors ligne dans la base de données source. Toutefois, le groupe de fichiers reste en ligne dans les instantanés de base de données s’il était en ligne lors de la création de l’instantané. Si les données interrogées ont changé depuis la création de l’instantané, la page de données d’origine est accessible dans l’instantané. Toutefois, les requêtes qui utilisent l’instantané pour accéder aux données non modifiées dans le groupe de fichiers sont susceptibles d’échouer avec des erreurs d’entrée/sortie (E/S).
Mettre en ligne un groupe de fichiers
Vous ne pouvez pas mettre en ligne un groupe de fichiers dans une base de données qui a des instantanés de base de données. Si un groupe de fichiers est hors connexion au moment de la création d’instantanés ou s’il est mis hors connexion pendant qu’un instantané de base de données existe, le groupe de fichiers reste hors connexion. Cela est dû au fait que le retour en ligne d’un fichier implique de le restaurer, ce qui n’est pas possible si un instantané de base de données existe sur la base de données.
Rétablir la base de données source à l’instantané
La restauration d’une base de données source vers un instantané de base de données nécessite que tous les groupes de fichiers soient en ligne, à l’exception des groupes de fichiers qui étaient hors connexion lors de la création de l’instantané.
Tâches associées
Afficher la taille du fichier partiellement alloué d'un instantané de base de données (Transact-SQL)
Rétablir une base de données dans l’état d’un instantané de base de données
Voir aussi
Mise en miroir des bases de données et instantanés des bases de données (SQL Server)