Fix Corrupted Content Index Catalog Of A Mailbox Database With Single Copy

Share & Comment

How to fix a corrupted mailbox database content index catalog if you only have a single copy of the database?

Most of the admins are familiar with the cmdlet way of updating a corrupted catalog if you have multiple copies of a database. All we need is to run the command below.

Update-MailboxDatabaseCopy –identity DBname\ServerName –CatalogOnly

You can specify a source server to update the copy from if you wish.

Update-MailboxDatabaseCopy –identity DBname\ServerName –CatalogOnly –SourceServer servername

But, what if we only have a single copy of the database and the content index is corrupted? How do we get it back to a healthy state? All we need is to delete the catalog folder & it’s subfolders after stopping the search service.

In Exchange 2013:

  • Stop the Microsoft Exchange Search and Microsoft Exchange Search Host Controller service. Run Stop-Service MSExchangeFastSearch and Stop-Service HostControllerService if you are into Shell.

Search services in Exchange 2013

  • Browse to where the database files are located on the disk. Along with the database file, you will see a folder with a long string as the name. It will have three sub-folders as well. Delete the main folder along with the sub-folders. This is the folder where the index is stored.

Content index catalog folder in 2013

  • Restart the Microsoft Exchange Search and Microsoft Exchange Search Host Controller service. Run Start-Service MSExchangeFastSearch and Start-Service HostControllerService if you are into Shell.
  • Give it a minute and a new folder will be created and a new index will be built.

In Exchange 2010:

  • Stop the Microsoft Exchange Search Indexer service. Run Stop-Service MSExchangeSearch if you are into Shell.
  • Browse to where the database files are located on the disk. Along with the database file, you will see a folder with “CatalogData-random string” as its name. Delete this folder, which stores the corrupt index.
  • Restart the Microsoft Exchange Search Indexer service. Run Start-Service MSExchangeSearch if you are into Shell.
  • Give it a minute and a new folder will be created and a new index will be built.

You can also use the ResetSearchIndex.ps1 in the scripts directory in 2010. But, the 2013 scripts folder doesn’t have this handy script for some reason!

Share & Comment
Subscribe for Updates
Never miss a blog post again
About the author: Exchange Architect, Blogger, Husband & Dad. I have been in IT for the last 11 years, with Exchange Server becoming the prime area in the last few years. I am active on TechNet forums & Experts Exchange.

15 comments… add one

  1. Kuriachan

    I have the ContentIdexState of Active and passive database copy of a mailbox database in ‘FailedandSupended’ and ‘Crawling’ State respectively.

    What can I do to fix the content Index state of both the database

    Stoping the MSExchangeFastSearch is failing the content index states of other DBs on that server to go on failed state :/

    1. Kuriachan

      Cheers !!! :) This was successfully resolved by suspending all DB on one server and performing the steps in the post and then , when the active copy of DB’s content Index was fixed

      The content index of the passive copy was reseeded with the following command

      Update-MailboxDatabaseCopy QA13-DBName\QA-ServerName -CatalogOnly -DeleteExistingFiles -Confirm:$false

      1. Rajith Jose Enchiparambil

        Thanks for the update Kuriachan. I was offline for a few days and hence the delay in response.

  2. Vasili

    Hello,

    I’ve run into this problem recently and have managed to reset the indexes.

    Is it normal for emails to be unavailable to users during this time? Or should they be available?

    1. Rajith Jose Enchiparambil

      Emails should be available, but the search results wont work from Outlook.

  3. ciprian

    Hi there,
    I have the same situation. I noticed index state was failed, I reseed search index but perf mon crawler is telling me there is one mailbox to be seeded. This lasts from two days now. Also, I noticed error id 4087:
    Failed to move active database ‘Mailbox Database DB1′ from server ‘ExSrv1′. Move comment: Database failover initiated by Responder ‘SearchLocalCopyStatusEscalate’ target resource ‘Mailbox Database DB1′

    Error: An Active Manager operation failed. Error: The database action failed. Error: This operation is not supported on standalone mailbox servers.

    Could you tell me what’s going on? Will crawling process stop? If not, how could I find the one mailbox that is been crawled?

  4. Vivek

    hi

    what if your active database has a corrupt content index? Do you still use the Update-MailboxDatabaseCopy –identity DBname\ServerName –CatalogOnly command if you have othe passive copies or do u manually rebuild the index?

  5. Joe

    I am having this issue now. I have stopped the Exchange Search and Host Search services. I then went to the mailbox database folder and deleted the folder with the long GUID name. I created the ContentSubmitters group and added the Network Service and Administrator via the security tab and gave full access. I then started the services.

    I was hoping to see the index state change to Healthy or at least Crawling then Healthy but it sat at “unkown” for a minute or two before going back to “FailedAndSuspended”.

  6. Steven

    What if that Mailbox Database folder has no subfolder to rename? This process doesn’t seem to work if that folder is non-existent.

    Thanks!

  7. rob

    I have a database folder with 2 mailbox databases and 1 archive database. At the same level as the .edb files I have 5 content index catalog files ending with .single. I don’t know when one to rename/delete so I can reseed the index. How can I match them to the databases?

    1. Hi rob,

      You can delete the files and update the index. It will create a new file.

  8. Joe

    I had an issue where search was missing months of emails. Followed the steps in this article and now everything is indexed correctly in search. Thank you!

    1. Glad to help Joe.

  9. Lee

    I run these cmdlets and follow the instructions to the letter and the catalog still comes up failed and suspended. It returns an error that the object cannot be found on (my domain controller). Any ideas?

    1. Paste the command and error you are getting Lee.

Leave a Comment