none
Réparer une base de données Exchange 2013 RRS feed

  • Question

  • Bonjour,

    Suite à la saturation d'une mailbox d'un utilisateur et donc la saturation du disque dur où était hébergé la base de données, le serveur exchange 2013 c'est mis à ne plus fonctionner correctement. Les clients outlook 2010/2013 ou en OWA ne pouvaient plus se connecter au serveur exchange 2013.

    J'ai donc augmenté l'espace disque où est hébergé la base de données exchange 2013.

    Dans l'interface de gestion d'exchange 2013, je me suis aperçu que la base de données avait été démonté. J'ai donc essayé de la remonté. Cependant, j'ai ce message d'erreur :

    erreur

    Échec du montage de la base de données « MDB001 ». Erreur : Une opération Active Manager a échoué. Erreur : L'action de base de données a échoué. Erreur : L'opération a échoué avec le message : MapiExceptionDatabaseError: Unable to mount database. (hr=0x80004005, ec=1108) Diagnostic context: Lid: 65256 Lid: 10722 StoreEc: 0x454 Lid: 1494 ---- Remote Context Beg ---- Lid: 45120 dwParam: 0x54F4D7 Lid: 57728 dwParam: 0x54F7F4 Lid: 46144 dwParam: 0x54F9D8 Lid: 34880 dwParam: 0x54F9D8 Lid: 34760 StoreEc: 0xFFFFFDE3 Lid: 41344 Guid: 0c7e6491-3170-4d90-9c4f-31cd588d969b Lid: 35200 dwParam: 0x2BBC Lid: 46144 dwParam: 0x55009E Lid: 34880 dwParam: 0x55009E Lid: 54472 StoreEc: 0x1388 Lid: 42184 StoreEc: 0x454 Lid: 1750 ---- Remote Context End ---- Lid: 1047 StoreEc: 0x454 [Base de données: MDB001, Serveur: SRV003.DOM001.INT].

    J'ai fais une copie de la base de données et j'ai essayé cette procédure de réparation : http://mikepfeiffer.net/2010/04/getting-an-exchange-database-into-a-clean-shutdown-state-using-eseutil

    En fessant un eseutil /mh j'avais le paramètre State : dirty shutdown

    Ensuite j'ai essayé un eseutil /r "E00.log" /l "D:\Exchange\MDB-001" /d "D:\Exchange\MDB-001\MDB001.edb"et j’obtiens une erreur :

    Extensible Storage Engine Utilities for Microsoft(R) Exchange Server
    Version 15.00
    Copyright (C) Microsoft Corporation. All Rights Reserved.

    Initiating RECOVERY mode...
        Logfile base name: E00.log
                Log files: D:\Exchange\MDB-001
             System files: <current directory>
       Database Directory: D:\Exchange\MDB-001\MDB001.edb

    Operation terminated with error -1003 (JET_errInvalidParameter, Invalid API parameter) after 0.0 seconds.


    J'ai donc essayé eseutil /p avec succès. Après avoir refait uneseutil /mh le paramètre State est passé à  clean shutdown.

    J'ai donc essayé de remonter la base de données, mais cela ne fonctionne pas. J'ai toujours la même erreur.

    Je sèche littéralement...

    Merci d'avance pour votre aide.

    Cordialement,

    Arnaud

    dimanche 4 janvier 2015 23:44

Réponses

  • Non, je n'ai pas essayé de faire un "eseutil /ml X:\xxx\E0B"

    Cependant, j'ai déplacé les log, et j'ai réussi à remonter la base sans perte de données. Tout est revenu dans l'ordre. Pour prévenir ce genre de problème, j'ai mis en place le backup windows qui permet de vider les log après chaque sauvegarde afin d'éviter d'avoir mes disques durs pleins.

    Merci pour votre aide et bonne journée.

    mercredi 7 janvier 2015 12:53

