Search has an unhealthy copy status for the database
Search has an unhealthy copy status for the database ‘DAG02-02’ on the local server. The last probe error was: The Search catalog is unhealthy for mounted database ‘DAG02-02’. Its status is ‘Failed’ and the content indexing error message is ‘An internal error occurred for the database or its index.’. The attempt to fail over either failed or was throttled. Error from Search service diagnostic information: Microsoft.Exchange.Search.Fast.FastConnectionException: Connection to the Content Submission Service has failed. at Microsoft.Exchange.Search.Fast.FastFeeder.Initialize() at Microsoft.Exchange.Search.Fast.Factory.InternalCreateFastFeeder(ISearchServiceConfig config, String indexSystemFlow, String indexSystemName, String instanceName, Int32 numberOfSessions) at Microsoft.Exchange.Search.Engine.SearchFeedingController.InitializeFastFeederAndWatermarkStorage() at Microsoft.Exchange.Search.Engine.SearchFeedingController.Internal
Sometimes, you may see the above alert on your monitorings system. This is because the Search catalog is not being updated periodically for various reasons. below are some steps you can take if you encounter this issue in your environment.
First of all, Make sure you have all the latest updates installed on your servers and all the prerequisites like .Net frameworks meet.
Check if the Exchange Search service is running fine or not. If not, Start the service. Sometimes you may have a situation where Exchange Search service is running but you get the error in PowerShell while trying to update the search catalog on the remote server. In such cases, just restart the Search service on that remote server and run the Cmdlet again.
Check which databases are having issues in updating catalog.
If you want to search on the particular server, Run Below Cmdlet
Get-MailboxDatabaseCopyStatus -Server “Server Name” | FT Name,ContentIndexState
If you want to check on all the available servers and databases, Run the below Cmdlet
Get-MailboxDatabaseCopyStatus * | FT Name,ContentIndexState
Get-MailboxDatabaseCopyStatus * | where {$_.ContentIndexState -eq “FailedAndSuspended” -or $_.ContentIndexState -eq “Failed”} | Ft Name,ContentIndexState
To Check only Mounted/Active copy of database indexing issues(Index Failed or FailedAndSuspended)
Get-MailboxDatabaseCopyStatus * | where {$_.Status -eq “Mounted” -and $_.ContentIndexState -eq “FailedAndSuspended” -or $_.ContentIndexState -eq “Failed”} | Ft Name,ContentIndexState
Now, We know which are the databases having issues in updating catalog. Lets update them by running below Cmdlet
Get-MailboxDatabaseCopyStatus * | where {$_.Status -eq “Mounted” -and $_.ContentIndexState -eq “FailedAndSuspended” -or $_.ContentIndexState -eq “Failed”} | Update-MailboxDatabaseCopy -CatalogOnly
Alternatively, you can only update the catalog for only Failed Databases.
Get-MailboxDatabaseCopyStatus * | where {$_.ContentIndexState -eq “Failed”} | Update-MailboxDatabaseCopy -CatalogOnly