Outils pour utilisateurs

Outils du site


bases_de_donnees:sqlserver:changer_emplacement_base_de_donnees

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
bases_de_donnees:sqlserver:changer_emplacement_base_de_donnees [2015/08/20 17:14] sgariepybases_de_donnees:sqlserver:changer_emplacement_base_de_donnees [2022/02/02 00:42] (Version actuelle) – modification externe 127.0.0.1
Ligne 5: Ligne 5:
 On peut déplacer les fichiers d'une base de données à un autre endroit. On peut déplacer les fichiers d'une base de données à un autre endroit.
  
 +  - 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 :<code sql>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');
 +</code>
   - Mettre la base de données //offline// soit en allant dans **Tasks** -> **Take Offline** ou en exécutant : <code sql>ALTER DATABASE database_name SET OFFLINE;</code>   - Mettre la base de données //offline// soit en allant dans **Tasks** -> **Take Offline** ou en exécutant : <code sql>ALTER DATABASE database_name SET OFFLINE;</code>
 +  - Déplacer les fichiers Data et Log dans un nouvel emplacement, exemple ''D:\SQLServerDatabaseFiles''.
 +  - Faire le changement dans la base de données ''master'' pour le fichier data :<code sql>USE master
 +GO
 +ALTER DATABASE database_name
 +MODIFY FILE ( NAME = database_name_data, 
 +FILENAME = 'D:\SQLServerDatabaseFiles\database_name.mdf');</code>
 +  - Faire le changement dans la base de données ''master'' pour le fichier log :<code sql>USE master
 +GO
 +ALTER DATABASE database_name
 +MODIFY FILE ( NAME = database_name_log, 
 +FILENAME = 'D:\SQLServerDatabaseFiles\database_name_1.ldf');</code>
 +  - 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''.{{:bases_de_donnees:sqlserver:sqlserver-instance-user.png|}}
 +  - Remettre la base de données //online//.<code sql>ALTER DATABASE database_name SET ONLINE;</code>
 +
 +
 +====== Sources ======
 +
 +  * [[http://sqlserverzest.com/2013/08/10/sql-server-how-to-move-database-files-data-file-and-log-file-from-one-drive-location-to-the-other/|SQL Server – How to Move Database Files – Data File and Log File – From One Drive Location to the Other]]
 +  * [[https://msdn.microsoft.com/en-us/library/jj219062.aspx|Configure File System Permissions for Database Engine Access]]
 +
bases_de_donnees/sqlserver/changer_emplacement_base_de_donnees.1440083691.txt.gz · Dernière modification : 2022/02/02 00:43 (modification externe)