Reconstruction des bases de données système

Les bases de données système doivent être reconstruites pour résoudre des problèmes d'altération dans les bases de données système master, modelmsdb ou resource ou pour modifier le classement au niveau du serveur par défaut. Cette rubrique fournit des instructions détaillées sur la reconstruction des bases de données système.

Avant de reconstruire les bases de données système

Lorsque les bases de données système master, model, msdb et tempdb sont reconstruites, les bases de données sont supprimées et recréées à leur emplacement d'origine. Si un nouveau classement est spécifié dans l'instruction de reconstruction, les bases de données système sont créées à l'aide de ce paramètre de classement. Les modifications apportées par les utilisateurs à ces bases de données sont perdues. Par exemple, les utilisateurs peuvent avoir défini des objets dans la base de données master et planifié des travaux dans msdb ou avoir modifié les paramètres par défaut de la base de données model.

Avant de reconstruire les bases de données système, effectuez les tâches suivantes pour être certain de pouvoir restaurer les bases de données système avec leurs paramètres actuels.

  1. Enregistrez toutes les valeurs de configuration à l'échelle du serveur.

    SELECT * FROM sys.configurations;
    
  2. Enregistrez tous les Service Packs et correctifs logiciels appliqués à l'instance de SQL Server et le classement actuel. Vous devrez réappliquer ces mises à jour après avoir reconstruit les bases de données système.

    SELECT
    SERVERPROPERTY('ProductVersion ') AS ProductVersion,
    SERVERPROPERTY('ProductLevel') AS ProductLevel,
    SERVERPROPERTY('ResourceVersion') AS ResourceVersion,
    SERVERPROPERTY('ResourceLastUpdateDateTime') AS ResourceLastUpdateDateTime,
    SERVERPROPERTY('Collation') AS Collation;
    
  3. Enregistrez l'emplacement actuel de tous les fichiers de données et fichiers journaux des bases de données système. La reconstruction des bases de données système installe toutes les bases de données système à leur emplacement d'origine. Si vous avez déplacé des fichiers de données ou des fichiers journaux de bases de données système, vous devrez à nouveau les déplacer.

    SELECT name, physical_name AS current_file_location
    FROM sys.master_files
    WHERE database_id IN (DB_ID('master'), DB_ID('model'), DB_ID('msdb'), DB_ID('tempdb'));
    
  4. Localisez la sauvegarde actuelle des bases de données master, model et msdb.

  5. Si l'instance de SQL Server est configurée en tant que serveur de distribution de réplication, localisez la sauvegarde actuelle de la base de données de distribution.

  6. Vérifiez que vous disposez des autorisations appropriées pour reconstruire les bases de données système. Pour effectuer cette opération, vous devez être membre du rôle serveur fixe sysadmin. Pour plus d'informations, consultez Rôles de niveau serveur.

  7. Vérifiez que des copies des fichiers modèles de données et de journaux de master, model, msdb existent sur le serveur local. L'emplacement par défaut des fichiers modèles est C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn\Templates. Ces fichiers sont utilisés pendant le processus de reconstruction et doivent être présents pour que l'installation réussisse. S'il en manque, exécutez la fonctionnalité Réparer du programme d'installation ou copiez manuellement les fichiers à partir du média d'installation. Pour trouver les fichiers sur le média d'installation, naviguez jusqu'au répertoire correspondant à la plateforme appropriée (x86, x64 ou ia64), puis naviguez jusqu'à setup\sql_engine_core_inst_msi\Pfiles\SqlServr\MSSQL.X\MSSQL\Binn\Templates.

Procédure de reconstruction des bases de données système

La procédure suivante reconstruit les bases de données système master, model, msdb et tempdb. Vous ne pouvez pas spécifier les bases de données système à reconstruire. Pour les instances en cluster, cette procédure doit être effectuée sur le nœud actif et la ressource SQL Server dans le groupe d'applications de cluster correspondant doit être prise en mode hors connexion avant d'effectuer la procédure.

