Tailles des fichiers partiellement alloués dans les instantanés de bases de données

Un instantané de base de données utilise un ou plusieurs fichiers partiellement alloués pour stocker les données. Pendant la création d'un instantané de base de données, ces fichiers partiellement alloués sont créés et nommés par l'instruction CREATE DATABASE. Ces noms de fichiers sont stockés dans sys.master_files dans la colonne physical_name.

Notes

Dans sys.database_files (dans la base de données source ou dans l'instantané), la colonne physical_name contient toujours les noms des fichiers de la base de données source.

Les fichiers partiellement alloués sont une spécificité du système de fichiers NTFS. Au départ, un fichier partiellement alloué ne contient pas de données utilisateur et aucun espace disque pour les données utilisateur ne lui a été alloué. Pour des informations générales sur l'utilisation des fichiers partiellement alloués dans un instantané de base de données et sur le schéma de croissance des instantanés de bases de données, consultez Fonctionnement des captures instantanées de base de données.

À sa création, un fichier partiellement alloué occupe très peu d'espace disque. Ensuite, au fil du temps, des données y sont écrites et le système NFTS lui alloue de l'espace disque progressivement. La taille d'un fichier partiellement alloué peut donc devenir très importante. Si un instantané de base de données ne dispose plus de suffisamment d'espace, il est marqué comme suspect et doit être supprimé. La base de données source, en revanche, n'est pas concernée et toutes les actions sur cette dernière se poursuivent normalement.

La taille d'un fichier partiellement alloué augmente par incréments de 64 kilo-octets (Ko). Elle est donc toujours un multiple de 64 Ko. Le dernier incrément de 64 Ko contient une à huit pages de 8 Ko, en fonction du nombre de pages qui ont été copiées à partir de la base de données source. Ceci signifie qu'en moyenne, la taille d'un fichier partiellement alloué dépasse légèrement l'espace réellement occupé par les pages qu'il contient.

  • Pour connaître la taille réelle d'un fichier partiellement alloué

    Pour connaître le nombre d'octets utilisés actuellement sur le disque par chaque fichier partiellement alloué de l'instantané, vous pouvez utiliser la colonne size_on_disk_bytes de la vue de gestion dynamique sys.dm_io_virtual_file_stats.

    Autre possibilité pour afficher l'espace disque réellement occupé par un fichier partiellement alloué : cliquez avec le bouton droit sur le fichier dans Microsoft Windows, cliquez sur Propriétés et notez la valeur indiquée dans Taille sur le disque.

  • Pour connaître la taille maximale d'un fichier partiellement alloué

    La taille maximale d'un fichier partiellement alloué correspond à la taille du fichier de la base de données source au moment de la création de l'instantané. Pour connaître la taille de ce fichier, utilisez une des méthodes suivantes :

    • Utilisez les commandes dir de Windows.

    • Sélectionnez le fichier partiellement alloué, ouvrez la boîte de dialogue Propriétés dans Windows et relevez la valeur du champ Taille.

    • Sélectionnez la colonne size soit dans sys.database_files dans l'instantané de la base de données, soit dans sys.master_files. La colonne size dans sys.database_files ou sys.master_files reflète l'espace maximal que l'instantané peut utiliser dans les pages SQL. Cette valeur correspond à celle du champ Taille de Windows, sauf qu'elle est exprimée en termes de nombre de pages SQL dans le fichier ; la taille en octets étant :

      (number_of_pages * 8192)