Exchange DB nicht eingebunden

Die DB eines Exchange 2013 liess sich nicht mehr einbinden, der Status unter EAC lautete „Einbindung aufgehoben“. Eventlog zeigte diverse Fehler und Warnungen:

Quelle: ESE (ESE); Ereignis ID: 482

Information Store - Mailbox Database xxx (12380) Mailbox Database xxx: Fehler nach 0.000 Sekunden beim Schreiben in Datei "D:\ExchangeData\Mailbox\Mailbox Database xxx\Mailbox Database xxx.edb" bei Offset 110595407872 (0x00000019c0000000) für 0 (0x00000000) Bytes mit Systemfehler 665 (0x00000299): "Der angeforderte Vorgang konnte aufgrund einer Dateisystemeinschränkung nicht abgeschlossen werden. ". Fehler -1022 (0xfffffc02) bei Schreiboperation. Wenn dieser Zustand andauert, ist die Datei möglicherweise beschädigt und muss aus einer vorherigen Sicherung wiederhergestellt werden.

Quelle: ESE (ESE); Ereignis ID: 454

Information Store - Mailbox Database 2072421121 (12380) Mailbox Database 2072421121: Fehler bei der Datenbankwiederherstellung mit dem unerwarteten Fehler -1022.

Quelle: ExchangeStoreDB; Ereignis ID: 206

28.05.2018 08:43:12: Für die Kopie der Datenbank 'Mailbox Database xxx' auf diesem Server scheint ein schwerwiegender E/A-Fehler vorzuliegen. Überprüfen Sie das Ereignisprotokoll auf dem Server hinsichtlich anderer Speicher- und "ExchangeStoreDb"-Ereignisse, um detailliertere Informationen zu dem Fehler zu erhalten. Die Dienstwiederherstellung wurde mithilfe eines Failovers auf eine andere Kopie versucht. Failover konnte den Dienst nicht wiederherstellen. Fehler: Es ist nur eine Kopie der Postfachdatenbank (Mailbox Database 2072421121) vorhanden. Es ist keine automatische Wiederherstellung verfügbar.

Mit folgendem Befehl konnte ich den Status der DB prüfen:

C:\Program Files\Microsoft\Exchange Server\V15\Bin\eseutil.exe /MH "D:\ExchangeData\Mailbox\Mailbox Database xxx\Mailbox Database xxx.edb"

Output war folgender:

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:\ExchangeData\Mailbox\Mailbox Database xxx\Mailbox Database xxx.edb
DATABASE HEADER:
Checksum Information:
Expected Checksum: 0xcf09ec4a
  Actual Checksum: 0xcf09ec4a
Fields:
       File Type: Database
         Checksum: 0xcf09ec4a
   Format ulMagic: 0x89abcdef
   Engine ulMagic: 0x89abcdef
 Format ulVersion: 0x620,20
 Engine ulVersion: 0x620,20
Created ulVersion: 0x620,20
     DB Signature: Create time:12/21/2013 10:33:03.226 Rand:3416686835 Computer:
         cbDbPage: 32768
           dbtime: 953713227 (0x38d8824b)
            State: Dirty Shutdown
     Log Required: 1013428-1013474 (0xf76b4-0xf76e2)
    Log Committed: 0-1013475 (0x0-0xf76e3)
   Log Recovering: 1013453 (0xf76cd)
  GenMax Creation: 05/28/2018 08:32:51.797
         Shadowed: Yes
       Last Objid: 464345
     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: (0xE923A,E,5C)  03/14/2018 20:02:47.244
      Last Attach: (0xE923B,2,268)  03/14/2018 20:22:22.866
      Last Detach: (0x0,0,0)  00/00/1900 00:00:00.000
    Last ReAttach: (0xF76C4,2,268)  05/28/2018 10:37:14.921
             Dbid: 1
    Log Signature: Create time:12/21/2013 10:33:02.867 Rand:763432890 Computer:
       OS Version: (6.2.9200 SP 0 NLS ffffffff.ffffffff)
Previous Full Backup:
        Log Gen: 1012126-1012128 (0xf719e-0xf71a0) - OSSnapshot
           Mark: (0xF71A1,1,0)
           Mark: 05/26/2018 21:55:25.610
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 2.375 seconds.