Cette procédure ne reconstruit pas la base de données resource. Consultez la section « Procédure de reconstruction de la base de données resource », plus loin dans cette rubrique.

Pour reconstruire les bases de données système pour une instance de SQL Server :

  1. Insérez le média d'installation SQL Server 2008 dans le lecteur de disque ou, à partir d'une invite de commandes, changez de répertoire pour accéder à l'emplacement du fichier setup.exe situé sur le serveur local. L'emplacement par défaut sur le serveur est C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Release.

  2. À partir d'une fenêtre d'invite de commandes, tapez la commande ci-dessous. Les crochets indiquent des paramètres facultatifs. N'entrez pas les crochets. Si vous utilisez le système d'exploitation Windows Vista et que le Contrôle de compte d'utilisateur est activé, l'exécution du programme d'installation requiert des privilèges élevés. Pour utiliser l'invite de commandes, vous devez être administrateur.

    Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName /SQLSYSADMINACCOUNTS=accounts [/ SAPWD= StrongPassword ] [ /SQLCOLLATION=CollationName]

    Nom du paramètre

    Description

    /QUIET ou /Q

    Spécifie que le programme d'installation doit s'exécuter sans interface utilisateur.

    /ACTION=REBUILDDATABASE

    Spécifie que le programme d'installation doit recréer les bases de données système.

    /INSTANCENAME=NomInstance

    Représente le nom de l'instance de SQL Server. Pour l'instance par défaut, entrez MSSQLSERVER. Pour une instance nommée, entrez le nom sous la forme nom_serveur\nom_instance. 

    /SQLSYSADMINACCOUNTS=comptes

    Spécifie les comptes de groupes Windows ou les comptes individuels à ajouter au rôle serveur fixe sysadmin. Lorsque vous spécifiez plusieurs comptes, utilisez l'espace comme séparateur. Par exemple, entrez BUILTIN\Administrateurs MonDomaine\MonUtilisateur. Lorsque vous spécifiez un compte qui contient un espace vide dans son nom, placez le compte entre guillemets doubles. Par exemple, entrez "NT AUTHORITY\SYSTEM".

    [ /SAPWD=MotDePasseFort ]

    Spécifie le mot de passe du compte SQL Server sa. Ce paramètre est requis si l'instance utilise le mode Authentification mixte (authentification SQL Server et Windows). 

    Remarque relative à la sécuritéRemarque relative à la sécurité
    Le compte sa est un compte SQL Server bien connu qui est souvent la cible d'utilisateurs malveillants. Il est par conséquent essentiel d'utiliser un mot de passe fort pour la connexion sa.

    Ne spécifiez pas ce paramètre pour le mode Authentification Windows.

    [ /SQLCOLLATION=NomClassement ]

    Spécifie un nouveau classement au niveau du serveur. Ce paramètre est facultatif. S'il n'est pas spécifié, c'est le classement actuel du serveur qui est utilisé.

    ImportantImportant
    La modification du classement de niveau serveur ne modifie pas le classement des bases de données utilisateur existantes. En revanche, les bases de données utilisateur qui seront créées utiliseront le nouveau classement par défaut.

    Pour plus d'informations, consultez Définition et modification du classement du serveur.

  3. Lorsque le programme d'installation a terminé la reconstruction des bases de données système, il revient à l'invite de commandes sans afficher de message. Examinez le fichier journal Summary.txt pour vérifier que le processus s'est correctement déroulé. Ce fichier se trouve à l'emplacement C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Logs.

Tâches à effectuer après la reconstruction

