Однажды на сервере SBS 2011 перестал работать поиск в Outlook Web Access (OWA). В журнале приложений была обнаружена ошибка MSExchangeIS Mailbox Store с кодом события 9877: Для функции индексирования содержимого ‘CISearch::EcGetRowsetAndAccessor’ получен необычный и непредвиденный код ошибки от MSSearch. Код ошибки: 0x80043629.
На сервере установлены все последние обновления, соответственно, имеем Exchange 2010 SP2.
Проверил, что службы Индексатор поиска Exchange (Microsoft Exchange Search Indexer) и Microsoft Search запущены.
Попробовал удалить индексные файлы с помощью .\ResetSearchIndex.ps1 -force <имя_базы>, однако переиндексация не решила проблему.
Раньше в Exchange 2010 SP1 была проблема с неправильными символическими ссылками, которая приводила к такому же коду ошибки. Запустил скрипт для исправления ссылок, но это тоже не помогло.
В интернете нашел информацию о том, что такая ошибка решается с помощью запуска: Setup.com /PrepareSchema и Setup.com /PrepareAD. Не совсем понял, как это может помочь, поэтому решил повременить с этим способом.
В итоге после долгих экспериментов проблема была решена последовательным перезапуском двух служб: Банк данных Microsoft Exchange (Microsoft Exchange Information Store Service) и Служба топологии Microsoft Exchange Active Directory (Microsoft Exchange Active Directory Topology Service), которая перезапустила остальные зависимые службы. Поиск в OWA заработал.
Дальнейшее изучение показало, что ошибка возникала из-за неправильной последовательности запуска служб Exchange: http://pokatashkin.com/archives/14535.