Déplacer des bases de données systèmeMove System Databases

S’APPLIQUE À : ouiSQL Server nonAzure SQL Database nonAzure Synapse Analytics (SQL DW) nonParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Cette rubrique décrit comment déplacer des bases de données système dans SQL ServerSQL Server.This topic describes how to move system databases in SQL ServerSQL Server. Le déplacement des bases de données système peut être utile dans les cas suivants :Moving system databases may be useful in the following situations:

  • Récupération après défaillance.Failure recovery. Par exemple, la base de données est en mode suspect ou a été fermée en raison d'une défaillance matérielle.For example, the database is in suspect mode or has shut down because of a hardware failure.

  • Déplacement prévu.Planned relocation.

  • Déplacement en vue d'une maintenance de disque planifiée.Relocation for scheduled disk maintenance.

Les procédures ci-dessous s'appliquent au déplacement des fichiers de base de données au sein de la même instance de SQL ServerSQL Server.The following procedures apply to moving database files within the same instance of SQL ServerSQL Server. Pour déplacer une base de données vers une autre instance de SQL ServerSQL Server ou vers un autre serveur, utilisez les opérations de sauvegarde et restauration .To move a database to another instance of SQL ServerSQL Server or to another server, use the backup and restore operation.

Les procédures de cette rubrique requièrent le nom logique des fichiers de base de données.The procedures in this topic require the logical name of the database files. Pour obtenir ce nom, interrogez la colonne name dans l’affichage catalogue sys.master_files.To obtain the name, query the name column in the sys.master_files catalog view.

Important

Si vous déplacez une base de données système et que vous recréez ultérieurement la base de données master, vous devez redéplacer la base de données système car l'opération de recréation installe toutes les bases de données système à leur emplacement par défaut.If you move a system database and later rebuild the master database, you must move the system database again because the rebuild operation installs all system databases to their default location.

Important

Après le déplacement de fichiers, le compte de service SQL ServerSQL Server doit être autorisé à accéder aux fichiers dans le nouvel emplacement de dossier du fichier.After moving files, the SQL ServerSQL Server service account must have permission to access the files in new file folder location.

Procédure de réadressage planifié et de maintenance de disque planifiéePlanned Relocation and Scheduled Disk Maintenance Procedure

Pour déplacer des données ou un fichier journal d'une base de données système dans le cadre d'un réadressage planifié ou d'une opération de maintenance planifiée, suivez la procédure ci-dessous.To move a system database data or log file as part of a planned relocation or scheduled maintenance operation, follow these steps. Cette procédure s'applique à toutes les bases de données système à l'exception des bases de données master et Resource.This procedure applies to all system databases except the master and Resource databases.

  1. Pour chaque fichier à déplacer, exécutez la commande suivante.For each file to be moved, run the following statement.

    ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name , FILENAME = 'new_path\os_file_name' )  
    
  2. Arrêtez l'instance de SQL ServerSQL Server ou éteignez le système pour que la maintenance ait lieu.Stop the instance of SQL ServerSQL Server or shut down the system to perform maintenance. Pour plus d'informations, consultez Démarrer, arrêter, suspendre, reprendre, redémarrer les services SQL Server.For more information, see Start, Stop, Pause, Resume, Restart the Database Engine, SQL Server Agent, or SQL Server Browser Service.

  3. Déplacez le ou les fichiers vers le nouvel emplacement.Move the file or files to the new location.

  4. Redémarrez l'instance de SQL ServerSQL Server ou le serveur.Restart the instance of SQL ServerSQL Server or the server. Pour plus d'informations, consultez Démarrer, arrêter, suspendre, reprendre, redémarrer les services SQL Server.For more information, see Start, Stop, Pause, Resume, Restart the Database Engine, SQL Server Agent, or SQL Server Browser Service.

  5. Vérifiez le changement de fichier en exécutant la requête suivante.Verify the file change by running the following query.

    SELECT name, physical_name AS CurrentLocation, state_desc  
    FROM sys.master_files  
    WHERE database_id = DB_ID(N'<database_name>');  
    

