Rebuild the Full-Text Index Catalog of Exchange Database
Recently, I have noticed one issue showing ‘Database Content Index State: FailedAndSuspended’.
Error details: Microsoft.Exchange.Search.Core.Abstraction.OperationFailedException: The component operation has failed. —> Microsoft.Exchange.Search.Core.Abstraction.CatalogReseedException: The component operation has failed.
at Microsoft.Exchange.Search.Engine.SearchFeedingController.DetermineFeederState()
at Microsoft.Exchange.Search.Engine.SearchFeedingController.InternalExecutionStart()
at Microsoft.Exchange.Search.Core.Common.Executable.InternalExecutionStart(Object state)
ResetSearchIndex.ps1helped me to resolve the issue and I would like to describe the steps followed to help you out also.
- Start the Exchange Management Shell.
- If you want to remove the index directories that are associated with specified mailbox databases: ResetSearchIndex.ps1 [-force] <dbname> [<dbname>]
- If you want to remove the index directories that are associated with all mailbox databases: ResetSearchIndex.ps1 [-force] -all
- Stop the Microsoft Exchange Search Service by running the following command: Net Stop MsExchangeSearch
- Delete the full-text index catalog directory.The scripts are located in the \Exchange Server\Scripts directory. Run the following scripts:
- GetDatabaseForSearchIndex.ps1 – The script shows the associated mailbox database names.
Example: GetDatabaseForSearchIndex IndexDirectoryName1 IndexDirectoryName2
- GetSearchIndexForDatabase.ps1 – The script shows the index directories for the specified mailbox database names
Example: GetSearchIndexForDatabase MailboxdatabaseName1 MailboxdatabaseName2 -AllThe following is an example folder name: \CatalogData-b56624f3-bf19-4463-926f-d4705ac3dd08-cc64dd2d-2428-4f12-bba2-79d6d34c4d27Finally, Start the Microsoft Exchange Search Service by running : Net Start MsExchangeSearch
- GetDatabaseForSearchIndex.ps1 – The script shows the associated mailbox database names.
This script is removed from EX2013.
I appreciate your contributions to the Exchange community.
Quick Question:
How do I specify the Exchange_Server and Exchange_Database name?
I currently have an Exchange 2010 Server with an Exchange Server 2013 that is provisioned and ready for Upgrade Migration.
Upon executing the ResetSearchIndex.ps1 [-force] -all
I get the following error…
The operation couldn’t be performed because object ‘[-force]’ couldn’t be found on ‘COMPUTERNAME.DOMAINNAME.COM’.
+ CategoryInfo : NotSpecified: (:) [Get-MailboxDatabase], ManagementObjectNotFoundException
+ FullyQualifiedErrorId : A69298B2,Microsoft.Exchange.Management.SystemConfigurationTasks.GetMailboxDatabase
How can I specify the Database Name and Server within the Power Shell Command?
Thank you very much for visiting my blogs and finding out solutions for the cases.
Actually, you have to use the cmdlet in the following way (-force switch without a square bracket)
ResetSearchIndex.ps1 -force -all
Let me know if you are able to execute the above PS cmdlet successfully
Thank you Chris Taylor for noticing it.
I have also found that 2013 doesn’t support the ResetSearchIndex.ps1 anymore
Manual way of rebuilding the search index can be achieved by the following steps
1. Stop the Windows Services: “Microsoft Exchange Search service”, “Microsoft Exchange Host Controller”
2. Delete the Existing CI catalog folder or move it to a new location.
3. Start the Services: “Microsoft Exchange Search service”, “Microsoft Exchange Host Controller” again
Hope this helps
I ran “ResetSearchIndex.ps1” in Exchange 2010 it performed these steps:
1-MSExchangeSearch service stopped
2-removing: D:\MBXdb0x\CatalogData-de30f6eexxxxxxxxxxxxxxxxxxxxxx
3-MSExchangeSearch service Started
I noticed new “CatalogData” folder is not created yet, any body has clue to why the index folder isn’t created?