C’est un peu une évidence rabâchée à longueur d’Internet mais les backups, c’est bien. Au delà des risques physiques encourus par votre serveur (incendie, inondation, malveillance, Martiens…), il est toujours bon pour le coeur d’avoir des backups en cas d’erreur de manipulation…
Sauvegarder Active Directory est une tache critique de l’administration d’un réseau Microsoft. En cas de plantage d’Active Directory ou de suppression accidentelle d’un objet, ce backup pourra être votre dernière chance pour rétablir la situation. Toutes les solutions payantes de sauvegarde permettent les backups d’Active Directory mais il est simple de le faire grâce à un petit script avec le logiciel ntbackup inclus dans Windows 2000 et 2003 (ou backup dans Windows 2008). Voici ce script, à enregistrer par exemple dans C:\Scripts\backup.bat :
@echo off
:Variables
set destination=\\BACKUP_SERVER\DC$
set username=Administrateur
set server=%computername%
:CalculDate
for /F "tokens=1-3 delims=/ " %%i in ('date /t') do (
set Year=%%k
set Month=%%j
set Day=%%i
)
:Backup
ntbackup.exe backup systemstate /v:no /j "%server%-Backup" /l:s /f "%destination%\%server%-Backup-%Year%-%Month%-%Day%-SYSTEMSTATE.bkf"
goto eof
:eof
On dit toujours qu’il faut faire des backups, encore des backups, toujours plus de backups. Ce qu’on a tendance à dire moins souvent c’est que tant que les données n’ont pas été restaurées avec succès un backup ne sert à rien.
Un exemple marquant est le cas de Ma.gnolia, site social où il était possible de stocker des marque pages sur Internet. Le 30 Janvier dernier, le site a subit un crash catastrophique de sa base de données MySQL 5, entraînant de fait la coupure du site. Ce crash était du à une corruption de données étalée dans le temps (non détectable a priori sans véritable contrôle de cohérence) qui a aussi corrompue les backups. Un passage par des spécialistes de la récupération de données n’a malheureusement rien donné non plus, ce qui signifie une perte totale de près de 500 Go de données utilisateurs et la mort effective du site dans sa version actuelle. Heureusement des systèmes de caches sur d’autres sites Internet (FriendFeed, flux RSS, etc) ont permis à certains utilisateurs de récupérer une partie de leurs données.
Voici un podcast où le responsable de Ma.gnolia explique un peu plus en détails ce qu’il s’est passé :
La leçon principale à retenir pour un opérateur de backups est donc ici de régulièrement tester jusqu’au bout sa procédure de restauration de données. Il est aussi utile, bien que techniquement parfois difficile voire impossible, d’effectuer des vérifications de cohérences des données à sauvegarder ainsi que des backups.
Certains logiciels de backup SQL utilisent le protocole NETBIOS pour transférer les fichiers de sauvegarde sur un répertoire réseau. En cas d’utilisation intensive du serveur sur lequel est situé ce répertoire ou d’un fort trafic réseau, il est possible d’obtenir un timeout sur la session ce qui fera échouer le transfert du fichier. Cela est en particulier valable pour les gros fichiers de sauvegarde évidemment, mais aussi si l’on sauvegarde de nombreuses bases en une seule fois.
Pour remédier à cela il faut aller dans la base de registre à cet endroit :
Ajouter une nouvelle valeur DWORD SessTimeout et lui donner la valeur 900 (par exemple) en décimal pour faire passer la durée d’une session NETBIOS du défaut de 45s à 900s.
Il faut disposer de beaucoup d’espace disque pour pouvoir utiliser Microsoft Data Protection Manager 2007. Suite à la publication de formules pour calculer cet espace disque ici, j’ai créé une calculatrice permettant de réaliser le calcul de manière un peu dynamique en fonction de vos besoins en sauvegarde de fichiers, bases SQL et Exchange.
Les différentes variables Jours correspondent aux durées de rétention des données.