Si la base de données msdb est déplacée et si l’instance de SQL ServerSQL Server est configurée pour la messagerie de base de données, effectuez ces opérations supplémentaires.If the msdb database is moved and the instance of SQL ServerSQL Server is configured for Database Mail, complete these additional steps.

  1. Assurez-vous que Service BrokerService Broker est activé pour la base de données msdb en exécutant la requête ci-dessous.Verify that Service BrokerService Broker is enabled for the msdb database by running the following query.

    SELECT is_broker_enabled   
    FROM sys.databases  
    WHERE name = N'msdb';  
    

    Pour plus d’informations sur l’activation de Service BrokerService Broker, consultez ALTER DATABASE (Transact-SQL).For more information about enabling Service BrokerService Broker, see ALTER DATABASE (Transact-SQL).

  2. Vérifiez le bon fonctionnement de la messagerie de base de données en envoyant un message électronique de test.Verify that Database Mail is working by sending a test mail.

Procédure de récupération après défaillanceFailure Recovery Procedure

Si un fichier doit être déplacé dans un nouvel emplacement en raison d'une défaillance matérielle, suivez la procédure décrite ci-dessous.If a file must be moved because of a hardware failure, follow these steps to relocate the file to a new location. Cette procédure s'applique à toutes les bases de données système à l'exception des bases de données master et Resource.This procedure applies to all system databases except the master and Resource databases.

Important

Si la base de données ne démarre pas – elle est en mode suspect ou dans un état de non récupération, seuls les membres du rôle fixe sysadmin peuvent déplacer le fichier.If the database cannot be started, that is it is in suspect mode or in an unrecovered state, only members of the sysadmin fixed role can move the file.

  1. Arrêtez l'instance de SQL ServerSQL Server si elle est démarrée.Stop the instance of SQL ServerSQL Server if it is started.

  2. Démarrez l'instance de SQL ServerSQL Server en mode de récupération de la base de données master uniquement en tapant une des commandes suivantes à l'invite de commandes.Start the instance of SQL ServerSQL Server in master-only recovery mode by entering one of the following commands at the command prompt. Les paramètres spécifiés dans ces commandes respectent la casse.The parameters specified in these commands are case sensitive. Les commandes échouent lorsque les paramètres ne sont pas spécifiés comme indiqué.The commands fail when the parameters are not specified as shown.

    • Dans le cas d'une instance par défaut (MSSQLSERVER), exécutez la commande ci-dessous :For the default (MSSQLSERVER) instance, run the following command:

      NET START MSSQLSERVER /f /T3608
      
    • Dans le cas d'une instance nommée, exécutez la commande ci-dessous :For a named instance, run the following command:

      NET START MSSQL$instancename /f /T3608
      

    Pour plus d'informations, consultez Démarrer, arrêter, suspendre, reprendre, redémarrer les services SQL Server.For more information, see Start, Stop, Pause, Resume, Restart the Database Engine, SQL Server Agent, or SQL Server Browser Service.

  3. Pour chaque fichier à déplacer, utilisez les commandes sqlcmd ou SQL Server Management StudioSQL Server Management Studio pour exécuter l’instruction suivante.For each file to be moved, use sqlcmd commands or SQL Server Management StudioSQL Server Management Studio to run the following statement.

    ALTER DATABASE database_name MODIFY FILE( NAME = logical_name , FILENAME = 'new_path\os_file_name' )  
    

    Pour plus d’informations sur l’utilisation de l’utilitaire sqlcmd , consultez Utiliser l’utilitaire sqlcmd.For more information about using the sqlcmd utility, see Use the sqlcmd Utility.

  4. Quittez l’utilitaire sqlcmd ou SQL Server Management StudioSQL Server Management Studio.Exit the sqlcmd utility or SQL Server Management StudioSQL Server Management Studio.

  5. Arrêtez l'instance de SQL ServerSQL Server.Stop the instance of SQL ServerSQL Server. Par exemple, exécutez NET STOP MSSQLSERVER.For example, run NET STOP MSSQLSERVER.

  6. Déplacez le ou les fichiers vers le nouvel emplacement.Move the file or files to the new location.

  7. Redémarrez l'instance de SQL ServerSQL Server.Restart the instance of SQL ServerSQL Server. Par exemple, exécutez NET START MSSQLSERVER.For example, run NET START MSSQLSERVER.

  8. Vérifiez le changement de fichier en exécutant la requête suivante.Verify the file change by running the following query.

    SELECT name, physical_name AS CurrentLocation, state_desc  
    FROM sys.master_files  
    WHERE database_id = DB_ID(N'<database_name>');  
    

