I’ll start sharing some PowerShell commands I use in Exchange for my daily administrator task.
AvailableNewMailboxSpace also called database white space is database pages that were previously used to store items and mailboxes that have been deleted and are available for reuse by Exchange to store new mailboxes, items and attachments. This space will be reused as soon as new content will be written to the database and before the database file size grows.
So if you have migrated a lot of mailboxes for balancing purpose or any other reason and wonder why you database is not smaller in file size that’s because database don’t reclaim the file size space back but transfer that to the white space whitch is then used for new content. The only way to shrink the database file size after a large mailbox migration is to run the “ESEUTIL” witch is not recommended especially in DAG scenarios were the rebuild transforms the internal structure of the database, so any of the transactions in the logs cannot be applied if the need occurs to recover transactions through log replay . In cases where a lot data has been removed from a database and a lot of white space remains, rather than performing an offline defragmentation with “ESEUTIL” on the database, you can move the mailboxes online to a new database and delete the original database.
Anyway to view how much database white space you have on your databases run the following cmdlet:
Get-MailboxDatabase -Status | Sort-Object DatabaseSize -Descending | Format-Table Name, DatabaseSize, AvailableNewMailboxSpace