Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment trouver l'emplacement des fichiers de données et des fichiers journaux dans SQL Server

Si vous avez besoin de savoir où se trouvent vos fichiers de base de données, exécutez le code T-SQL suivant :

USE master;
SELECT 
  name 'Logical Name', 
  physical_name 'File Location'
FROM sys.master_files;

Cela renverra une liste de tous les fichiers de données et fichiers journaux pour l'instance SQL Server.

Voici à quoi cela ressemble lorsque j'exécute ce code dans SQL Operations Management Studio sur un Mac :

Si vous utilisez Windows, votre chemin ressemblera à un chemin Windows. Quelque chose comme ça :

C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\Music.mdf

Cependant, si vous avez spécifié votre propre emplacement, cela pourrait tout aussi bien ressembler à ceci :

D:\data\Music.mdf

Que sont ces fichiers ?

Lorsque vous créez une base de données dans SQL Server, les fichiers de données et les fichiers journaux des transactions sont automatiquement créés.

  • Les fichiers de données contiennent les données et les objets tels que les tables, les index, les procédures stockées et les vues.
  • Les fichiers journaux des transactions enregistrent toutes les transactions et les modifications de la base de données apportées par chaque transaction. Les fichiers journaux des transactions contiennent les informations nécessaires pour récupérer toutes les transactions dans la base de données.

Si vous ne spécifiez pas explicitement un emplacement et un nom pour ces fichiers, SQL Server les placera dans l'emplacement par défaut (l'emplacement par défaut est spécifié au niveau du serveur). Voici comment trouver l'emplacement par défaut des fichiers de données et des fichiers journaux dans SQL Server.

Rechercher des fichiers pour une base de données spécifique

Si vous avez seulement besoin de trouver l'emplacement des fichiers pour une base de données particulière, vous pouvez interroger le sys.database_files vue du catalogue système à la place. Passez simplement à la base de données applicable et exécutez la requête.

Voici un exemple :

USE Solutions;
SELECT
  name 'Logical Name', 
  physical_name 'File Location'
FROM sys.database_files;

Cela renverra uniquement les données et les fichiers journaux pour les Solutions base de données.