Déplacement de la base de données masterMoving the master Database

Pour déplacer la base de données master, procédez comme suit.To move the master database, follow these steps.

  1. Dans le menu Démarrer , pointez successivement sur Tous les programmes, sur Microsoft SQL Serveret sur Outils de configuration, puis cliquez sur Gestionnaire de configuration SQL Server.From the Start menu, point to All Programs, point to Microsoft SQL Server, point to Configuration Tools, and then click SQL Server Configuration Manager.

  2. Dans le nœud Services SQL Server , cliquez avec le bouton droit sur l’instance de SQL ServerSQL Server (par exemple, SQL Server (MSSQLSERVER) ), puis cliquez sur Propriétés.In the SQL Server Services node, right-click the instance of SQL ServerSQL Server (for example, SQL Server (MSSQLSERVER)) and choose Properties.

  3. Dans la boîte de dialogue Propriétés de SQL Server ( nom_instance ) , cliquez sur l’onglet Paramètres de démarrage .In the SQL Server (instance_name) Properties dialog box, click the Startup Parameters tab.

  4. Dans la zone Paramètres existants, sélectionnez le paramètre -d pour déplacer le fichier de données MASTER.In the Existing parameters box, select the -d parameter to move the master data file. Cliquez sur Mettre à jour pour enregistrer les modifications.Click Update to save the change.

    Dans la zone Spécifiez un paramètre de démarrage , modifiez le paramètre par le nouveau chemin d’accès de la base de données MASTER.In the Specify a startup parameter box, change the parameter to the new path of the master database.

  5. Dans la zone Paramètres existants, sélectionnez le paramètre -l pour déplacer le fichier journal MASTER.In the Existing parameters box, select the -l parameter to move the master log file. Cliquez sur Mettre à jour pour enregistrer les modifications.Click Update to save the change.

    Dans la zone Spécifiez un paramètre de démarrage , modifiez le paramètre par le nouveau chemin d’accès de la base de données MASTER.In the Specify a startup parameter box, change the parameter to the new path of the master database.

    La valeur du paramètre pour le fichier de données doit suivre le paramètre -d et la valeur pour le fichier journal doit suivre le paramètre -l .The parameter value for the data file must follow the -d parameter and the value for the log file must follow the -l parameter. L’exemple suivant montre les valeurs des paramètres pour l’emplacement par défaut des fichiers de données de la base de données MASTER.The following example shows the parameter values for the default location of the master data file.

    -dC:\Program Files\Microsoft SQL Server\MSSQL<version>.MSSQLSERVER\MSSQL\DATA\master.mdf

    -lC:\Program Files\Microsoft SQL Server\MSSQL<version>.MSSQLSERVER\MSSQL\DATA\mastlog.ldf

    Si le nouvel emplacement planifié pour les fichiers de données de la base de données MASTER correspond à E:\SQLData, les valeurs des paramètres sont modifiées comme suit :If the planned relocation for the master data file is E:\SQLData, the parameter values would be changed as follows:

    -dE:\SQLData\master.mdf

    -lE:\SQLData\mastlog.ldf

  6. Arrêtez l’instance de SQL ServerSQL Server en cliquant avec le bouton droit sur le nom d’instance et en choisissant Arrêter.Stop the instance of SQL ServerSQL Server by right-clicking the instance name and choosing Stop.

  7. Déplacez les fichiers master.mdf et mastlog.ldf vers le nouvel emplacement.Move the master.mdf and mastlog.ldf files to the new location.

  8. Redémarrez l'instance de SQL ServerSQL Server.Restart the instance of SQL ServerSQL Server.

  9. Vérifiez que la modification des fichiers a bien eu lieu pour la base de données master en exécutant la requête ci-dessous.Verify the file change for the master database by running the following query.

    SELECT name, physical_name AS CurrentLocation, state_desc  
    FROM sys.master_files  
    WHERE database_id = DB_ID('master');  
    GO  
    
  10. À ce stade, SQL Server doit fonctionner normalement.At this point SQL Server should run normally. Toutefois Microsoft recommande d’ajuster également l’entrée de registre sur HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\instance_ID\Setup, où instance_ID est similaire à MSSQL13.MSSQLSERVER.However Microsoft recommends also adjusting the registry entry at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\instance_ID\Setup, where instance_ID is like MSSQL13.MSSQLSERVER. Dans cette ruche, modifiez la valeur SQLDataRoot en indiquant le nouveau chemin d’accès.In that hive, change the SQLDataRoot value to the new path. L’échec de la mise à jour du registre peut entraîner l’échec de la mise à jour corrective et de la mise à niveau.Failure to update the registry can cause patching and upgrading to fail.

