诊断 Exchange 搜索问题

 

适用于: Exchange Server 2010 SP2, Exchange Server 2010 SP3

上一次修改主题: 2016-11-28

Exchange 搜索可创建邮箱和 Exchange 邮箱中受支持的附件的索引。随着电子邮件量、邮箱大小和存储配额的不断增长,以及用户个人存档邮箱的设置以及执行发现搜索的多邮箱搜索的引入,Exchange 搜索已成为 Microsoft Exchange Server 2010 组织中邮箱服务器的关键组件。Exchange 搜索问题会影响用户工作效率和多邮箱搜索功能。

有关 Exchange 搜索的详细信息,请参阅了解 Exchange 搜索

若要了解与管理 Exchange 搜索相关的管理任务,请参阅管理 Exchange 搜索

使用 Test-ExchangeSearch Cmdlet

本主题中的步骤 5 介绍了如何运行 Test-ExchangeSearch cmdlet 以帮助诊断 Exchange 搜索问题。您可以使用 Test-ExchangeSearch cmdlet 测试邮箱服务器、邮箱数据库或特定邮箱的 Exchange 搜索功能。Cmdlet 将测试邮件传递到指定邮箱(或者在未指定邮箱的情况下传递到数据库的系统邮箱中),然后执行搜索以确定是否已对该邮件建立索引,包括建立索引需要的时间。在正常条件下,Exchange 搜索将在约 10 秒内对要创建或传递到邮箱中的邮件建立索引。测试完毕后,测试邮件将自动删除。

Exchange 2010 对 Test-ExchangeSearch cmdlet 进行了下列改进:

  • Mailbox 参数已添加到标准输出中。

  • 在指定服务器名称的同时,cmdlet 还会测试邮箱服务器上所有的邮箱数据库。对于复制到数据库可用性组 (DAG) 中的其他邮箱服务器的数据库来说,如果您在不包含主动数据库副本的邮箱服务器上运行此命令,则测试会在包含主动数据库副本的服务器上自动执行。

  • 使用带有 MonitoringContext 参数的 cmdlet 时,它会提供其他监控软件(如 Microsoft System Center Operations Manager 2007)可以使用的数据。

  • 使用带有 Verbose 开关的 cmdlet 时,cmdlet 将返回每个步骤的详细结果和状态,以及其他诊断信息以帮助您解决搜索相关的问题。

有关语法和参数的详细信息,请参阅 test-ExchangeSearch

检索不可搜索的项目

您可以使用 Get-FailedContentIndexDocuments cmdlet 检索无法由 Exchange 搜索成功建立索引的不可搜索的邮箱项目列表。可以对邮箱服务器、邮箱数据库或特定邮箱运行 cmdlet。Cmdlet 会返回每个不可搜索项目的详细信息。邮箱项目不可搜索的原因有几种,例如,某电子邮件包含了未安装搜索筛选器的附件文件类型。如果该文件类型的搜索筛选器可用,则可将其安装在 Exchange 服务器上。

重要重要说明:
由 Microsoft 提供的搜索筛选器已经过测试并受 Microsoft 的支持。我们建议您在将任何第三方搜索筛选器安装在生产环境中的 Exchange 服务器上之前,先在测试环境中对其进行测试。
注释注意:
包含安全列表上所列附件文件格式的邮件不会返回到不可搜索项目的列表中。有关详细信息,请参阅了解 Exchange 搜索中的“Exchange 搜索和附件”。

有关语法和参数的详细信息,请参阅 Get-FailedContentIndexDocuments

诊断 Exchange 搜索问题

