Problème d'espace disque d'une base de données Exchange 2010


Le volume DBoV03 n’a plus d’espace libre. Par conséquence la synchronisation entre les serveurs membres du DAG ne peut plus se faire. 


Par chance une copie de la base de données est restée connectée sur le serveur qui a comme préférence d’activation 3. Sur ce serveur un volume a été prévu pour les opérations de maintenance sur les bases de données. Dans ce qui suit, on présente les différentes étapes suivies pour rétablir la situation d’avant la saturation.
  1. Supprimer les copies des bases de données en échec en cliquant dessus avec le bouton droit  et choisissant supprimer. Attention si la journalisation circulaire a été activée la suppression de la dernière copie ne sera pas possible. Dans ce cas il faut désactiver la journalisation circulaire.
  2. Si la consommation est due aux journaux, il suffit de faire une sauvegarde complète de la base de données pour tronquer les logs (voir comment faire une sauvegarde en utilisant la fonctionnalité de Windows 2008 Sauvegarde de Windows Server). Dans notre cas ne n’était pas le cas, c’était la base de données qui  a consommé l’espace disque
  3. Démonter la base de données saine.
  4. Copier cette base sur le volume qui dispose d’assez d’espace (Base + Logs).
  5. Quand une boite est désactivée ou déplacée vers une autre base de données, une copie est gardée sur la base d’origine jusqu’à ce que la période choisie dans les paramètres de suppression de la base de données soit écoulée (par défaut 30 jours). L’état de la boite est alors respectivement soit Disabled soit SoftDeleted. Pour voir si de telles boites existent, taper la commande PowerShell suivante :

  6.                 clean-mailboxdatabase-identity DB1
                 
                    Chercher dans le journal Application de Windows l’événement d’Id 9535.


    L’événement nous apprend par exemple que sur la base de données DB1 que 93 boites sont dans un état SoftDeleted et que 77 Go peuvent été récupéré sur cette base de données.
    Pour voir la liste de ces  boites, taper la commande suivante :

    Get-MailboxDatabase "DB1" | Get-MailboxStatistics |?{$_.DisconnectDate -Notlike $NULL}| Sort totalitemsize -desc | ft displayname, totalitemsize, MailboxGuid



    Pour supprimer définitivement une boite, taper la commande suivante :

    Remove-StoreMailbox -Database DB1 -Identity c4bc22dd-996b-4e49-ad20-7515952e64ca
    -MailboxState SoftDeleted

    Ou Identity est le guid de la boite aux lettres relevé sur l’écran précédent.

    Remarque : pour avoir le Mailboxguid d’une boite dont on connait le nom affiché, on tape la commande suivante :

    Get-MailboxStatistics -Database DB3 | ?{$_.DisplayName -like 'test*'} | fl DisplayName,MailboxGuid,DisconnectDate

    Par contre, pour récupérer une boite qui est dans un état SoftDeleted, il faut taper la commande suivante :

    New-MailboxRestoreRequest -SourceDatabase DB3 -SourceStoreMailbox f89be583-5478-4324-9735-2c3655aae780 -TargetMailbox  UserTest
    UserTest étant l’alias de l’utilisateur

    Pour supprimer toutes ces boites aux lettres définitivement et récupérer l’espace perdu,
    taper les commandes suivantes :

    Set-Mailboxdatabase -Identity DB1 -MailboxRetention 00.00:00:00
    Clean-Mailboxdatabase -identity DB1
    Set-Mailboxdatabase -Identity DB1 -MailboxRetention 30.00:00:00

    On modifie la période de conservation à 0 (cad ne pas conserver), on nettoie la base de données puis on rétablie la valeur par défaut.
    La période de rétention peut aussi être modifié en utilisant la console en double cliquant sur la base de données (Configuration de l’organisation/Boites aux lettres puis onglet Gestion de la base de données).





  7. Maintenant l’espace a été récupéré mais la taille de la base de données n’a pas changé. Pour ce faire, il faut effectuer une défragmentation de la base de données.
  8.                 Démonter la base de données. Ouvrir une fenêtre DOS, aller sur le répertoire ou se trouve cette base de données puis lancer la commande suivante :
              eseutil /d "DB1.edb"

    Une fois la défragmentation terminée, re-monter la base de données.

  9. Déplacer la base de données vers son emplacement d’origine en choisissant sur la console Déplacer le chemin d’accès à la base de données



  10. Re-créer les copies sur les serveurs membres du DAG
  11. Finalement pour rétablir la situation du départ, cliquer avec le bouton droit sur le serveur ou la base de données était activée et choisir propriétés. Changer le Numéro de préférence d’activation en 1. Pour rendre la base de données active sur ce serveur, cliquer sur Activer la copie de base de données


Commentaires

Posts les plus consultés de ce blog

Installation de glpi 0.9 sur un serveur Windows 2012 R2

Impossible de joindre un fichier dans OWA

Accéder à PhpMyAdmin sans mot de passe