Migracja skrzynek pomiędzy bazami

Aby wyświetlić wszystkie bazy jakie mamy na serwerze Exchange należy wydać polecenie

Get-MailboxDatabase | select Name,DatabaseSize,AvailableNewMailboxSpace

Po wydaniu powyższego polecenia nie otrzymamy jednak informacji o wielkości bazy i ilości wolnego miejsca. Aby wyświetlić te dane należy wykonać polecenie

Get-MailboxDatabase -Status | select Name,DatabaseSize,AvailableNewMailboxSpace

W przypadku gdybyśmy chcieli te dane wyeksportować np. do pliku csv w celu dalszej obróbki prezentacja danych nie będzie zbyt pomocna. Możemy jednak sformatować wynik

Get-MailboxDatabase -Status | sort name | select name,@{Name='DB Size (Gb)';Expression={$_.DatabaseSize.ToGb()}},@{Name='Available New Mbx Space Gb)';Expression={$_.AvailableNewMailboxSpace.ToGb()}}

Po wykonaniu powyższego polecenia może okazać się że w niektórych bazach większość to wolne miejsce np. po migracji do usługi online. Utrzymywanie takich baz powoduje, że marnuje się dużo miejsca na macierzach oraz wydłuża się czas backupów. W takim przypadku skrzynki pocztowe należy zmigrować do innych baz a inne pousuwać.
Aby wyświetlić jakie skrzynki pocztowe znajdują się w danej bazie należy wydać polecenie:

Get-Mailbox -Database DB01 -resultsize unlimited

Aby zmigrować wszystkie skrzynki pocztowe z bazy DB01 do bazy DB03 należy wydać polecenie

Get-Mailbox -Database db01|New-MoveRequest -TargetDatabase DB03

Przed wykonaniem migracji dobrze jest wyłączyć indeksowanie na bazie docelowej

Set-MailboxDatabase DB03 -IndexEnabled:$false

W bazie oprócz skrzynek użytkowników mogą znajdować się także inne dane które także należy zmigrować

Public folder

Get-Mailbox -Database db01 -PublicFolder | New-MoveRequest -TargetDatabase DB03

Arbitration mailbox

Get-Mailbox -Database db01 -Arbitration | New-MoveRequest -TargetDatabase DB03

Audit Log mailbox

Get-Mailbox -Database db01 -AuditLog | New-MoveRequest -TargetDatabase DB03

Monitoring mailbox

Dobrą praktyką jest aby nie migrować skrzynek monitorujących pomiędzy bazami danych. Najlepszym rozwiązaniem jest wyłączenie tych skrzynek w bazie źródłowej.

Get-Mailbox -Database db01 -Monitoring | Disable-Mailbox -confirm:$false

Aby wyświetlić status migracji należy wydać polecenie

Get-MoveRequest|Get-MoveRequestStatistics

Po zakończeniu migracji włączamy indeksowanie na bazie

Set-MailboxDatabase DB03 -IndexEnabled:$true

Ukończone zadania migracji można usunąć

Get-MoveRequest -MoveStatus completed|Remove-MoveRequest -Confirm:$false

Po wykonaniu tych czynności możemy usunąć bazę danych. W pierwszej kolejności należy wyłączyć kopię bazy

Remove-MailboxDatabaseCopy -Identity DB02\EXCH1

Następnie usuwamy bazę

Remove-MailboxDatabase -Identity DB01

Na koniec usuwamy z dysku pliki po usuniętej bazie. W przypadku gdy na danym dysku mieliśmy tylko taką bazę możemy usunąć cały dysk z systemu.
Miejsce na macierzy odzyskane.