Les bases de données SQL Server disposent de trois types de fichiers :
Fichiers de données primaires
Le fichier de données primaire constitue le point de départ de la base de données et il pointe vers les autres fichiers de la base de données. Chaque base de données comprend un fichier de données primaire. L'extension de fichier recommandée est .mdf.
Fichiers de données secondaires
Ces fichiers constituent tous les fichiers de données autres que le fichier de données primaires. Certaines bases de données possèdent plusieurs fichiers de données secondaires, tandis que d'autres n'en possèdent aucun. L'extension de fichier recommandée est .ndf.
Fichiers journaux
Ces fichiers contiennent toutes les informations de suivi nécessaires à la récupération de la base de données. Il doit exister au moins un fichier journal par base de données. L'extension de fichier recommandée est .ldf.
SQL Server ne vous oblige pas à utiliser les extensions de fichier .mdf, .ndf et .ldf, mais celles-ci permettent d'identifier les différents types de fichiers et leur utilisation.
Dans SQL Server, les emplacements de tous les fichiers d'une base de données sont enregistrés dans le fichier primaire de la base de données et dans la base de données MASTER. En général, le moteur de base de données SQL Server utilise les informations d'emplacement de fichier contenues dans la base de données MASTER. Toutefois, le moteur de base de données utilise les informations d'emplacement de fichier contenues dans le fichier primaire afin d'initialiser les entrées d'emplacement de fichier dans la base de données MASTER dans les situations suivantes :
attachement d'une base de données à l'aide de l'instruction CREATE DATABASE et de l'option FOR ATTACH ou FOR ATTACH_REBUILD_LOG ;
Mise à niveau à partir de SQL Server version 2000 ou 7.0.
restauration de la base de données master.
Noms de fichiers logiques et physiques
Les fichiers SQL Server portent deux noms :
logical_file_name
Le logical_file_name est le nom utilisé pour faire référence au fichier physique dans toutes les instructions Transact-SQL. Le nom de fichier logique doit respecter les règles régissant les identificateurs SQL Server et doit être unique parmi les noms de fichier logique dans la base de données.
os_file_name
Le os_file_name est le nom du fichier physique, chemin d'accès au répertoire compris. Il doit respecter les règles en vigueur pour les noms de fichiers du système d'exploitation.
Les données et les fichiers journaux SQL Server peuvent être implantés dans les systèmes de fichiers FAT ou NTFS. Nous vous recommandons d'utiliser le système de fichiers NTFS pour des raisons de sécurité. Les fichiers journaux et les groupes de fichiers de données en lecture/écriture ne peuvent pas être implantés dans un système de fichiers compressé NTFS. Seuls les groupes de fichiers secondaires en lecture seule et les bases de données en lecture seule peuvent être implantés dans un système de fichiers compressé NTFS. Pour plus d'informations, consultez La compression et les groupes de fichiers en lecture seule.
Lorsque plusieurs instances de SQL Server sont exécutées sur un ordinateur unique, chaque instance reçoit un répertoire par défaut différent pour contenir les fichiers des bases de données créées dans l'instance. Pour plus d'informations, consultez Emplacements des fichiers pour les instances par défaut et les instances nommées de SQL Server.
Pages de fichiers de données
Les pages d'un fichier de données SQL Server sont numérotées de manière séquentielle, zéro (0) correspondant à la première page. Chaque fichier d'une base de données possède un numéro d'identification de fichier unique. L'ID de fichier et le numéro de page sont nécessaires pour identifier de manière unique une page d'une base de données. L'exemple ci-dessous montre les numéros de page d'une base de données disposant d'un fichier de données primaire de 4 Mo et d'un fichier de données secondaire de 1 Mo.
.gif)
La première page de chaque fichier est une page d'en-tête qui contient des informations sur les attributs du fichier. D'autres pages situées au début du fichier contiennent également des informations sur le système, comme les tables d'allocation. Une des pages système stockée à la fois dans le fichier de données primaire et dans le premier fichier journal est une page d'amorçage de base de données qui contient des informations sur les attributs de la base de données. Pour plus d'informations sur les pages et les types de pages, consultez Fonctionnement des pages et étendues.
Taille du fichier
Les fichiers SQL Server peuvent augmenter automatiquement leur volume et dépasser leur taille d'origine. Lorsque vous définissez un fichier, vous pouvez spécifier un incrément de croissance précis. Chaque fois que le fichier est rempli, sa taille augmente en fonction de l'incrément de croissance. Si un groupe comporte plusieurs fichiers, ces derniers ne s'accroissent pas automatiquement jusqu'à ce que tous les fichiers soient remplis. La croissance se produit dans ce cas selon le principe de chacun son tour.
Chaque fichier peut également avoir une taille maximale. En l'absence de spécification, le fichier continue à s'accroître jusqu'à ce que tout l'espace disque disponible soit utilisé. Cette fonctionnalité s'avère particulièrement utile lorsque SQL Server sert de base de données incorporée dans une application pour laquelle l'utilisateur n'a pas accès à un administrateur système. L'utilisateur peut laisser les fichiers s'accroître automatiquement autant que nécessaire pour réduire la charge administrative liée à la gestion de l'espace disponible dans la base de données et à l'affectation manuelle d'espace supplémentaire.