Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Hey everyone,
I'll keep this post short because time is precious if you're looking at this post :) I was working on a case troubleshooting excessive database growth. We leveraged this blog to start our troubleshooting: https://blogs.technet.com/b/exchange/archive/2013/04/18/troubleshooting-rapid-growth-in-databases-and-transaction-log-files-in-exchange-server-2007-and-2010.aspx. After a while, we came to realize it was database bloat aka database space leak. Leveraging https://blogs.technet.com/b/dblanch/archive/2009/04/24/tracking-down-exchange-2007-database-bloat.aspx, we did an "eseutil /ms /v" to grab a verbose space dump of the database. How do you interpret the space dump to find out which mailbox is bloated? Debug/escalation engineer Bill Long teaches us how.
First, the output will show us how much space the database occupies on disk:
******************************** SPACE DUMP *****************************************
Name Type Owned(MB) %OfDb %OfTable Avail(MB) Avail%Tbl
=====================================================================================
.\OldDatabase.edb Db 457888.000 100.00% 4.813
You can search through for the "big" entries - the ones that take up a significant portion of the database. In our case, we see this entry:
Body-a9d-13D2471 Pri 84896.000 18.54% 100.00% 48.563 0.06%
[Long Values] LV 83655.844 18.27% 98.54% 10.688 0.01%
This is saying that a mailbox is taking up 84896MB (18.54%) of the database. We can find out whose mailbox by searching for the mailbox identifier "a9d-13D2471" in the output from: Get-MailboxStatistics | Export-Csv c:\temp\mailboxStats.csv. In our case, it maps to a mailbox whose TotalDeletedItemSize is 304MB and TotalItemSize is 576MB for a total size of 880MB. Now how do we reclaim the leaked space?
- Move the mailbox to a different database with New-MoveRequest.
- Find the GUID of the deleted mailbox: Get-MailboxStatistics -Database OldDatabase | where {$_.disconnectReason -eq "SoftDeleted"} | fl DisplayName,Disconnect*,LegacyDN,MailboxGuid
- Purge the mailbox in the old database with: Remove-StoreMailbox -Database OldDatabase -Identity mailboxGuid -mailboxState SoftDeleted -confirm:$false
This post only offers immediate relief for one particular scenario. If you need more information or assistance, please open a case with Microsoft Support.
Hope this helps,
Matt
edit: Bill Long wrote a blog post himself discussing database bloat in Exchange 2010. He also has a great script that helps identify the problem user(s).