Déplacement de la base de données ResourcesMoving the Resource Database

L’emplacement de la base de données Resource est <lecteur>:\Program Files\Microsoft SQL Server\MSSQL<version>.<nom_instance>\MSSQL\Binn\.The location of the Resource database is <drive>:\Program Files\Microsoft SQL Server\MSSQL<version>.<instance_name>\MSSQL\Binn\. La base de données ne peut pas être déplacée.The database cannot be moved.

Suivi : Après le déplacement de toutes les bases de données systèmeFollow-up: After Moving All System Databases

Si vous avez déplacé toutes les bases de données système vers un même lecteur ou volume ou vers un autre serveur utilisant une lettre de lecteur différente, effectuez les mises à jour suivantes.If you have moved all of the system databases to a new drive or volume or to another server with a different drive letter, make the following updates.

  • Modifiez le chemin d'accès du journal de l'Agent SQL Server.Change the SQL Server Agent log path. Si vous ne mettez pas à jour ce chemin d'accès, l'Agent SQL Server ne démarre pas.If you do not update this path, SQL Server Agent will fail to start.

  • Modifiez l'emplacement par défaut de la base de données.Change the database default location. La création d'une base de données peut échouer si la lettre de lecteur et le chemin d'accès spécifiés comme emplacement par défaut n'existent pas.Creating a new database may fail if the drive letter and path specified as the default location do not exist.

Modifier le chemin d'accès du journal de l'Agent SQL ServerChange the SQL Server Agent Log Path

  1. Dans SQL Server Management Studio, dans l'Explorateur d'objets, développez Agent SQL Server.From SQL Server Management Studio, in Object Explorer, expand SQL Server Agent.

  2. Cliquez avec le bouton droit sur Journaux d’erreurs , puis cliquez sur Configurer.Right-click Error Logs and click Configure.

  3. Dans la boîte de dialogue Configurer les journaux d'erreurs de l'Agent SQL Server , spécifiez le nouvel emplacement du fichier SQLAGENT.OUT.In the Configure SQL Server Agent Error Logs dialog box, specify the new location of the SQLAGENT.OUT file. L’emplacement par défaut est C:\Program Files\Microsoft SQL Server\MSSQL<version>.<nom_instance>\MSSQL\Log\.The default location is C:\Program Files\Microsoft SQL Server\MSSQL<version>.<instance_name>\MSSQL\Log\.

