At a random moment 4 Exchange database indexes suddenly went corrupt in my DAG in Exchange 2010. A related event that showed up in my eventlog:
Source: ExchangeStoreDB
Event ID: 123
Task Category: Database recovery
Description: The Microsoft Exchange Information Store Database x copy on this server experienced a corrupted search catalog. Consult the event log on the server for other “ExchangeStoreDb” and “MSExchange Search Indexer” events for more specific information about the failure. Reseeding the catalog is recommended via the ‘Update-MailboxDatabaseCopy’ task.
In case of a DAG (Database Availability Group) the solution is very simple, though time-consuming. Of course this depends very much on the size of your databases.
On the Exchange server that encountered the problem, run the following command
Update-MailboxDatabaseCopy -identity “DB1\ExchangeServer1” -CatalogOnly
In my case it took about 30 minutes each database, because of the slow inter-connection between the DAG members. The database was around 250 GB, which resulted in 9GB catalog data being transferred.
In case you have multiple failed databases, it’s best to copy-paste all commands at once in a Powershell shell. Powershell will then execute each command one by one, without user intervention needed.
Update-MailboxDatabaseCopy -identity “DB1\ExchangeServer1” -CatalogOnly
Update-MailboxDatabaseCopy -identity “DB2\ExchangeServer1” -CatalogOnly
Update-MailboxDatabaseCopy -identity “DB3\ExchangeServer1” -CatalogOnly
Other events that you may see in your eventviewer:
Source: MSExchange Search Indexer
Event ID: 120
Description: MSSearch service signaled to pause indexing for database x. FTERequestStatus = ForcePause, FTERequestStatusChangeReason = FatalError. Indexing on this catalog is being paused. It will be resumed once a resume signal is received.
and
Source: MSExchange Search Indexer
Event ID: 107
Description: Exchange Search Indexer has temporarily disabled indexing of the Mailbox Databasex (GUID = 5eeda5cfeebf) due to an error (System.ComponentModel.Win32Exception: RequestStatusChange called with request status ForcePause, reason FatalError, errorHresult 0xC0041801).
and
Source: MSFTESQL-Exchange
Event ID: 4138
Task Category: MSFTESQL Service
Description: An index corruption was detected in component Flush in catalog ExSearch-0a0ff0f2-4dfe-995c. Stack trace is .Component: MicrosoftIndexer
and
Source: ExchangeStoreDB
Event ID: 122
Task Category: Database recovery
Description: The Microsoft Exchange Information Store Database ‘x’ copy on this server experienced a corrupted search catalog. Consult the event log on the server for other “ExchangeStoreDb” and “MSExchange Search Indexer” events for more specific information about the failure. A successful failover restored service.
Greate, the same worked for me.
You can already verify the status of all databases, and update catalog with:
Get-mailboxDatabaseCopyStatus -server “ServerName” | ? {$_.contentidexstate -eq “Failed”} | update-mailboxdatabasecopy – catalogonly, as you can see here:
http://vocemcse.blogspot.com.br/2016/01/como-resolver-event-id-123.html