Einem Kunden viel auf, das die erweiterte Suche in Outlook keine Ergebnisse lieferte, als er Nachrichten mit einem bestimmten Schlüsselwort und vergangene Woche eingangen sind suchte. Vor ein paar Tagen hatte die gleiche Suche noch die entsprechenden Mails ausgegeben.

Bei weiterer Begutachtung viel auf, das der älteste Eintrag nur gut eine Woche zurückreichte, allein das war bereits seltsam, da in den Postfächern Nachrichten aus den letzten Jahren liegen. Da die normale Suche in Outlook passende Ergebnisse lieferte war schnell klar, das es an der Art der Suche und dem Index des Suchdienstes liegen muss.

Da wir ein solches Phänomen bislang nicht kannten, musste zunächst recherchiert werden, wo denn die Datenbank mit dem Index abgelegt ist und was man tun könnte. Die Kunden-Umgebung besteht aus einem Windows Small Business Server 2011, der einen Exchange Server 2010 enthält, es geht also nur um einen einzelnen Server.

Hinweis: Für Exchange Server mit DAG gibt es andere bzw. weitere Möglichkeiten (siehe Quellen).

Der Suchindex wird parallel zu den Exchange-Datenbanken (Informationsspeicher) abgelegt, das heisst im gleichen Ordner in dem die *.edb-Dateien liegen. Die Standard-Vorgabe ist

"C:\Program Files\Microsoft\Exchange Server\V14\Mailbox\MAILBOX-DATENBANKNAME"

Dort findet sich ein Unterordner der mit “CatalogData…” beginnt, darin je nach Umfang viele kleinere Dateien.

Anmerkung: Die Transaktionsprotokolle liegen in diesem Fall auf einem anderen Laufwerk, als die Datenbanken. In der Standard-Installation befinden sich alle Drei (Logs, EDBs und Index) im gleichen Ordner.

Wie sich herausstellte gab es zwei Index-Ordner, einmal im Pfad der Transaktionsprotokolle und einmal im Pfad der Informationsspeicher. Auffällig war, das der Ordner bei den Logs gut ein Gigabyte an Umfang hatte und bis zu dem Zeitpunkt (laut Zeitstempel der enthaltenen Dateien) verwendet wurde, bis das der zweite Ordner auf dem anderen Laufwerk erstellt wurde. Der zweite Ordner hatte nur einen Umfang von ca. 28 MB.

Die Ursache für dieses Aufsplitten über die zwei Laufwerke und warum der alte Index nicht weiter verwendet bzw. mit auf das andere Laufwerk übernommen wurde bleibt indes unklar.

Funktion prüfen

Mit dem Befehl “Test-ExchangeSearch”, ausgeführt in einer “Exchange Management Shell”, lässt sich überprüfen ob die Index-Funktion überhaupt tut was sie soll. In diesem Fall erhielt man eine positive Antwort.

Erster Versuch / Erster Misserfolg

Basierend auf dem Thread unter

TechNet Foren – Exchange 2010: Suche in Outlook 2010 und OWA liefert nur Teilergebnisse

wurde zunächst der Dienst “Microsoft Exchange-Suchindizierung” (MSExchangeSearch) beendet, die “Content…”-Ordner umbenannt und der Dienst erneut gestartet. Der “Content”-Ordner im Pfad der *.edb-Dateien wurde daraufhin automatisch neu erstellt, war aber sofort wieder nur 28 MB groß, im Pfad der Logs tat sich indes nichts.

Die Lösung

Der Einfachheit halber wurde schlicht der gesamte alte Index entfernt und neu erstellt. Bei gut 70 GB an E-Mails dauerte der Vorgang ca. zwei Stunden.

  • Eine “Exchange Management Shell” öffnen.
  • In den Ordner “C:\Program Files\Microsoft\Exchange Server\V14\Scripts” wechseln.
  • Das Skript “.\ResetSearchIndex.ps1 –all” ausführen.

Quellen

MS TechNet – Exchange Server 2013 – Diagnose Exchange Search issues

MS TechNet – Exchange Server 2013 – Reseed the search catalog

Stephan Mey – Exchange 2010: Index und Indexdienst

MS TechNet Blogs – How To Troubleshoot Issues With Exchange 2010 Search

Corelan Team – Exchange 2007 : Indexing and searching mailboxes