Suite à la mort brutale et simultanée de deux des trois disques durs montés en RAID 5 de mon serveur SQLServer 2000 (comme quoi c’est possible), j’ai du reconstruire en urgence un nouveau serveur. Pour rappel on peut perdre un disque dur dans une grappe RAID 5 sans perte de données, au delà on perd tout… Je détaille ici les étapes que j’ai suivi pour restaurer entièrement les données.
- commande expresse de trois nouveaux disques chez notre fournisseur (un petit magasin avec lequel j’ai de très bonnes relations, ça paye dans ces moments d’urgence) avec livraison rapide par coursier
- démontage des anciens disques et montage des nouveaux. Au cas où, les disques ont été branchés sur de nouveaux ports sur la carte contrôleur RAID 5
- réinstallation de Windows 2003 Entreprise R2 en 32 bits (ça a son importance pour la suite malheureusement, la version installée sur l’ancien serveur était en 64 bits)
- autorisation des connexions à distance sur le serveur
- installation à distance de SQLServer 2000 + SP4
- installation de notre logiciel de sauvegarde (SQL Backup)
- transfert des backups complets et différentiels de toutes nos bases (38 Go compressés pour 215 Go de bases) du serveur de sauvegarde au nouveau serveur SQL
- restauration des bases utilisateurs
- redémarrage de SQLServer 2000 en mode mono-utilisateur pour restaurer la base master (dans une console, se déplacer jusqu’au répertoire des binaires de SQL Server, par défaut C:\Program Files\Microsoft SQL Server\MSSQL\Binn et taper sqlserver.exe -m -c)
- SQL Backup ne fonctionnant apparemment pas en mode mono-utilisateur, j’ai du convertir le backup du format SQB au format MTF habituel grâce à l’outil SQB2MTF.
- dans Enterprise Manager j’ai procédé à la restauration de la base master
- sortie du mode mono-utilisateur (Ctrl+C) et redémarrage… et plantage ! En effet, l’ancien serveur était en Windows 2003 Entreprise R2 64 bits et SQLServer 2000 était donc installé dans le répertoire C:\Program Files (x86)\Microsoft SQL Server… Du coup au démarrage et après restauration de la base master le serveur cherche les bases dans ce répertoire qui n’existe pas dans la version 32 bits. Pour pallier rapidement à ce problème j’ai juste créé le répertoire C:\Program Files (x86)\Microsoft SQL Server\MSSQL\Data dans lequel j’ai déplacé les bases. Ca marche et c’est tout ce que je demandais.
- après redémarrage de SQLServer, restauration des bases msdb et pubs.
- vérifications diverses et variées des bases !
Au total cela m’a pris 11 heures dont 8 heures uniquement pour la restauration des bases.