Modifier l'emplacement par défaut de la base de donnéesChange the database default location

  1. Dans SQL Server Management Studio, dans l’Explorateur d’objets, cliquez avec le bouton droit sur le serveur SQL Server, puis cliquez sur Propriétés.From SQL Server Management Studio, in Object Explorer, right-click the SQL Server server and click Properties.

  2. Dans la boîte de dialogue Propriétés du serveur , sélectionnez Paramètres de base de données.In the Server Properties dialog box, select Database Settings.

  3. Sous Emplacements de la base de données par défaut, accédez au nouvel emplacement des fichiers de données et des fichiers journaux.Under Database Default Locations, browse to the new location for both the data and log files.

  4. Arrêtez et démarrez le service SQL Server pour terminer la modification.Stop and start the SQL Server service to complete the change.

ExemplesExamples

A.A. Déplacement de la base de données tempdbMoving the tempdb database

Dans l'exemple suivant, les fichiers de données et les fichiers journaux de la base de données tempdb sont déplacés vers un nouvel emplacement dans le cadre d'une opération planifiée.The following example moves the tempdb data and log files to a new location as part of a planned relocation.

Notes

Dans la mesure où la base de données tempdb est recréée à chaque démarrage de l'instance de SQL ServerSQL Server , vous n'avez pas à déplacer physiquement les fichiers de données et les fichiers journaux.Because tempdb is re-created each time the instance of SQL ServerSQL Server is started, you do not have to physically move the data and log files. Les fichiers sont créés au nouvel emplacement lorsque le service est redémarré à l'étape 3.The files are created in the new location when the service is restarted in step 3. Tant que le service n'a pas redémarré, tempdb continue à utiliser les fichiers de données et les fichiers journaux situés à l'emplacement existant.Until the service is restarted, tempdb continues to use the data and log files in existing location.

  1. Déterminez les noms de fichiers logiques de la base de données tempdb et leur emplacement actuel sur le disque.Determine the logical file names of the tempdb database and their current location on the disk.

    SELECT name, physical_name AS CurrentLocation  
    FROM sys.master_files  
    WHERE database_id = DB_ID(N'tempdb');  
    GO  
    
  2. Modifiez l'emplacement de chaque fichier à l'aide de ALTER DATABASE.Change the location of each file by using ALTER DATABASE.

    USE master;  
    GO  
    ALTER DATABASE tempdb   
    MODIFY FILE (NAME = tempdev, FILENAME = 'E:\SQLData\tempdb.mdf');  
    GO  
    ALTER DATABASE tempdb   
    MODIFY FILE (NAME = templog, FILENAME = 'F:\SQLLog\templog.ldf');  
    GO  
    
  3. Arrêtez et redémarrez l'instance de SQL ServerSQL Server.Stop and restart the instance of SQL ServerSQL Server.

  4. Vérifiez que la modification des fichiers a bien eu lieu.Verify the file change.

    SELECT name, physical_name AS CurrentLocation, state_desc  
    FROM sys.master_files  
    WHERE database_id = DB_ID(N'tempdb');  
    
  5. Supprimez les fichiers tempdb.mdf et templog.ldf de l'emplacement d'origine.Delete the tempdb.mdf and templog.ldf files from the original location.

Voir aussiSee Also

Base de données Resource Resource Database
Base de données tempdb tempdb Database
Base de données master master Database
Base de données msdb msdb Database
Base de données model model Database
Déplacer des bases de données utilisateur Move User Databases
Déplacer des fichiers de bases de données Move Database Files
Démarrer, arrêter, suspendre, reprendre, redémarrer le moteur de base de données, SQL Server Agent ou le service SQL Server Browser Start, Stop, Pause, Resume, Restart the Database Engine, SQL Server Agent, or SQL Server Browser Service
ALTER DATABASE (Transact-SQL) ALTER DATABASE (Transact-SQL)
Reconstruire des bases de données systèmeRebuild System Databases