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

MS Exchange

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!

Other Popular Articles


MS Exchange

Keep Track Of Exchange 2013 Database Failovers

MS Exchange

Playing With Exchange 2013 Performance Logs

MS Exchange

Tackle .Net Framework 4.6.1 On Exchange Servers

32 thoughts on “Fix Corrupted Content Index Catalog Of A Mailbox Database With Single Copy”

  1. We do have Two CAS & 2 Mailbox Servers , where all the Content Index are in Failed state on both Mailbox Server, even after trying Update-MailboxDatabaseCopy -Identity “Database\EX2” -Catalogonly. (Note: EX1 is Active & EX2 is passive mailbox server)

    We got the Error Stating that “A source Side operation Failed. Error An error accurred while performing the seed opertion.
    Error: An error occured while updating the search catalog files from server “EX1″ to EX2″ Error: Can’t Dismount the search catalog.”

    Reply
  2. Hi,
    I have the same problem and have by now tried PS, Stopping service and removing folder, to suspend the copy DB and resume. Yesterday I had 5 DB with FailedAndSuspended Index state.
    Now I have 3 and on these 3 non of this 3 methods have worked, they always return to the index state: FailedAndSuspended.
    Last Error Message in PS
    ————————————————————————————
    WARNING: Seeding of content index catalog for database ‘UNF MBX 1’ failed. Please verify that the Microsoft Search
    (Exchange) and the Host Controller service for Exchange services are running and try the operation again. Error: The
    seeding operation failed. Error: An error occurred while performing the seed operation. Error: An error occurred while
    updating the search catalog files from server ‘SOBEX13.sobernet.net’ to ‘SOBEX13.sobernet.net’. Error: A transient
    exception from Exchange Search was encountered. Error: -1..
    [PS] C:\Windows\system32>
    ———————————————————————————
    And before you ask, both Search services are running.
    I have gotten this message several times, I have tries restarting the services, stopping and starting them and even restarted the server (a lot more then once).
    Right now I’m dabateing with my self if I should be as drastic as to through away the copies, rename the cataloges, restart and then ad new DB copies.
    Du you have any idea’s before I take such a drastic step ?

    Reply
    • I have the same problem. We just had a failed member of a 2 node DAG cluster. We rebuilt the server then reinstalled exchange. We recovered the server, resynced the dbs, and now 1 of our 5 is doing this thing where it stays in FailedAndSuspened. I can’t sign off on the restoration until it is resolved. :(

      Reply
  3. The Exchange Mailbox database was in carwling state and sometime after got failed.

    Have used Update-Mailboxdatabasecopy -Identity DB1\SeverName -CatalogOnly to bring back the ContentIndexingState to helathy.

    The Command was completed successfully but still the Indexing state is failed.

    Then used Update-Mailboxdatabasecopy -Identity DB1\SeverName -CatalogOnly -SourceServer ServerName

    but states the previous seeding is already in progress and found the SeedingSource was from a Lagged Passive database copy so unable to bring up the Indexing state to helathy

    Site A – 1 Active, 1 Passive and 1 Lagged Copy
    DR – 1 Passive Copy

    Reply
  4. Experienced the same issue with a corrupted content index catalog.
    I’m on Exchange 2013 here and followed your guide step by step, except deleting the main folder. I just added OLD to the name…just in case :)

    Crawling took a couple of hours and users weren’t able to use the search function.

    However, content index state is now back to ‘Healthy’ and service is back up and running.

    Thanks for your post Rajith, really appreciate it

    Reply
      • Rajith:

        I’m not sure if I did a bad thing or not. There was nothing wrong with my Content Index-State but I thought I needed to rebuild it because it was taking over 15GB of space. I stopped the Exchange Indexing Service on the active server, deleted the Catalog folder for one of my mail databases, then restarted the Exchange Indexing Service.

        I did the same thing for the passive server.

        Now both sides are saying Crawling for that particular database’s Content Index-State.

        How long do I have to wait for it to become Healthy again? Did I damage anything?
        Also am I able to run full backups and truncate transaction logs while it is still Crawling?

        Reply
  5. Thank you this seems to have fixed my stalled mailbox migration. I did the MS KB article about creating the ContentSubmitters AD group and applying network services full security on it, but that didn’t fix the issue. Your procedure worked in Exchange 2013. I had a mailbox copy stalled Relinquished something or other it said. Once I did your procedure it changed to copying items.

    I still see in Get-ServerHealth that SearchCopyStatusH… for each DB (I have 4) is in Unhealthy state. Is this because search has yet to complete a full index?

    Reply
  6. I was following the mentioned steps. But i didn’t find any index folder in database folder.
    Even if it is missing or it was deleted, why it was not recreated again? Please advise.

    Reply
  7. 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?

    Reply
  8. 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!

    Reply
  9. 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?

    Reply
  10. 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!

    Reply
  11. 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”.

    Reply
  12. 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?

    Reply
  13. 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?

    Reply
  14. 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?

    Reply
  15. 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 :/

    Reply
    • 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

      Reply

Leave a Comment