Partager via


Restaurer la base de données MASTER (Transact-SQL)

S’applique à :SQL Server

Cette rubrique explique comment restaurer la base de données master à partir d’une sauvegarde complète d’une base de données.

Avertissement

En cas de reprise d’activité, l’instance où est restaurée la base de données master doit être aussi proche que possible d’une correspondance exacte de l’instance d’origine. Au minimum, cette instance de récupération doit avoir la même version, la même édition et le même niveau de patch, et doit avoir la même sélection de fonctionnalités et la même configuration externe (nom d’hôte, appartenance à un cluster, etc.) que l’instance d’origine. Dans le cas contraire, cela peut entraîner un comportement d’instance SQL Server non défini, avec une prise en charge incohérente des fonctionnalités et n’est pas garanti pour être viable.

Restaurer la base de données master

  1. Démarrez l'instance de serveur en mode mono-utilisateur.

    Vous pouvez démarrer SQL Server à l’aide des paramètres de démarrage -m ou -f. Pour plus d’informations sur les paramètres de démarrage, consultez les options de démarrage du service moteur de base de données.

    À partir d’une invite de commandes, exécutez les commandes suivantes et veillez à remplacer MSSQLXX.instance par le nom de dossier approprié :

    cd C:\Program Files\Microsoft SQL Server\MSSQLXX.instance\MSSQL\Binn
    sqlservr -c -f -s <instance> -mSQLCMD
    
    • Le paramètre -mSQLCMD garantit que seul sqlcmd peut se connecter à SQL Server.
    • Pour un nom d’instance par défaut, utiliser -s MSSQLSERVER
    • -c démarre SQL Server en tant qu’application pour contourner le Gestionnaire de contrôle des services afin de raccourcir le temps de démarrage

    Si l’instance SQL Server ne peut pas démarrer en raison d’une base de données master endommagée, vous devez d’abord reconstruire les bases de données système. Pour plus d’informations, consultez Régénérer des bases de données système.

  2. Connectez-vous à SQL Server à l’aide de sqlcmd à partir d’une autre fenêtre d’invite de commandes :

    sqlcmd -S <instance> -E -d master
    
  3. Pour restaurer une sauvegarde complète de la base de masterdonnées, utilisez les instructions RESTORETransact-SQL suivantes :

    RESTORE DATABASE master FROM <backup_device> WITH REPLACE;
    

    L’option REPLACE indique à SQL Server de restaurer la base de données spécifiée même lorsqu’une base de données du même nom existe déjà. Le cas échéant, la base de données existante est supprimée. En mode mono-utilisateur, nous vous recommandons d’entrer l’instruction RESTORE DATABASE dans l’utilitaire sqlcmd. Pour plus d’informations, consultez Utiliser sqlcmd.

    Important

    Une fois master restauré, l’instance de SQL Server s’arrête et met fin au sqlcmd processus. Avant de redémarrer l'instance du serveur, supprimez le paramètre de démarrage en mode mono-utilisateur. Pour plus d’informations, consultez le Gestionnaire de configuration SQL Server : Configurer les options de démarrage du serveur.

  4. Redémarrez l’instance de serveur normalement en tant que service, sans utiliser de paramètres de démarrage.

  5. Poursuivez les autres étapes de récupération telles que la restauration d’autres bases de données, l’attachement de bases de données et la correction des incompatibilités au niveau utilisateur.

Exemples

Dans l'exemple suivant, la base de données master est restaurée sur l'instance du serveur par défaut. L'exemple suppose que l'instance du serveur s'exécute déjà en mode mono-utilisateur. L’exemple démarre sqlcmd et exécute une RESTORE DATABASE instruction qui restaure une sauvegarde complète de la base de données à master partir d’un appareil de disque : Z:\SQLServerBackups\master.bak.

Pour une instance nommée, la commande sqlcmd doit spécifier l’option -S<computer-name>\<instance-name> .

C:\> sqlcmd
1> RESTORE DATABASE master FROM DISK = 'Z:\SQLServerBackups\master.bak' WITH REPLACE;
2> GO