Après avoir reconstruit la base de données, vous devrez peut-être effectuer les tâches supplémentaires suivantes :

  • Appliquer le dernier Service Pack et tous les correctifs logiciels applicables.

  • Restaurer vos sauvegardes complètes les plus récentes des bases de données master, model et msdb Pour plus d'informations, consultez Considérations relatives à la sauvegarde et à la restauration des bases de données système.

    Important

    Si vous avez modifié le classement du serveur, ne restaurez pas les bases de données système. Cette opération remplacerait le nouveau classement par le paramétrage de classement précédent.

    Si une sauvegarde n'est pas disponible ou si la sauvegarde restaurée n'est pas actuelle, recréez toutes les entrées manquantes. Par exemple, recréez toutes les entrées manquantes pour vos bases de données utilisateur, unités de sauvegarde, connexions SQL Server, points de terminaison, et ainsi de suite. Le meilleur moyen de recréer des entrées est d'exécuter les scripts d'origine qui les ont créées. 

Remarque relative à la sécuritéRemarque relative à la sécurité

Nous vous conseillons de protéger vos scripts et de les conserver en lieu sûr pour éviter que des personnes non autorisées ne les modifient.

  • Si l'instance de SQL Server est configurée comme serveur de distribution de réplication, vous devez restaurer la base de données de distribution. Pour plus d'informations, consultez Sauvegarde et restauration de bases de données répliquées.

  • Déplacer les bases de données système vers les emplacements que vous avez enregistrés précédemment. Pour plus d'informations, consultez Déplacement des bases de données système.

  • Vérifier que les valeurs de configuration à l'échelle du serveur correspondent à celles que vous avez enregistrées précédemment.

Procédure de reconstruction de la base de données resource

La procédure suivante reconstruit la base de données système resource. La reconstruction de la base de données resource entraîne la perte de tous les Service Packs et correctifs logiciels, qui devront par conséquent être réappliqués.

Pour reconstruire la base de données système resource :

  1. Lancez le programme d'installation de SQL Server (setup.exe) à partir du média de distribution de SQL Server 2008.

  2. Dans la zone de navigation gauche, cliquez sur Maintenance, puis sur Réparer.

  3. La règle de support du programme d'installation et les routines de fichiers sont exécutées pour garantir que les composants requis sont installés sur votre système et que les règles de validation du programme d'installation ont été correctement exécutées sur l'ordinateur. Cliquez sur OK ou sur Installer pour continuer.

  4. Dans la page Sélectionner une instance, sélectionnez l'instance à réparer, puis cliquez sur Suivant.

  5. Les règles de réparation sont exécutées pour valider l'opération. Pour continuer, cliquez sur Suivant.

  6. Dans la page Prêt à réparer, cliquez sur Réparer. La page Terminé indique que l'opération est terminée.

Correction des erreurs liées à la reconstruction

Les erreurs de syntaxe et autres erreurs d'exécution sont affichées dans la fenêtre d'invite de commandes. Vérifiez que l'instruction Setup ne comporte pas les erreurs de syntaxe suivantes :

  • Barre oblique (/) manquante devant chaque nom de paramètre.

  • Signe égal (=) manquant entre le nom du paramètre et sa valeur.

  • Présence d'espaces entre le nom du paramètre et le signe égal.

  • Présence de virgules (,) ou d'autres caractères qui ne sont pas spécifiés dans la syntaxe.

Une fois l'opération de reconstruction terminée, examinez les journaux SQL Server pour vérifier s'il contient des erreurs. L'emplacement par défaut des journaux est C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Logs. Pour localiser le fichier journal qui contient les résultats du processus de reconstruction, accédez au dossier Logs à partir d'une invite de commandes, puis exécutez findstr /s RebuildDatabase summary*.*. Cette recherche vous dirige vers les fichiers journaux qui contiennent les résultats de la reconstruction des bases de données système. Ouvrez les fichiers journaux et recherchez les messages d'erreur pertinents.

Voir aussi

Concepts

Historique des modifications

Mise à jour du contenu

Révision des informations de cluster pour mentionner que la ressource SQL Server dans le groupe d'applications de cluster correspondant doit être prise en mode hors connexion avant d'effectuer la procédure.

Ajout d'une condition requise dans la définition de /SQLSYSADMINACCOUNTS pour placer les noms des comptes entre guillemets doubles lorsque le nom contient un espace vide.