Introduction
Pour diverses raisons, il peut s’avérer nécessaire de reconstruire un
serveur SQL Server, ce qui suppose de reconstruire la base master
, parmi ces
raisons :
- la base de données
master
est corrompue - changement du jeu de caractères (collation settings), de l’ordre de tri (sort order)
Cette documentation présente la méthodologie d’utilisation de
l’exécutable rebuildm
(Rebuild Master) pour reconstruire un serveur.
Reconstruction d’un serveur (rebuildm.exe)
Prérequis
Afin de reconstruire un serveur SQL Server, il est indispensable
d’avoir sous la main les fichiers modèles des bases de données. Les
fichiers modèles sont localisés sur le CD ROM d’installation de SQL
Server 2000 dans le répertoire : \CD-ROM Drive\x86\data
Ces fichiers modèles sont au nombre 12 :
Fichier | Description |
---|---|
distmdl.ldf |
? |
distmdl.mdf |
? |
master.mdf |
Fichier de données de la base master |
mastlog.ldf |
Journal de transactions de la base master |
model.mdf |
Fichier de données de la base model |
modellog.ldf |
Journal de transactions de la base model |
msdbdata.mdf |
Fichier de données de la base msdb |
msdblog.ldf |
Journal de transactions de la base msdb |
northwnd.ldf |
Fichier de données de la base Northwind |
northwnd.mdf |
Journal de transactions de la base Northwind |
pubs.dmf |
Fichier de données de la base pubs |
pubs_log.ldf |
Journal de transactions de la base pubs |
Si un seul des douze fichiers listés ci-dessus (même pour pubs
et Northwind
) est manquant,
rebuildm.exe
sera inutilisable.
Lancement de rebuild master (rebuildm.exe)
L’exécutable rebuildm.exe
(rebuild master) est localisé dans le
répertoire d’installation de SQL Server : C:\Program Files\Microsoft SQL
Server\80\Tools\Binn
.
Note concernant le répertoire d’installation : 80 pour MS SQL Server 2000 et 70 pour MS SQL Server 7.
C:\Program Files\Microsoft SQL Server\80\Tools\Binn > rebuildm
La fenêtre windows « Rebuild Master » s’affiche (à priori, il n’existe pas de mode silencieux pour cet exécutable).
Une fois que la reconstruction est déclenchée en cliquant sur le bouton rebuild
, à l’issue de la reconstruction,
le service SQL Server du serveur associé est arrêté.
- selectionner le serveur à reconstruire dans la liste déroulante
Server
(il se peut qu’il existe plusieurs instances nommées sur la machine) - dans le champ
Source Directory
, spécifier le répertoire où sont localisés les fichiers modèles listés au paragraphe précédent. - avec le bouton
Settings
, une fenêtre indépendante permet de spécifier éventuellement les nouveaux paramètres du serveur pour les jeux de caractères (collation settings
) et l’ordre de tri (sort order
).
Redémarrer le service à l’issue de la bonne exécution de
l’exécutable Rebuild Master
.
Après le redémarrage du service, les paramètres de connexion sont réinitialisés (prendre garde à ce détail) :
- un login avec authentification
NT BUILTIN\Administrators
ouBUILTIN\Administrateurs
selon la langue du système d’exploitation - le login
sa
avec un password à blanc.
Restauration des bases de données système
Démarrage en mode single user
Pour restaurer la base master
, le serveur doit être démarré en mode single
user. 2 options sont possibles pour démarrer le serveur en mode single user,
dans tous les cas de figure l’option –m
spécifie le mode
single user
Mode ligne de
commande : dans cette méthode, se positionner avec une
invite de commande DOS dans le répertoire des binaires de l’instance
<instance>
pour lancer l’exécutable sqlservr.exe
avec
l’option –m
(dans ce mode, s’assurer que le serveur
n’est pas déjà démarré)
Classiquement, le répertoire des binaires pour une instance "standalone
" est le
suivant :
C:\Program Files\Microsoft SQL Server\<INSTANCE>\Binn
Pour une instance nommée, le répertoire des binaires d’une instance est :
C:\Program Files\Microsoft SQL Server\MSSQL$<INSTANCE>\Binn
Le démarrage de l’instance en mode single user est alors effectué avec la syntaxe ci-dessous :
sqlservr.exe –d <master_data_path> –e <error_log_path> –l<master_log_path>
-s <instance> -m
master_data_path |
chemin vers le device de la base master (master.mdf) |
error_log_path |
chemin du fichier errorlog |
master_log_path |
chemin vers le journal des transactions de la base master (mastlog.ldf) |
Exemple :
C:\Program Files\Microsoft SQL Server\MSSQL$CGC_T1_MSQ\binn > sqlservr.exe
–d C:\sdata\mssql\MSSQL$CGC_T1_MSQ\Data\master.mdf
–e C:\sdata\mssql\MSSQL$CGC_T1_MSQ\Log\ERRORLOG
–l C:\sdata\mssql\MSSQL$CGC_T1_MSQ\Data\mastlog.ldf
–s CGC_T1_MSQ
–m
Mode graphique : dans cette méthode, le serveur doit être démarré et à partir de la console Enterprise Manager
- effectuer un clic droit sur l’instance SQL Server pour sélectionner les propriétés
- cliquer ensuite sur le bouton "
Startup Parameters
" dans la fenêtre des propriétés de l’instance (Onglet General) pour accéder à la fenêtre des paramètres de démarrage de l’instance.
- dans le champ "
Parameter
" ajouter alors l’option–m
et cliquer sur le bouton "Add
" pour ajouter ce paramètre de démarrage. - Arrêter et redémarrer l’instance SQL Server pour prendre en compte le mode single user.
Remontée de la base master
Une fois le serveur redémarré en mode single user, la base de données master
peut être restaurée à partir d’une sauvegarde valide. Cette dernière
opération peut être réalisée avec l’interface graphique Enterprise
Manager ou en ligne de commande :
Exemple :
restore database master
from disk='C:\sdata\mssql\MSSQL$CGC_T1_MSQ\BACKUP\master\master_db_200410221604.dmp'
go
À l’issue de la restauration, le serveur MS SQL est automatiquement
arrêté : redémarrer le service en conservant le mode single user (option
–m
).
Remontées des bases model et msdb
Les bases de données model
et msdb
peuvent être restaurées alors que le
serveur n’est pas en mode single user, toutefois il est préférable que ce
dernier soit encore en mode single user pour éviter par exemple qu’il
soit impossible de remonter la base msdb
à cause de l’agent SQL Agent qui
peut potentiellement verrouiller msdb
(database in use
).
Toujours en mode single user, les bases de données model
et msdb
doivent être
également restaurées à partir de sauvegardes valides :
Exemples :
restore database model
from disk='C:\sdata\mssql\MSSQL$CGC_T1_MSQ\BACKUP\model\model_db_200410221604.dmp'
go
restore database msdb
from disk='C:\sdata\mssql\MSSQL$CGC_T1_MSQ\BACKUP\msdb\msdb_db_200410221604.dmp'
go
Suppression du mode single user
À l’issue de la restauration des bases systèmes master
, model
et msdb
,
redémarrer le service SQL Server en supprimant le mode single user (option
–m
).
En fonction de l’option choisie :
Mode ligne de commandes :
lancer la commande shutdown
et redémarrer classiquement l’instance SQL
Server.
Mode graphique : effectuer les
mêmes manipulations réalisées dans le précédent paragraphe pour appliquer le mode single user, sauf que cette fois
l’option –m
est supprimée dans la fenêtre Startup
Parameters
avec le bouton Remove
.
Redémarrer alors classiquement l’instance SQL Server.
Restauration des bases de données utilisateur
Après la restauration de la base master
, en toute logique,
toutes les bases de données utilisateur sont également récupérées.