Défragmenter une base de données Exchange 2010/2013/2016/2019

La suppression d’une boîte aux lettres ne libère pas d’espace sur le disque

Lors de la suppression d’une boîte aux lettres Exchange, celle-ci est marquée pour suppression et elle est conservée durant la durée de rétention (30 jours par défaut). Une fois cette durée de rétention passée, la boîte aux lettres est supprimée de la base de données Exchange (EDB – Exchange DataBase) et non récupérable à moins d’utiliser un backup Exchange.

Cependant, bien que la boîte soit supprimée, l’espace consommé par celle-ci dans la base de données Exchange (et donc sur le disque dur) n’est pas libéré.

En effet la base de données contient juste des “espaces blancs” à la place des données de la boîte aux lettres. Le fonctionnement est le même lorsque des utilisateurs suppriment des éléments de leur boîtes aux lettres.

Il y a alors deux méthodes de récupérer l’espace :

  • Soit créer une nouvelle base de données Exchange, migrer toutes les boîtes dessus et supprimer l’ancienne base de données Exchange. Bien que fonctionnel et non impactant pour les utilisateurs, cette solution peut s’avérer longue et fastidieuse
  • Soit défragmenter la base de données Exchange en mode hors ligne. C’est cette action qui sera présentée dans la suite de l’article.

Identifier l’espace disque

Depuis Exchange Management Shell, exécuter la commande suivante :

La commande retournera la liste de toutes les bases de données de boîtes aux lettres disponibles sur le serveur, avec la taille actuelle DatabaseSize et le nouvel espace de boîte aux lettres disponible AvailableNewMailboxSpace , qui est essentiellement composé des fameux “espace blanc” de la base de données. En d’autres termes, la valeur AvailableNewMailboxSpace indiquera la quantité d’espace pouvant être récupérée pour chaque base de données via la défragmentation

Défragmenter hors ligne la base de données Exchange

Une défragmentation hors ligne (offline defrag) d’une base de données Exchange ne peut être exécutée que lorsque la base de données Exchange est démontée. Cela implique que les utilisateurs avec une boîte sur cette base de données ne pourront plus accéder à leur boite aussi longtemps que la base est démontée.

Afin de limiter les impacts utilisateurs, le processus est donc le suivant :

1. Démonter la base de données Exchange N0
2. Exécuter la défragmentation de la base de données Exchange N0
3. Remonter la base de données Exchange N0
4. Démonter la base de données Exchange N1
5. Exécuter la défragmentation de la base de données Exchange N1
6. Remonter la base de données Exchange N1
7. etc.

Comme pour toute opération sur un environnement de production, il est fortement conseillé d’avoir une sauvegarde fonctionnelle en cas d’échec de la défragmentation.

Depuis le serveur Exchange, exécuter Exchange Management Shell en mode administrateur. Si la console est lancée en mode non admin, l’erreur suivante sera indiquée :

Operation terminated with error -1032 (JET_errFileAccessDenied, Cannot access file, the file is locked or in use) after 10.31 seconds.

Démonter la base de données sur laquelle réalisée la défragmentation. Ne pas oublier de prévenir les utilisateurs qui ne pourront plus accéder à leurs boîtes aux lettres :

Dismount-Database <databaseName>

Se déplacer dans le dossier qui contient le fichier de base de données Exchange(fichier .EDB). Si vous ne savez pas où il est, vous pouvez lister les base de données et l’emplacement du fichier .edb correspondant :

Get-MailboxDatabase | Select Name,EdbFilePath
cd <edbFilePath>

Lancer la défragmentation hors ligne :

eseutil /d <databasefile>.edb

Patienter durant le processus.

Une fois la défragmentation terminée, remonter la base de données :

Mount-Database < databaseName >

Si vous exécutez la commande initiale, la taille de la base de données occupée sur le disque DatabaseSize a diminué et l’espace blanc AvailableNewMailboxSpace doit être proche de zéro.

Leave a Reply

eleven + three =

Close Menu