Exchange Server 2010 数据库中的内容索引状态仍停滞在爬网中

原始 KB 编号: 2820817

症状

在 Microsoft Exchange Server 2010 数据库中,内容索引状态显示为“正在爬网”,并且它似乎永远不会达到“正常”状态。此外,即使“成功编制索引的文档数”性能计数器显示索引文档数逐渐增加,但“要爬网的剩余邮箱数”计数器中的值也不会按预期减少。

在这种情况下,应用程序日志中记录了以下事件:

Time:
ID: 102
Level: Error
Source: MSExchange Search Indexer
Machine: Mailboxserver.contoso.com
Message: Exchange Search Indexer has failed to crawl the mailbox (8832ee80-47b8-4b0e-a98f-c4a239794707) in database (Database1) due to error: (Microsoft.Exchange.Search.MailboxCrawlFailedException: Failed to logon to mailbox). This mailbox will be retried later.
Time:
ID: 5617
Level: Error
Source: CI Troubleshooter
Machine: Mailboxserver.contoso.com
Message: CI troubleshooter exchange search service restart attempt 81.

原因

当 System Center Operations Manager 运行 Toubleshoot-CI.ps1 脚本时,会出现此问题。 这会导致 Exchange 搜索服务在完成索引过程之前重新启动。

解决方案

若要解决此问题,请阻止 System Center Operations Manager 服务器运行 Troubleshoot-CI.ps1 脚本,如下所示:

  1. 打开 System Center Operations Manager。
  2. 单击“ 管理包对象>监视器”。
  3. 在“ 查找 ”框中,键入 “疑难解答”,然后单击“ 立即查找”。
  4. 找到与 Troubleshoot-CI.ps1 脚本对应的项,右键单击它,然后单击“ 属性”。
  5. 在“ 替代 ”选项卡上,单击“ 替代”。
  6. 选择“启用检查”框,将“替代值”选项设置为 False,然后单击“确定”。

更多信息

通常,System Center Operations Manager 每两小时运行一次 Troubleshoot-CI.ps1 脚本。 但是,如果 Troubleshoot-CI.ps1 脚本检测到以下症状之一,则会触发 Exchange 搜索服务的重启:

  • 死锁:在 MSSearch 中等待线程时 Exchange 搜索死锁。
  • 损坏:一个或多个搜索索引已损坏。
  • 停止:类似于死锁,即索引未更新。
  • 积压:搜索目录积压,因此计划的索引搜索未按预期运行。

下面是运行 Troubleshoot-CI.ps1 脚本时记录的事件示例:

Time:
ID: 5611
Level: Error
Source: CI Troubleshooter
Machine: Mailboxserver.contoso.com
Message: Indexing backlog reached a critical limit of 48 hours or the number of items in the retry queue is greater than 10000 for one or more databases: Database1 (0, 12572, 0)Database1 (0, 31859, 0)

如果数据库具有大型邮箱或具有较高项计数的邮箱,则完成索引过程通常需要两个多小时的时间。 当 Exchange 搜索服务重新启动时,邮箱将重新放入列表中以重新编制索引。 在这种情况下,爬网过程可能永远无法完成。