четверг, 17 февраля 2011 г.

Не можете ничего найти в своей почте? Прибейте индекс.

exchangeЕще один запрос, который пришлось недавно решать: один из сотрудников нашей компании пожаловался, что поиск по его почтовому ящику не выдает результаты из относительно свежих сообщений. То есть, скажем, трехнедельной давности почту в результатах видно, а более свежую – нет. Перестроение индекса на его рабочей станции результатов не принесло, плюс к этому он не использовал кешированный режим в Outlook. Что же, мой поиск вроде был в порядке, и я должен был как-то воспроизвести проблему, так что я отключил кеширование и у себя. Опаньки! Последние три недели из поиска просто сдуло.  Учтя тот факт, что мой ящик был в той же базе данных, что и ящик обратившегося за помощью сотрудника, я решил, что источник этой трагедии крылся в серверном индексе. 
Как можно проверить, все ли хорошо с поиском на сервере? Ответ было не сложно найти: командлет Test-ExchangeSearch для Exchange 2010 или 2007. Запустив эту команду для моего ящика я получил следующее:
ResultFound : False
SearchTime : –1
Ну тут уже было очевидно, что что-то пошло не так. Как можно восстановить индекс? Это оказалось снова не сложно: нужная статья KB была найдена моментально, так что просто зашел на сервер и запустил скрипт  ResetSearchIndex.ps1 из комплекта установки Exchange для проблемной базы данных. Разумеется, пересоздание индекса для относительно круаной базы данных задает работу серверу как в плане процесорного времени, так и в плане IO, так что я делал это в нерабочие часы. И просто на случай, если Вам, как и мне нужно будет знать, перестраивается ли индекс в данный момент или уже закончил, Вам понадобится наблюдать за некоторыми счетчиками производительности, точнее, за одним счетчиком: MSExchange Search Indices – Full Mode Crawl Status. Можно его наблюдать для конкретной базы или для _Total, что удобнее. В любом случае, для каждой базы он будет равен 0, когда полной индексации не проиисходит и 1, когда, напротив, идет полное пересоздание каталога поиска. После того, как индексирование закончено, Вы можете проверить, решена ли проблема, еще раз:
[PS] C:\Windows\system32>Test-ExchangeSearch domainname\username
                            ResultFound                              SearchTime
                                -----------                                   ----------
                                       True                                              5
Моя-то точно решена =)

2 комментария:

Анонимный комментирует...

Командлет Test-ExchangeServer

правильно читать Test-ExchangeSearch, как указано ниже по тексту.

Спасибо за статью, есть такая проблема :)

Alexander Trofimov комментирует...

Спасибо большое - поправил.