您必须先获得权限,然后才能执行此过程。若要查看所需的权限,请参阅邮箱权限主题中的“Exchange 搜索”条目。

  1. **检查服务状态:**是否是在邮箱服务器上启动 Microsoft Exchange 搜索索引器 (MSExchangeSearch) 服务?如果是,请转至步骤 2。如果不是,请使用服务 MMC 管理单元验证 MSExchangeSearch 服务是否正在运行,如下所示:

    1. 单击“开始”,指向“管理工具”,然后单击“服务”。

    2. 在“服务”中,验证“Microsoft Exchange 搜索索引器”服务的“状态”是否列为“已启动”。

  2. **检查邮箱数据库配置:**用户邮箱数据库的 IndexEnabled 参数是否设置为 true?如果是,请转至步骤 3。如果不是,请在命令行管理程序中运行以下命令以验证 IndexEnabled 标志是否设置为 true。

    Get-MailboxDatabase | Format-Table Name,IndexEnabled
    

    有关语法和参数的详细信息,请参阅 Get-MailboxDatabase

  3. **检查邮箱数据库爬网状态:**Exchange 数据库是否已爬网?如果是,请转至步骤 4。如果不是,请使用可靠性和性能监视器检查“MSExchange 搜索索引”性能对象的“完全爬网模式状态”计数器。执行下列步骤:

    1. 打开可靠性和性能监视器 (perfmon.exe)。

    2. 在控制台树中的“监视工具”下,单击“性能监视器”。

    3. 在性能监视器窗格中,单击“添加”(绿色加号)。

    4. 在“添加计数器”的“从计算机选择计数器”列表中,选择要监视的邮箱数据库所在的服务器。

    5. 在“从计算机选择计数器”列表下面无标签的框中,选择“MSExchange 搜索索引”性能对象。

    6. 在“所选对象实例”框中,选择用户邮箱数据库的实例。

    7. 单击“添加”,然后单击“确定”。

    在性能监视器窗格中,“MSExchange 搜索索引”性能对象列在“对象”列中,其多种计数器列在“计数器”列中。查看“完全爬网模式状态”计数器。如果数据库仍然在爬网,则它的值为“1”。爬网完成时,该值为“0”。

    若要查看其他相关搜索计数器,请使用上述步骤 a 到 g 来添加下列性能对象:

    • MSExchange 搜索索引器

    • MSFTESQL-Exchange: 编录

    • MSFTESQL-Exchange:FD

    • MSFTESQL-Exchange: 索引器

    • MSFTESQL-Exchange: 服务

    有关使用性能监视器的信息,请参阅 Windows Server 2008 中性能和可靠性监视的分步指南

  4. **检查数据库副本索引运行状况:**内容索引状态是否正常?使用 Get-MailboxDatabaseCopyStatus cmdlet 可检查数据库副本的内容索引运行状况。

    Get-MailboxDatabaseCopyStatus | Format-Table Identity,ActiveDatabaseCopy,ContentIndexState -Auto
    

    有关语法和参数的详细信息,请参阅 Get-MailboxDatabaseCopyStatus

  5. **运行 Test-ExchangeSearch cmdlet:**如果邮箱数据库已爬网,则可以对邮箱数据库或特定邮箱运行 Test-ExchangeSearch cmdlet。

    Test-ExchangeSearch -Identity AlanBrewer@contoso.com
    

    有关语法和参数的详细信息,请参阅 Test-ExchangeSearch

  6. **检查应用程序事件日志:**使用事件查看器或命令行管理程序检查应用程序事件日志中与搜索相关的错误消息。检查“源: MSExchangeSearch 索引器”和 msftesql-Exchange 事件。有关详细信息,请参阅事件日志条目中的链接。

  7. **重新启动 Microsoft Exchange 搜索索引器服务:**使用服务 MMC 管理单元或命令行管理程序先停止,然后重新启动 Microsoft Exchange 搜索索引器 (MSExchangeSearch) 服务:

    1. 单击“开始”,指向“管理工具”,然后单击“服务”。

    2. 在“服务”中,右键单击“Microsoft Exchange 搜索索引器”,然后单击“停止”。服务停止后,再次右键单击此服务,然后单击“开始”。

  8. **重新设定搜索目录种子:**在某些情况下,例如搜索目录损坏时,您可能需要对该目录重新设定种子。当需要对搜索目录重新设定种子时,Exchange 搜索会通过在应用程序事件日志中记录条目来通知您。有关对搜索目录重新设定种子的详细信息,请参阅对搜索目录重新设定种子

 © 2010 Microsoft Corporation。保留所有权利。