Insbesondere der „State: Dirty Shutdown“ lieferte den Beweis, dass mit der DB etwas nicht in Ordnung war. In diesem Falle muss die DB repariert werden. Dazu wird insbesondere folgendes benötigt: Diskspace! Und zwar mindestens 110% der DB-Grösse!

Nun prüfen wir zuerst, wie der Stand der Logfiles ist:

Die Befehle werden am einfachsten im Verzeichnis ausgeführt , in welchem sich die Logfiles befinden:

D:\ExchangeData\Mailbox\Mailbox Database xxx>"C:\Program Files\Microsoft\Exchange Server\V15\Bin\eseutil" /ML E00.log

Prüfung sämtlicher folgender Logfiles:

eseutil /ML E00

Der Output ist im Idealfall:

No damaged log files were found.
Operation completed successfully in 100.797 seconds.

Prüfung des Checkpoint Files:

eseutil /MK E00.chk

Nun können wir ein Soft Recovery versuchen:

"C:\Program Files\Microsoft\Exchange Server\V15\Bin\ESEUTIL" /r E00 /l "D:\ExchangeData\Mailbox\Mailbox Database xxx" /d "D:\ExchangeData\Mailbox\Mailbox Database xxx"

Das Recovery konnte einige Logfiles einspielen, brach dann aber mit einem Fehler ab:

Operation terminated with the following error -1022 (Jet_errDiskIO, Disk IO error) after xx seconds.

Somit musste ich ein Hard Recovery ausführen:

"C:\Program Files\Microsoft\Exchange Server\V15\Bin\ESEUTIL" /P "D:\ExchangeData\Mailbox\Mailbox Database xxx\Mailbox Database xxx.edb"

Dies dauerte ca. eine Stunde in meinem Fall (DB Grösse von 100GB). Anschliessend muss ein Defrag ausgeführt werden:

"C:\Program Files\Microsoft\Exchange Server\V15\Bin\ESEUTIL" /d "D:\ExchangeData\Mailbox\Mailbox Database xxx\Mailbox Database xxx.edb"

Im Anschluss an diesem Befehl konnte ich die DB wieder mounten. Ein abschliessender Integ-Check steht noch aus.

Nachtrag: mit diesem Befehl lässt sich die DB überprüfen:

[PS] C:\>New-MailboxRepairRequest -Database "Mailbox Database xxx" -DetectOnly -CorruptionType ProvisionedFolder,
SearchFolder,AggregateCounts,Folderview | fl

Es ist zwingend „FL“ am Ende zu verwenden, da der Request sonst nicht wiederauffindbar ist. Mit diesem Befehl kann der Status überprüft werden:

Get-MailboxRepairRequest ID von Oben\ID von Oben | fl
Advertisements

Exchange Such-Index prüfen / rebuild

Bei einem Kunden konnte eine Shared Mailbox nicht mehr durchsucht werden (Exchange 2013, Outlook 2013). Ursache war ein korrupter ContentIndex auf dem Exchange Server.

Dies kann wie folgt geprüft werden:

Get-MailboxDatabaseCopyStatus -Server SERVERNAME | fl name,*index*

Bei den betroffenen DB’s wurde folgendes ausgegeben:

Name : Mailbox Database XXX\SERVERNAME
ContentIndexState : FailedAndSuspended
ContentIndexErrorMessage : The content index is corrupted.
ContentIndexErrorCode : 19

Der Index kann wie folgt neu aufgebaut werden:

Stop-Service MSExchangeFastSearch
Stop-Service HostControllerService

Verzeichnis mit der Endung „.Single“ im Datastore der DB löschen oder umbenennen

Start-Service MSExchangeFastSearch
Start-Service HostControllerService

Nun wird der Index neu erstellt. Dies kann je nach Grösse der DB sehr lange dauern. Mit dem obigen Befehl kann der aktuelle Status überprüft werden.

ContentIndexState : Failed
ContentIndexErrorMessage : The Microsoft Exchange Search Host Controller Service is not running on server
 SERVERNAME.
ContentIndexErrorCode : 15

Schlussendlich sollte das wie folgt aussehen:

ContentIndexState : Healthy

Zu diesem Thema noch ein interessanter Technet-Blog-Link:

https://blogs.technet.microsoft.com/outlooking/2014/04/28/understanding-search-scopes-in-microsoft-outlook/

Das ganze Prozedere ist hier beschrieben.