Note: this tip applies to Exchange Server 2013 Mailbox servers that are not members of a Database Availability Group. For failed content indexes on DAG members refer to this article.
On an Exchange Server 2013 server you may encounter failed content indexes that are preventing end users from being able to run searches in OWA and Outlook.
A failed content index will be visible in the output of Get-MailboxDatabaseCopyStatus:
[PS] C:\>Get-MailboxDatabaseCopyStatus * | ft -auto Name Status CopyQueueLength ReplayQueueLength LastInspectedLogTime ContentIndexState ---- ------ --------------- ----------------- -------------------- ----------------- DB01\EX2013SRV1 Mounted 0 0 FailedAndSuspended DB02\EX2013SRV1 Mounted 0 0 FailedAndSuspended DB03\EX2013SRV1 Mounted 0 0 Healthy DB04\EX2013SRV1 Mounted 0 0 FailedAndSuspended DB05\EX2013SRV1 Mounted 0 0 Disabled
In the example above the content indexes for DB01, DB02, and DB04 are failed.
Other indications of a problem can be seen in the Application event log, for example:
Log Name: Application Source: MSExchangeIS Date: 2/16/2015 11:09:26 AM Event ID: 1012 Description: Exchange Server Information Store has encountered an error while executing a full-text index query ("eDiscovery search query execution on database 191987bf-5e9f-4ba4-b13b-3cadcb9e51f5 failed."). Error information: System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: Internal error while processing request (Fault Detail is equal to An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is: Microsoft.Ceres.InteractionEngine.Component.ProcessingEngineException: Internal error while processing request at Microsoft.Ceres.InteractionEngine.Component.CieProcessingEngine.LogAndRethrowException(Exception e) Log Name: Application Source: MSExchangeFastSearch Date: 2/16/2015 11:06:13 AM Event ID: 1009 Description: The indexing of mailbox database DB02 encountered an unexpected exception. Error details: Microsoft.Exchange.Search.Core.Abstraction.OperationFailedException: The component operation has failed. ---> Microsoft.Exchange.Search.Engine.FeedingSkippedForCorruptionException: "Feeding was skipped for '63fe7551-8100-4e3e-9a3e-4b14744eddb6 (DB02)' due to the state 'Failed', error code: 'CatalogCorruption', failure code: '2400519', failure reason: 'Failed to initialize FastServer: Generation mismatch: 0 < GID[82381] [IndexName=63FE7551-8100-4E3E-9A3E-4B14744EDDB612.Single]'." at Microsoft.Exchange.Search.Engine.SearchFeedingController.InternalExecutionStart() at Microsoft.Exchange.Search.Core.Common.Executable.InternalExecutionStart(Object state) --- End of inner exception stack trace --- at Microsoft.Exchange.Search.Core.Common.Executable.EndExecute(IAsyncResult asyncResult) at Microsoft.Exchange.Search.Engine.SearchRootController.ExecuteComplete(IAsyncResult asyncResult)
To rebuild a failed content index we first need to stop the search services on the Exchange server. Not
that this may impact searches for other healthy databases, and the rebuilding process can also create a
significant load on the server, so you may wish to do these steps outside of normal business hours.
Stop the following services:
- Microsoft Exchange Search Host Controller
- Microsoft Exchange Search
[PS] C:\>stop-service MSExchangeFastSearch [PS] C:\>stop-service HostControllerService
Navigate to the location of the content index for the database. This will be the same folder that the database file is located in. For example, DB01 is located in F:\DB01\.
[PS] C:\>Get-MailboxDatabase DB01 | select EdbFilePath EdbFilePath ----------- F:\DB01\DB01.edb
The content index is stored in a folder named for the GUID of the database.
Delete the folder. Repeat the same steps to delete the folder for any other failed content indexes you’re also dealing with at the time.
Then start the search services again.
[PS] C:\>start-service MSExchangeFastSearch [PS] C:\>start-service HostControllerService
The content indexes will be rebuilt, which can take quite a while to complete depending on the amount of data in the databases.
Eventually you should find that your content indexes are healthy again.
[PS] C:\>Get-MailboxDatabaseCopyStatus * | ft -auto Name Status CopyQueueLength ReplayQueueLength LastInspectedLogTime ContentIndexState ---- ------ --------------- ----------------- -------------------- ----------------- DB01\EX2013SRV1 Mounted 0 0 Healthy DB02\EX2013SRV1 Mounted 0 0 Healthy DB03\EX2013SRV1 Mounted 0 0 Healthy DB04\EX2013SRV1 Mounted 0 0 Healthy DB05\EX2013SRV1 Mounted 0 0 Disabled
This article How to Fix a Failed Database Content Index for Exchange Server 2013 is © 2015 ExchangeServerPro.com
Get more Exchange Server tips at ExchangeServerPro.com