Exchange 2010 Recoverable Items folder TotalDeletedItemsSize issue!
This is a tip to address an issue where Exchange 2010 TotalDeletedItemsSize remains unaltered after trying to empty it out.
As per TechNet:
Clean Up the Recoverable Items Folder: http://technet.microsoft.com/en-us/library/ff678798(v=exchg.141).aspx
Search-Mailbox “username” -SearchDumpsterOnly –DeleteContent
Should do it but seems like it won’t clear TotalDeletedItemsSize
Use MailboxStatistics cmdlet to confirm this.
To clear this, we need to clear the Calendar Version Logging!
From TechNet blog-
The recovery items folder has its own root folder and also contain the following sub-folder.
Deletions: This subfolder contains all items deleted from the Deleted Items folder.
Versions: If either litigation hold or single item recovery is enabled, this subfolder contains the original and modified copies of the deleted items. This folder isn’t visible to end users.
Purges: If either litigation hold or single item recovery is enabled, this subfolder contains all items that are hard deleted. This folder isn’t visible to end users.
Audits: If mailbox audit logging is enabled for a mailbox, this subfolder contains the audit log entries.
Note that the RecoverableItemsRoot contains Calendar Version changes, which are needed for calendar diagnostics, these changes are stored when a user updates an appointment to calendar or when a meeting organizer sends meeting updates to attendees.
Calendar Version Logging is the process by which calendar changes that occur within a mailbox are saved via copy-on-write. Calendar Version Logging was introduced in Exchange 2010 to help troubleshoot and repair calendar reliability issues.
The design of Calendar Version Logging is to create a log every time a calendar item has been changed. These logs provide a history of the meeting. You can use the Get-CalendarDiagnosticLog cmdlet to review the history and determine which clients performed a destructive action. The second use for Calendar Version Logging is by the Calendar Repair Assistant, which uses the logs when trying to determine the history of a given calendar item for inconsistency detection.
Calendar Version Logging is enabled by default on mailboxes in Exchange 2010. You can disable or enable this on a mailbox via the CalendarVersionStoreDisabled property. Note, the property name is CalendarVersionStoreDisabled, so the default value of $false means that Calendar Version Logging is enabled by default. Depending on the mailbox configuration, a different process is followed for storing copies of the calendar items:
- If the mailbox is not enabled for Single Item Recovery or Litigation Hold, then stripped versions of calendar items are maintained in the root of the Recoverable Items folder for 120 days. The stripped versions (body and non-first level or non-embedded message type attachments are removed) are created using copy-on-write.
- If the mailbox is enabled for Single Item Recovery or Litigation Hold, full copies of the calendar items are maintained in the Recoverable Items\Deletions or Recoverable Items\Versions folders. A stripped version is created via the copy-on-write infrastructure whenever a hard delete operation is performed against the calendar item in the Recoverable Items\Deletions or Recoverable Items\Versions folders. This stripped version is placed in the root of the Recoverable Items folder and kept for 120 days. The only time a stripped version is not created is when the item’s age in the Recoverable Items\Deletions or Recoverable Items\Versions folder is more than 134 days (120 + 14). This can happen if you change the retention period, if the Mailbox Folder Assistant hasn’t been executing, if Litigation Hold was disabled, etc.).
Due to the aforementioned issue with how the copy-on-write logic did not distinguish between flush and Save operations, Calendar Version Logging, in some cases, could consume a large percentage of the Recoverable Items folder quota (and if you recall, the warning threshold is 20GB and the hard quota is 30GB).
The famous iOS 6.1 issues with calendaring also caused excessive growth of this folder.
So, let’s now run the following cmdlet which will clear the Recoverdeleteitems folder.
Set-Mailbox -Identity “ratish” -CalendarVersionStoreDisabled:$True
Start-ManagedFolderAssistant -Identity “ratish”
It would probably be a good idea if you could open the folder using MFCMapi to see the actual contents. To do so:
1.) Provide full access to the mailbox to the account you are using
2.) Go to control panel > mail > profiles > ask for a profile each time outlook opens
3.) Open Outlook > New profile > input appropriate info for mailbox and users alias > UNCHECK “cached exchange mode” > open the users mailbox once w/ Outlook, then close Outlook.
4.) Open MFCMapi (if Outlook is x64, then use x64 of MFCMapi)
5.) Click > Session > Logon and display store table
6.) Select the profile for the user you added.
7.) Double click “mailbox – user”
8.) Expand “Root Container” > right click on “Recoverable Items” and select > open contents table
9.) Give it a min to enumerate all items
10.) Select any unwanted items and right click “delete message”
11.) You can also expand recoverable items and then highlight purge or deletions and open the contents table for those as well.
12.) Then close windows until you get the original one and logoff.
Note that Managed folder assistant is throttled in so far as it runs on a work cycle basis so that each mailbox in a database is processed daily. You shouldn’t run these cmdlets for all mailboxes on a database at the same time. Run in batches of 10 or 20.
Also,
1. Confirm the workcycle is set to 1 day (the default) by running the following Powershell command:
Get-MailboxServer ServerName| fl Name, ManagedFolderWorkCycle
2. On the mailbox server hosting the active database copies, look for event 10027 (MSExchangeMailboxAssistants) in the Application event log. This provides a summary of the number of items deleted during the previous work cycle. It may provide clues as to what is (or is not) happening.
Log Name: Application
Source: MSExchangeMailboxAssistants
Date: 3/26/2013 1:13:38 PM
Event ID: 10027
Task Category: Managed Folder Assistant
Level: Information
Keywords: Classic
User: N/A
Computer: ServerName
Description:
Statistics of MRM expiration at end of this work cycle:
TotalItemsSoftDeleted: 0
TotalItemsPermanentlyDeleted: 1216859
TotalItemsMoved: 0
TotalSizeItemsSoftDeleted: 0 Bytes
TotalSizeItemsPermanentlyDeleted: 13625982941 Bytes – 12GB
TotalSizeItemsMoved: 0 Bytes
TotalItemsWithPersonalTag: 0
TotalItemsWithDefaultTag: 0
TotalItemsWithSystemCleanupTag: 0
TotalItemsExpiredByDefaultExpiryTag: 0
TotalItemsExpiredByPersonalExpiryTag: 0
TotalItemsMovedByDefaultArchiveTag: 0
TotalItemsMovedByPersonalArchiveTag: 0
3. Use perfmon to examine the following counters:
MSExchange Managed Folder Assistant\Size of items permanently deleted (in bytes)
MSExchange Managed Folder Assistant\Items permanently deleted
To get the list of all Mailboxes in a mailbox database, use
Get-MailboxDatabase DBname | Get-Mailbox –ResultSize Unlimited | FT Alias >>.\alias_DB3.txt
Once you complete the step, select a user and run the cmdlet to see if all 4 folders are now emptied.
Get-MailboxfolderStatistics rsn1005 |ft name, ItemsInFolder, FolderSize -AutoSize
All 4 folders should ideally be empty – its not in my case because I haven’t ran it yet.
To get the MailboxSatatistics for all users on a mailbox database, run this
Get-MailboxDatabase DB3 | Get-Mailbox –ResultSize Unlimited | Get-MailboxStatistics |ft DisplayName, DatabaseName, *item* -AutoSize
Again, remember not to throttle the server by running the cmdlet for all users at once. In case if you are reading this article after running all these cmdlets and seeing no success, maybe that is what happened.
CMDlets to run:
Set-Mailbox -Identity “ratish” -CalendarVersionStoreDisabled:$True
Search-Mailbox “ratish” -SearchDumpsterOnly –DeleteContent
Start-ManagedFolderAssistant -Identity “ratish”
You can use the get-Content switch to run in batches of 10 or 20
A special thanks to MVP Tony Murray, Tony Redmond and MSFT Bharat Suneja for their help.
Ratish Nair
MVP Exchange
Team@ MSExchangeGuru
March 30th, 2013 at 5:08 pm
[…] Exchange 2010 Recoverable Items folder TotalDeletedItemsSize issue! – […]
April 1st, 2013 at 8:37 am
[…] Exchange 2010 Recoverable Items folder TotalDeletedItemsSize issue! […]
April 27th, 2013 at 2:24 am
I’ve been trying to remove deleted items for over a week using EMS and EMC without progress; fortunately came across your instructions, which worked! Thanks.
June 6th, 2013 at 6:09 pm
This is great info, im having same issue, but apparently my “archive” mailbox has giant TotalDeletedItems. how can I specifically permanently remove these items from archive and not both mail mailbox and archive. I have used mfcmapi and confirm most of the entries are calendaring related. Im guessing that the retention policies I have in place are archiving the RecoverableRoot as well.. how can I stop this?
August 12th, 2013 at 5:29 pm
Thanks.
I had this issue of a particular mailbox being much larger (about 6 times larger) than what Outlook and the EMC was reporting. After some research, I found out that it was this user’s Recoverable Items folder. I thought my troubles were over – but no. I ran the commands to remove the contents of this folder, but no change in the size of the Recoverable Items folder.
Then, I stumbled across your article. What a relief. As I type this, the Recoverable Itess folder for this user mailbox has gone down from 9Gb, down to about 7Gb. In a little while more, it should be back to zero.
Thanks again.
December 18th, 2013 at 5:51 am
I have been wondering for months why my database has been growing much more than the size of my mailboxes.
I tried to move a 300MB mailbox and it took forever. The move wizard indicated that the mailbox size was 7GB!
Then I checked out the TotalDeletedItemSize folder – 6.7GB!!!!
After implementing your guide, I have reduced the total size back to 300MB.
In order to delete content you have to assign the export import role to a security group: http://technet.microsoft.com/en-us/library/ee633452.aspx
Thank you for this guide!
Chris
January 29th, 2014 at 11:23 am
You deserve a golden statue 50 meters high for this post.
Thank you, you saved me from a lot of pain in…..
February 4th, 2014 at 4:32 pm
If you do not want to make a mistake with the -DeleteContent….you can use the MFA. See below.,,
Get-MailboxFolderStatistics -Identity “mailbox name” | fl fo*, it*
Set-Mailbox “mailbox name” -SingleItemRecoveryEnabled $false -LitigationHoldEnabled $false
Set-Mailbox “mailbox name” -CalendarVersionStoreDisabled $true
Set-Mailbox -Identity “mailbox name” -RetainDeletedItemsFor 00.00:00:00 -UseDatabaseRetentionDefaults $false
Start-ManagedFolderAssistant -Identity “mailbox name”
Get-MailboxFolderStatistics -Identity “mailbox name” | fl fo*, it*
After the /versions folder is clear:
Set-Mailbox “mailbox name” -SingleItemRecoveryEnabled $true -LitigationHoldEnabled $false
Set-Mailbox “mailbox name” -CalendarVersionStoreDisabled $false
Set-Mailbox -Identity “mailbox name” -RetainDeletedItemsFor 17.00:00:00 -UseDatabaseRetentionDefaults $true
Verify all settings are back to normal on the users account:
Get-Mailbox -Identity “mailbox name” | fl
March 19th, 2014 at 9:49 am
Hello Ratish,
works like a charm! Amazing solution.
Exactly as Paolo wrote – golden statue for you. Definitely!
Many thanks!
//BR Jan
June 19th, 2014 at 2:18 pm
Thanks Ratish. This works like a charm. You saved the day again. Had used it a few months back to delete 6.5 million items from the dumpster for a user totalling 30gb (took a few days) and just used it to clear 0.5 million items of 15gb for another user last weekend.
Keep up the wonderful work of sharing easy to understand and use scripts for our daily work.
Cheers
Manoj
October 17th, 2014 at 1:35 pm
Thank you! Fixed on of my user’s locked up mailbox.
October 14th, 2015 at 7:07 am
This article saved my day
many many thanks to Ratish
July 7th, 2016 at 8:53 pm
We’re having this issue with Exchange 2010 SP3, but none of the commands are helping. The items are stuck in the users purges folder and we can’t delete them with MFC Mapi, or using the commandlett. Do we need to give it more time? The worst user has 90Gb of data in the purges folder.
July 8th, 2016 at 10:45 am
Thank you TM! Your method worked, where as using MFCMapi or the -deletecontent switch failed us. I appreciate the comment!
September 8th, 2016 at 1:02 pm
Hi Ratish,
Firstly, Thanks a lot!! Whenever i get stuck with Exchange, your articles save me 🙂 Appreciate the way these articles are written. Keep going.
Thanks
Dilip