Outils pour utilisateurs

Outils du site


bases_de_donnees:sqlserver:changer_emplacement_base_de_donnees

Changer l'emplacement d'une base de données

Normalement, l'instance de SQL Server stocke les fichiers de base de données dans C:\Program Files\Microsoft SQL Server\{nom de l'instance}\MSSQL\DATA.

On peut déplacer les fichiers d'une base de données à un autre endroit.

  1. Il faut connaître le nom logique (LogigalFileName) de la base de données, qui n'est pas nécessairement le même nom qui est utilisé dans la liste des bases de données. Pour se faire, exécuter :
    USE master
    GO
    SELECT
        name AS LogicalFileName,
        physical_name AS FileLocation,
        state_desc AS STATUS 
    FROM sys.master_files 
    WHERE database_id = DB_ID('database_name');
  2. Mettre la base de données offline soit en allant dans TasksTake Offline ou en exécutant :
    ALTER DATABASE database_name SET OFFLINE;
  3. Déplacer les fichiers Data et Log dans un nouvel emplacement, exemple D:\SQLServerDatabaseFiles.
  4. Faire le changement dans la base de données master pour le fichier data :
    USE master
    GO
    ALTER DATABASE database_name
    MODIFY FILE ( NAME = database_name_data, 
    FILENAME = 'D:\SQLServerDatabaseFiles\database_name.mdf');
  5. Faire le changement dans la base de données master pour le fichier log :
    USE master
    GO
    ALTER DATABASE database_name
    MODIFY FILE ( NAME = database_name_log, 
    FILENAME = 'D:\SQLServerDatabaseFiles\database_name_1.ldf');
  6. Donner les permissions (contrôle complet) au répertoire D:\SQLServerDatabaseFiles\ et aux fichiers de la base de données à l'utilisateur utilisé par l'instance de SQL Server. Ceci peut être trouvé dans la liste des services de Windows. Dans mon cas il s'agit de NT SERVICE\MSSQL$SQL2012.
  7. Remettre la base de données online.
    ALTER DATABASE database_name SET ONLINE;

Sources

bases_de_donnees/sqlserver/changer_emplacement_base_de_donnees.txt · Dernière modification : 2022/02/02 00:42 de 127.0.0.1