У нас есть DAG с двумя узлами Exchange 2016 CU12, работающими на современной Windows Server 2016.
Поиск не работает на любом почтовом ящике, находящемся в любой подключенной базе данных на одном из узлов. Другой узел работает нормально.
Мероприятие 1012
неоднократно сообщается MSExchangeIS
на затронутом хосте, с последующим контентом (который неоднократно генерировался SearchQueryStxProbe
монитор здоровья):
В хранилище информации сервера Exchange обнаружена ошибка при выполнении запроса полнотекстового индекса ("and (subject: string (" SearchQueryStxProbe * ", mode =" and "), folderid: string (" 3753F38349D8A943AE346EACDBD8B91300000000010C0000 "))"). Информация об ошибке: System.ServiceModel.EndpointNotFoundException: сообщение не может быть отправлено, поскольку служба на адресе конечной точки net.pipe: // localhost / 3867 недоступна для протокола этого адреса.
Проблема, похоже, совершенно не связана с индексом контента, само событие и дальнейшая диагностика указывают на некоторую проблему с какой-то частью службы поиска, не работающей должным образом на этом конкретном хосте.
ContentIndexState
сообщается о работоспособности во всех базах данных обоими хостами.SearchQueryFailureMonitor
и SearchQueryStxMonitor
вернуть нездоровое состояние на пораженном хосте.Test-ExchangeSearch
буквально ничего не возвращает ни на один из хостов. Никаких объектов результатов, никаких ошибок, только на некоторое время только индикатор выполнения. Никогда не использовал этот инструмент, поэтому не знаю, чего ожидать.Google действительно возвращает множество сообщений по широкому кругу проблем, приводящих к событию 1012. К сожалению, 1012 явно покрывает широкий круг проблем. Ни одна проблема не совпадает с моими подробностями о событии и не представляет схожие побочные симптомы, но при этом дает какое-либо решение или подсказку относительно того, что тоже нужно искать.
Из-за отсутствия какой-либо разумной документации дальнейшие шаги были ограничены сравнительным анализом двух хостов - исправного и отказавшего.
Следуя данным события, я проверил привязку TCP 3867. На вышедшем из строя хосте порт не связан. На исправном хосте порт привязан к экземпляру выполняемой службы noderunner.exe
процесс, один со следующими аргументами:
"C:\Program Files\Microsoft\Exchange Server\V15\Bin\Search\Ceres\Runtime\1.0\NodeRunner.exe"
--noderoot "C:\Program Files\Microsoft\Exchange Server\V15\Bin\Search\Ceres\HostController\Data\Nodes\Fsis\IndexNode1"
--addfrom "C:\Program Files\Microsoft\Exchange Server\V15\Bin\Search\Ceres\HostController\Data\Nodes\Fsis\IndexNode1\Configuration\Local\Node.ini"
--tracelog "C:\Program Files\Microsoft\Exchange Server\V15\Bin\Search\Ceres\HostController\Data\Nodes\Fsis\IndexNode1\Logs\NodeRunner.log"
Я сравнил указанные файлы и пути на обоих хостах:
NodeRunner.log
файл не создается ни на одном из узлов.Таким образом, явных отличий нет. Кроме того, нет существенной разницы между каталогами поиска в реплицированных базах данных.
У кого-нибудь была подобная проблема? Кто-нибудь решил? У кого-нибудь есть подсказка, где смотреть? Какие-нибудь файлы журналов или инструменты диагностики?
Я рекомендую вам следовать инструкциям в этой статье Exchange 2013: отказ технологии FAST Search
Или как насчет создания новой БД и перемещения почтового ящика в эту новую БД? Есть ли ошибки? Если вы можете переместить этот почтовый ящик, проверьте перемещенный почтовый ящик в OWA.
Надеюсь, что это работает.