A corrupt exchange mailbox can happen due to a variety of reasons. These include hardware issues, software issues, issues with shutdown, etc.
As a part of our Server Management Services, we help our Customers to fix mailbox related errors regularly.
Let us today discuss the possible causes and fixes for this error.
What causes a corrupt exchange mailbox?
Exchange users may notice symptoms such as synchronization errors, hang Outlook, incorrect representation of the folder items, wrong item number, search and public folder errors, etc as a part of a corrupt mailbox.
This generally happens when the client incorrectly updates MAPI flags while processing the mailbox folder elements.
Some of the possible causes for this error include:
- Hardware issues
- Software problems
- Viruses
- Abrupt shutdown
- Application malfunction
- User errors
- Error in database objects
- Improper changes in the database schema
Let us now look at the methods to restore a damaged mailbox.
How to fix corrupt Exchange Mailbox?
To fix the corrupt exchange Mailbox, we need to restore the damaged mailbox with any of the methods given below:
- Import data from Outlook running in cached mode to a .PST file. Remove and re-create a new mailbox for “problem” user and finally import data from the PST file to the new Exchange mailbox.
- Complete unmounting of mailbox store and check it with Isinteg.exe (Information Store Integrity Checker) utility which allows us to fix damages in Exchange base on the application level. This method requires quite long mail service downtime for all users whose mailboxes are allocated in a disconnected database.
- Restore the Exchange database from backup, import data from a specific mailbox to PST file, and further data transfer to the re-created mailbox. This method has one disadvantage – all emails which got to the user`s mailbox after the last backup execution time can be lost.
Further, from Exchange 2010 SP1 release, it includes the new PowerShell cmdlet New-MailboxRepairRequest. This helps to restore the logical structure of a damaged mailbox.
Fix corrupt exchange Mailbox with PowerShell cmdlet
The New-MailboxRepairRequest cmdlet allows us to identify logical errors/corruption in the Exchange databases on the application level. Also, it allows us to search and fix the errors for a particular mailbox or all mailboxes in the database.
In addition, when we use the New-MailboxRepairRequest cmdlet, we do not completely take the mail database to offline mode. Only the mailbox for which the verification is being performed will be unavailable.
The syntax of New-MailboxRepairRequest cmdlet is as follows:
New-MailboxRepairRequest -Mailbox -CorruptionType <MailboxStoreCorruptionType[]> [-Archive ] [-Confirm []] [-DetectOnly ] [-DomainController ] [-WhatIf []]
Cmdlet allows us to find and fix the following corruption types in Exchange mailboxes:
- SearchFolder – errors in search folders
- AggregateCounts – check and correction on the number of items in folders and their sizes
- FolderView – incorrect content represented by folder views
- ProvisionedFolder – folder logical structure damage
Additionally, the DetectOnly parameter helps us to just check the mailboxes without making any changes to them. For example,
New-MailboxRepairRequest -Mailbox bob -DetectOnly -CorruptionType ProvisionedFolder, SearchFolder
Further, the following example will analyze the mailbox of the user bob and performs the recovery for all 4 types of damage.
New-MailboxRepairRequest -Mailbox bob -CorruptionType ProvisionedFolder, SearchFolder, AggregateCounts, Folderview
Similarly, to perform the analysis of a database use the syntax below. Replace NYMailBase1 with the actual database name:
New-MailboxRepairRequest -Database “NYMailBase1” -CorruptionType ProvisionedFolder, SearchFolder, AggregateCounts, Folderview
We can trace the result of this command from the taskID (RequestID) or with the help of the Windows event log.
Common EventIDs
The following EventIDs can be useful to track the result of the repair requests:
- 10044 – The mailbox repair request failed for provisioned folders
- 10045 – The database repair request failed for provisioned folders
- 10046 – The provisioned folders repair request completed successfully
- 10047 – A mailbox-level repair request started
- 10048 – The repair request successfully completed
- 10049 – The mailbox or database repair request failed because Exchange encountered a problem with the database or another task is running against the database
- 10050 – The mailbox repair request task skipped a mailbox
- 10051 – The database repair request was canceled because the database was dismounted.
- 10059 – A database-level repair request started
- 10062 – Corruption was detected
- 10064 – A Public Folder repair request started
The Get-MailboxRepairRequest cmdlet allows us to get the status of the mailbox repair task.
One of the features of the New-MailboxRepairRequest cmdlet is that, once we start the mailbox repair process, it cannot be interrupted. Thus, to stop the process, we may need to stop the Exchange Information Store service and unmount the mailbox database.
Further to maintain the performance of the Exchange server, do not run New-MailboxRepairRequest at the same time for a large number of databases.
[Need any further assistance to fix corrupt mailboxes in Exchange servers? – We’re available 24*7]
Conclusion
In short, corrupt mailboxes in the Exchange server happens when the client incorrectly updates MAPI flags while processing the mailbox folder elements. Today, we saw the common situations that can trigger this error and how our Support Engineers fix this error with the PowerShell cmdlet.
0 Comments