Toutes les réponses

  • Bonjour,

    les services sont ils tous "up" lorsque vous faites un test-servicehealth?

    avez vous essayé de forcer le montage par un mount-database - force?

    merci


    Hakim Taoussi - Consultant Exchange - http://exchangediscover.blogspot.fr

    lundi 5 janvier 2015 10:18
  • Bonjour,

    Merci pour votre réponse.

    Voici le résultat des tests demandé :

    Tous mes services exchange sont pourtant bien démarré (sauf le rôle de messagerie unifiée) :

    [PS] D:\Exchange>test-servicehealth

    Création d'une nouvelle session pour la communication à distance implicite de la commande « Test-ServiceHealth »...

    Role                    : Rôle serveur de boîtes aux lettres

    RequiredServicesRunning : True

    ServicesRunning         : {IISAdmin, MSExchangeADTopology, MSExchangeDelivery, MSExchangeIS,

                              MSExchangeMailboxAssistants, MSExchangeRepl, MSExchangeRPC, MSExchangeServiceHost,

                              MSExchangeSubmission, MSExchangeThrottling, MSExchangeTransportLogSearch, W3Svc, WinRM}

    ServicesNotRunning      : {}

    Role                    : Rôle serveur d'accès au client

    RequiredServicesRunning : True

    ServicesRunning         : {IISAdmin, MSExchangeADTopology, MSExchangeMailboxReplication, MSExchangeRPC,

                              MSExchangeServiceHost, W3Svc, WinRM}

    ServicesNotRunning      : {}

    Role                    : Rôle serveur de messagerie unifiée

    RequiredServicesRunning : False

    ServicesRunning         : {IISAdmin, MSExchangeADTopology, MSExchangeServiceHost, W3Svc, WinRM}

    ServicesNotRunning      : {MSExchangeUM}

    Role                    : Rôle serveur de transport Hub

    RequiredServicesRunning : True

    ServicesRunning         : {IISAdmin, MSExchangeADTopology, MSExchangeEdgeSync, MSExchangeServiceHost,

                              MSExchangeTransport, MSExchangeTransportLogSearch, W3Svc, WinRM}

    ServicesNotRunning      : {}

    J’ai essayé de forcer le montage. J’ai cette erreur :

    [PS] D:\Exchange>get-mailboxdatabase | mount-database -force

    Échec du montage de la base de données «MDB001». Erreur: Une opération Active Manager a échoué. Erreur: L'action de

    base de données a échoué. Erreur: L'opération a échoué avec le message: MapiExceptionDatabaseError: Unable to mount

    database. (hr=0x80004005, ec=1108)

    Diagnostic context:

        Lid: 65256

        Lid: 10722   StoreEc: 0x454

        Lid: 1494    ---- Remote Context Beg ----

        Lid: 45120   dwParam: 0x355DDD8

        Lid: 57728   dwParam: 0x355E162

        Lid: 46144   dwParam: 0x355E2C9

        Lid: 34880   dwParam: 0x355E2C9

        Lid: 34760   StoreEc: 0xFFFFFDE3

        Lid: 41344   Guid: 0c7e6491-3170-4d90-9c4f-31cd588d969b

        Lid: 35200   dwParam: 0x2A20

        Lid: 46144   dwParam: 0x355EA7A

        Lid: 34880   dwParam: 0x355EA7A

        Lid: 54472   StoreEc: 0x1388

        Lid: 42184   StoreEc: 0x454

        Lid: 1750    ---- Remote Context End ----

        Lid: 1047    StoreEc: 0x454      [Base de données: MDB001, Serveur: SRV003.DOM001.INT].

        + CategoryInfo          : InvalidOperation : (MDB001:ADObjectId) [Mount-Database], InvalidOperationException

        + FullyQualifiedErrorId : [Server=SRV003,RequestId=2c4e7554-887a-4abe-b614-1227df4e581c,TimeStamp=05/01/2015 13:23

       :59] [FailureCategory=Cmdlet-InvalidOperationException] 7D90A609,Microsoft.Exchange.Management.SystemConfiguration

      Tasks.MountDatabase

        + PSComputerName        : srv003.dom001.int

    lundi 5 janvier 2015 13:54
  • D'après mes recherches, il semblerait que je sois soumis à ce problème : http://laubel.wordpress.com/2009/03/31/espace-disque-sature-par-les-logs-comment-sen-sortir/

    J'ai restauré la sauvegarde (simple copie) de ma base de données exchange (MDB001.edb) après mes précédentes manipulations qui ont rien donnée.

    Lorsque je fais un eseutil /MH "D:\Exchange\MDB001.edb", ma base est dans un état "Dirty Shutdown" et il semblerait que certains logs n’ont pas été enregistrés dans la base.

    Je précise que je n'ai supprimé aucuns logs et que j'en ai plus de 16000. Je ne connais pas bien exchange (je découvre), mais d'après ce que j'ai compris cela est du au faite que je n'ai jamais fais de sauvegarde de la base exchange, de ce faire les logs se sont accumulés pour saturer mon disque et mettre exchange en carafe.

    Voici le résultat de la commande eseutil /MH "D:\Exchange\MDB001.edb" :

    [PS] C:\Users\Administrateur.DOM001\Desktop>eseutil /MH D:\Exchange\MDB001.edb

    Extensible Storage Engine Utilities for Microsoft(R) Exchange Server
    Version 15.00
    Copyright (C) Microsoft Corporation. All Rights Reserved.

    Initiating FILE DUMP mode...
             Database: D:\Exchange\MDB001.edb


    DATABASE HEADER:
    Checksum Information:
    Expected Checksum: 0xbb28a86f
      Actual Checksum: 0xbb28a86f

    Fields:
            File Type: Database
             Checksum: 0xbb28a86f
       Format ulMagic: 0x89abcdef
       Engine ulMagic: 0x89abcdef
     Format ulVersion: 0x620,20
     Engine ulVersion: 0x620,20
    Created ulVersion: 0x620,20
         DB Signature: Create time:12/09/2014 23:50:40.333 Rand:2116141215 Computer:
             cbDbPage: 32768
               dbtime: 91040 (0x163a0)
                State: Dirty Shutdown
         Log Required: 16425-16453 (0x4029-0x4045)
        Log Committed: 0-16454 (0x0-0x4046)
       Log Recovering: 0 (0x0)
      GenMax Creation: 01/04/2015 19:19:57.469
             Shadowed: Yes
           Last Objid: 470
         Scrub Dbtime: 0 (0x0)
           Scrub Date: 00/00/1900 00:00:00
         Repair Count: 0
          Repair Date: 00/00/1900 00:00:00.000
     Old Repair Count: 0
      Last Consistent: (0x5A,D0,16C)  12/12/2014 02:51:01.993
          Last Attach: (0x5B,2,268)  12/12/2014 03:28:27.979
          Last Detach: (0x0,0,0)  00/00/1900 00:00:00.000
        Last ReAttach: (0x3DAC,2,0)  01/04/2015 15:20:06.163
                 Dbid: 1
        Log Signature: Create time:12/09/2014 23:50:40.161 Rand:3331850199 Computer:
           OS Version: (6.2.9200 SP 0 NLS ffffffff.ffffffff)

    Previous Full Backup:
            Log Gen: 0-0 (0x0-0x0)
               Mark: (0x0,0,0)
               Mark: 00/00/1900 00:00:00.000

    Previous Incremental Backup:
            Log Gen: 0-0 (0x0-0x0)
               Mark: (0x0,0,0)
               Mark: 00/00/1900 00:00:00.000

    Previous Copy Backup:
            Log Gen: 0-0 (0x0-0x0)
               Mark: (0x0,0,0)
               Mark: 00/00/1900 00:00:00.000

    Previous Differential Backup:
            Log Gen: 0-0 (0x0-0x0)
               Mark: (0x0,0,0)
               Mark: 00/00/1900 00:00:00.000

    Current Full Backup:
            Log Gen: 0-0 (0x0-0x0)
               Mark: (0x0,0,0)
               Mark: 00/00/1900 00:00:00.000

    Current Shadow copy backup:
            Log Gen: 0-0 (0x0-0x0)
               Mark: (0x0,0,0)
               Mark: 00/00/1900 00:00:00.000

         cpgUpgrade55Format: 0
        cpgUpgradeFreePages: 0
    cpgUpgradeSpaceMapPages: 0

           ECC Fix Success Count: none
       Old ECC Fix Success Count: none
             ECC Fix Error Count: none
         Old ECC Fix Error Count: none
        Bad Checksum Error Count: none
    Old bad Checksum Error Count: none

      Last checksum finish Date: 00/00/1900 00:00:00.000
    Current checksum start Date: 00/00/1900 00:00:00.000
          Current checksum page: 0


    Operation completed successfully in 0.703 seconds.

    D'après l'article, ont peut supprimer les logs qui ne sert plus pour gagner de l'espace disque. Dans mon cas, j'avais étendu mon espace disque, donc je n'ai pas besoin de le faire pour le moment. Toujours d'après l'article, ma base devrait se remonté, hors cela n'est pas le cas.

    Que faire ??




    lundi 5 janvier 2015 19:54
  • Bonjour,

    avez vous lancé une vérification des logs à l'aide de eseutil /ml X:\xxx\E0B (ou X:\ est le chemin de logs) ?

    une fois le check de logs refaire un softrecovery avec eseutil /r

    merci


    Hakim Taoussi - Consultant Exchange - http://exchangediscover.blogspot.fr

    mardi 6 janvier 2015 08:50
  • Non, je n'ai pas essayé de faire un "eseutil /ml X:\xxx\E0B"

    Cependant, j'ai déplacé les log, et j'ai réussi à remonter la base sans perte de données. Tout est revenu dans l'ordre. Pour prévenir ce genre de problème, j'ai mis en place le backup windows qui permet de vider les log après chaque sauvegarde afin d'éviter d'avoir mes disques durs pleins.

    Merci pour votre aide et bonne journée.

    mercredi 7 janvier 2015 12:53