Exchange Mailbox Databases

Exchange 2010 SP3

Database copy info

Get-MailboxDatabaseCopyStatus -Identity "DB*"
Get-MailboxDatabaseCopyStatus -Identity "DB 2"
Get-MailboxDatabase 'DB*'| fl server, databaseCopies, activationPreference
Get-MailboxDatabase 'DB*'| fl name, activationPreference
Get-MailboxDatabaseCopyStatus -Server srv01 | Sort-Object -Property Status| ft mailboxserver,DatabaseName, status,Copyqueuelength,Replayqueuelength, ContentIndexState, ActiveCopy,ErrorMessage -AutoSize
Get-MailboxDatabaseCopyStatus "*" | Sort-Object -Property Status| ft mailboxserver,DatabaseName, status,Copyqueuelength,Replayqueuelength, ContentIndexState, ActiveCopy,ErrorMessage -AutoSize

Database info

Get-MailboxDatabase -Status | Select ServerName,Name,DatabaseSize | fl
Get-Mailbox | Group-Object -Property:Database | Select-Object name, count

Queue

Get-TransportServer | Get-Queue | ft -auto

Some sorting

Get-MailboxDatabase "DB 1" | Get-MailboxStatistics | Sort totalitemsize -desc | ft displayname, totalitemsize, itemcount
Get-MailboxDatabase "DB 2" | Get-MailboxStatistics | sort lastlogontime -descending| ft Displayname,last*
Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Select DisplayName,StorageLimitStatus,@{name="TotalItemSize (MB)";expression={[math]::Round((($_.TotalItemSize.Value.ToString()).Split("(")[1].Split(" ")[0].Replace(",","")/1MB),2)}},@{name="TotalDeletedItemSize (MB)";expression={[math]::Round((($_.TotalDeletedItemSize.Value.ToString()).Split("(")[1].Split(" ")[0].Replace(",","")/1MB),2)}},ItemCount,DeletedItemCount | Sort "TotalItemSize (MB)" -Descending | Export-CSV "C:\Users\admin\Mailboxes.csv" -NoTypeInformation
Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Select DisplayName,StorageLimitStatus,@{name="TotalItemSize (MB)";expression={[math]::Round((($_.TotalItemSize.Value.ToString()).Split("(")[1].Split(" ")[0].Replace(",","")/1MB),2)}},@{name="TotalDeletedItemSize (MB)";expression={[math]::Round((($_.TotalDeletedItemSize.Value.ToString()).Split("(")[1].Split(" ")[0].Replace(",","")/1MB),2)}},ItemCount,DeletedItemCount | Sort "TotalItemSize (MB)" -Descending | ft -auto

Move the active copy

Move-ActiveMailboxDatabase "DB 3" -ActivateOnServer server1 -MountDialOverride:None

Activation Preference

Set-MailboxDatabaseCopy -identity 'DB 1\server1' -ActivationPreference 1

Failed database

Suspend-MailboxDatabaseCopy -Identity "DB 1\server1"
Update-MailboxDatabaseCopy -Identity "DB 1\server1" -SourceServer server2 -DeleteExistingFiles

Get-MailboxDatabaseCopyStatus | fl name, contentindexstate
Update-MailboxDatabaseCopy -Identity "DB 3\server3" -SourceServer server2 -CatalogOnly

Backup status

Get-MailboxDatabase -Identity "DB 1" -Status | fl *backup*

To suspend a database copy

Suspend-MailboxDatabaseCopy -Identity "DB 1\server1" -ActivationOnly
Resume-MailboxDatabaseCopy -Identity "DB 1\server1"
Get-MailboxDatabaseCopyStatus "DB*" | ft servername,name,ActivationSuspended

Get the number of mailboxes per database

(get-mailboxdatabase) | foreach-object {write-host $_.name (get-mailbox -database $_.name).count}
Get-MailboxDatabase -Status | select ServerName,Name,DatabaseSize

To find the mailboxes with the highest number of items in a databse

Get-Mailbox -database "DB 2" | Get-MailboxStatistics | Sort-Object ItemCount -descending |Select-Object DisplayName,ItemCount,@{name="MailboxSize";exp={$_.totalitemsize}} -first 10 | Convertto-Html | out-File c:\Users\user1\Desktop\mbx.htm

and for a server:

Get-Mailbox -Server "server1" | Get-MailboxStatistics | Sort-Object TotalItemSize -Descending | Select-Object DisplayName,@{Label="Size(Gb)"; Expression={$_.TotalItemSize.Value.ToGb()}} -First 10 | ft -auto

Exclude specific database for automatic provisioning

Set-MailboxDatabase -Identity "DB 4" -IsExcludedFromProvisioning $true

To re-enable the mailbox database for automatic provisioning set the value back to $false

Set-MailboxDatabase -Identity "Mailbox Database 04" -IsExcludedFromProvisioning $false

To remove database copies

Remove-MailboxDatabaseCopy -Identity "DB 1\server1"
Remove-MailboxDatabaseCopy -Identity "DB 2\server2"