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

Prochaine révision
Révision précédente
bases_de_donnees:sqlserver:changer_emplacement_base_de_donnees [2015/08/20 17:14] – créée 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.
  
-  * 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>+  - 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> 
 +  - 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.1440083665.txt.gz · Dernière modification : 2022/02/02 00:43 (modification externe)