Поиск

четверг, 14 марта 2019 г.

Исправление индексации баз данных Exchange 2013/2016.

Проблема:

Иногда случается, что индекс содержимого базы данных Exchange ломается. Первое с чем сталкиваются пользователи - это сбой при попытке поиска элементов в клиенте Outlook, как локально, так и через Outlook Web Access.

Неполадки остаются без внимания, когда остальные службы работают нормально, однако в конечном итоге отсутствие индекса вызывает проблемы. Например, если используется группа доступности базы данных - Database Availability Group (DAG), возникает проблема с переключением баз данных.

Решение:

Первое, убедитесь в функционировании служб:
- “Microsoft Exchange Search”;
- “Microsoft Exchange Search Host Controller”.

Для DAG!

Диагностика:
1. Проверка статуса индексации баз данных:
Get-MailboxDatabaseCopyStatus * | where {$_.ContentIndexState -eq “Failed”}

Если при выводе «MailboxDatabaseCopyStatus» статус ContentIndex - “Failed”, исправляем «индекс».

Решение проблемы:
1. Проверка статуса индексации баз данных и исправление:
Get-MailboxDatabaseCopyStatus * | where {$_.ContentIndexState -eq “Failed”} | Update-MailboxDatabaseCopy -CatalogOnly

Передадим отфильтрованные выходные данные полученные при выполнении "Get-MailboxDatabaseCopyStatus" в командлет "Update-MailboxDatabaseCopy" с ключом "-CatalogOnly", чтобы повторно заполнить индекс базы данных почтовых ящиков.

2. Дождитесь завершения задачи, и снова проверьте состояние индекса:
Get-MailboxDatabaseCopyStatus * | fl ContentIndex*

Без DAG!

Диагностика:
1. Проверка статуса индексации баз данных:
Get-MailboxDatabaseCopyStatus * | where {$_.ContentIndexState -eq “Failed”}

Если при выводе «MailboxDatabaseCopyStatus» статус ContentIndex - “Failed and Suspend”, создаем новый «индекс».

Решение проблемы:
1. Останавливаем службы:
- “Microsoft Exchange Search”;
- “Microsoft Exchange Search Host Controller”.

В PowerShell:
Stop-Service -Name MSExchangeFastSearch, HostControllerService

2. Расположение базы данных:
Get–MailboxDatabase DB2Gb | select EdbFilePath

3. Переименовываем директорию с GUID базы данных, например, с именем:
CGER7751-F8G3-21XJ-K4562DFC321LW56.1.Single

4. Запускаем службы:
- “Microsoft Exchange Search”;
- “Microsoft Exchange Search Host Controller”.

В PowerShell:
Start-Service -Name MSExchangeFastSearch, HostControllerService

5. Дождитесь завершения задачи, и снова проверьте состояние индекса:
Get-MailboxDatabaseCopyStatus * | fl ContentIndex*

Важно! Создание полнотекстового индекса продолжительно, также повышенна нагрузка на дисковую подсистему. Выполнять в периоды минимальной нагрузки, например, в выходные дни!