How to perform an online integrity check on exchange 2010

Note: this is an ONLINE integrity check. To perform an OFFLINE integrity check (which may be needed for more extensive types of corruption), investigate using the “ESEUTIL” program.

  1. Open the Exchange 2010 shell
  2. Run the following command to DETECT corruption on the ENTIRE database:
    1. New-MailboxRepairRequest -Database <databasename> -CorruptionType ProvisionedFolder,SearchFolder,AggregateCounts,Folderview – DetectOnly
  3. To run the check against a specific mailbox (the administrator user is shown here), use the following syntax:
    1. New-MailboxRepairRequest -Mailbox administrator -CorruptionType ProvisionedFolder,SearchFolder,AggregateCounts,Folderview – DetectOnly
  4. The -DetectOnly flag stipulates whether to just DETECT corruption, or FIX it. If you choose to FIX corruption, ensure that you have taken a backup of the database in question just in case the repair process fails (eg. if you are attempting to repair the database on faulty hardware).
  5. The integrity check/repair process is managed through the Windows Event Log, via the “MSExchangeIS Mailbox Store” event source.
  6. Take note of the request ID generated – that way you can track progress.Here is an example of the event log entry showing the integrity detect/repair process starting:
    1. Database level online integrity check for request 158f63ee-4eb6-44ca-887e-88f6bf9179f0 started:
      Database=CSEmails
      Flags=Detect, Fix
      Tasks=SearchFolder, View, AggregateCount, ProvisionedFid
  7. Here’s the output from when it completes (completed successfully in this example):
    1. Online integrity check for request 158f63ee-4eb6-44ca-887e-88f6bf9179f0 completed successfully.

Troubleshooting tips/further reading

  • Don’t run the repair on faulty hardware! See our guide on checking the event log for hardware problems – if your hardware stack is not healthy, the repair process will cause further corruption and may make your situation worse.
  • There are some articles kicking around the web regarding running eseutil against the exchange database in offline mode. This could be another option for fixing your exchange database, however we have not documented this in the scope of this article.
  • New-MailboxRepairRequest – Microsoft technet article with command examples