This post is also available in: angielski
W Exchange 2010 każda baza skrzynek posiada coś takiego jak White Space czyli wolną przestrzeń zawartą wewnątrz bazy, która to przestrzeń jest zajmowana w przypadku przyrostu skrzynek lub tworzenia nowych skrzynek w bazie. Dzięki temu, podczas tworzenia skrzynek w bazie lub podczas ich przyrastania, najpierw zajmowana jest ta przestrzeń, a dopiero w przypadku jej braku powiększany jest rozmiar samego pliku bazy .edb.
Każdy z nas raczej dba o to żeby pliki bazy .edb nie przyrastały niepotrzebnie, ponieważ podczas usuwania skrzynek z bazy pliki te same nie maleją. Aby zmniejszyć ich rozmiar musimy albo przenieść wszystkie skrzynki do innej bazy i wówczas bazę źródłową skasować i założyć od nowa albo ją odmontować i poddać defragmentacji. Więcej o zmniejszaniu rozmiaru bazy możecie przeczytać tutaj:
Microsoft Exchange 2010 zmniejszenie rozmiaru bazy
Czasami gdy widzimy, że ilość wolnego miejsca (white space) w bazie jest już bardzo mała, wówczas możemy to miejsce zwiększyć poprzez:
- przeniesienie kilku skrzynek do innej bazy gdzie jest wolne miejsce
- wymuszenie usunięcia wyłączonych skrzynek
- wymuszenie usunięcia kopii skrzynek (soft deleted), które pozostały po przeniesieniu ich do innej bazy
Exchange 2010 sprawdzenie AvailableNewMailboxSpace (white space) w bazie:
Ilość dostępnego wolnego miejsca (AvailableNewMailboxSpace) we wszystkich bazach na serwerze MBX1 możemy sprawdzić poniższym poleceniem:
Get-MailboxDatabase -server MBX1 | select Name, DatabaseSize, AvailableNewMailboxSpace
lub jeżeli chcemy sprawdzić dostępne miejsce w bazie DB01:
Get-MailboxDatabase DB01 | select Name, DatabaseSize, AvailableNewMailboxSpace
Jeżeli w dniu dzisiejszym wyłączaliśmy jakieś skrzynki i chcemy je zobaczyć w disconnected mailboxes wówczas musimy ręcznie wymusić uruchomienie agenta czyszczenia baz serwera Exchange.
W tym celu aby zostały sprawdzone wszystkie bazy serwera MBX1 wpisujemy poniższe polecenie:
Get-MailboxDatabase -server MBX1 | Clean-MailboxDatabase
Po wykonaniu się polecenia, wszystkie skrzynki wyłączone dzisiaj zostaną oznaczone jako wyłączone i będziemy je mogli znaleźć w konsoli EMC w Disconnected Mailboxes.
Exchange 2010 lista wyłączonych skrzynek:
Posiadając informacje o wyłączonych skrzynkach w danej bazie, możemy się dowiedzieć ile wolnego miejsca w bazie możemy uzyskać w przypadku usunięcia tych skrzynek..
W celu otrzymania listy wszystkich wyłączonych skrzynek znajdujących się w bazach serwra MBX1 wykonujemy:
Get-MailboxStatistics -server MBX1 | where {$_.DisconnectReason -eq "Disabled"} | select DisplayName, @{label="Mailbox Size (MB)";expression={$_.TotalItemSize.Value.ToMB()}}, DisconnectDate, DatabaseName
lub dla pojedynczej bazy ze skrzynkami:
Get-MailboxStatistics -Database DB01 | where {$_.DisconnectReason -eq "Disabled"} | select DisplayName, @{label="Mailbox Size (MB)";expression={$_.TotalItemSize.Value.ToMB()}}, DisconnectDate
Jeżeli nie potrzebujemy listy skrzynek, a jedynie chcemy się dowiedzieć ile jest wyłączonych skrzynek i ile łącznie zajmują miejsca w bazie, wówczas musimy wykonać poniższe polecenie powershell:
Get-MailboxStatistics -Database DB01 | where{$_.DisconnectReason -eq "Disabled"} | %{$_.TotalItemSize.Value.ToMB()} | Measure-Object -sum
lub aby otrzymać jedynie sumę zajmowanego miejsca w bazie:
$(Get-MailboxStatistics -Database DB01 | where{$_.DisconnectReason -eq "Disabled"} | %{$_.TotalItemSize.Value.ToMB()} | Measure-Object -sum).sum
Exchange 2010 Soft-Deleted mailboxes:
Gdy już wiemy jak sprawdzić ilość wyłączonych skrzynek, które znajdują się w bazach serwera Exchange 2010, możemy w ten sam sposób uzyskać informacje o skrzynkach dla których stan DisconnectReason równy jest SoftDeleted.
Stan SoftDelted przypisywany jest skrzynkom które zostały przeniesione do innej bazy. Po przeniesieniu skrzynka przechowywana jest w oryginalnej bazie przez jakiś czas w celu zapewnienia bezpieczeństwa danych.
Listę „kopii” skrzynek, które pozostały po przeniesieniu do innej bazy możemy otrzymać jak w powyższych poleceniach powershell, stosując zamiast Disabled wyrażenie jak poniżej:
$_.DisconnectReason -eq "SoftDeleted"
Exchange 2010 usunięcie wyłączonych skrzynek oraz soft-deleted:
Wiemy już jak sprawdzić ilość dostępnego wolnego miejsca (white space) w bazie Exchange 2010, jak wylistować wszystkie wyłączone skrzynki oraz kopie skrzynek przeniesionych.
W celu szybkiego powiększenia ilości wolnego miejsca w bazie Exchange 2010 musimy usunąć wyłączone skrzynki oraz kopie skrzynek pozostałe po przeniesieniu do innej bazy (soft deleted).
Aby usunąć wszystkie wyłączone skrzynki z bazy DB01, najpierw musimy wylistować wszystkie wyłączone skrzynki i zapisać je do zmiennej $MBXs jak poniżej:
$MBXs = Get-MailboxStatistics -Database DB01 | where {$_.DisconnectReason -eq “Disabled”}
następnie dla wszystkich skrzynek znajdujących się w zmiennej $MBXx musimy wykonać operację kasowania z bazy Exchange 2010 jak poniżej:
$MBXs | foreach {Remove-StoreMailbox -Database $_.database -Identity $_.mailboxguid -MailboxState Disabled -Confirm:$false}
W ten sam sposób możemy usunąć skrzynki ze stanem SoftDeleted wpisując zamiast Disabled – SoftDeleted.
Po usunięciu wyłączonych skrzynek możemy ponownie sprawdzić ilość wolnego miejsca w bazach serwera Exchange 2010:
Get-MailboxDatabase DB01 | select Name, DatabaseSize, AvailableNewMailboxSpace
Czasami jeżeli we właściwościach bazy Exchange 2010 zaznaczymy opcję:
Don’t permanently delete items until the database has been backed up
wówczas wszystkie skrzynki które wyłączyliśmy w dniu dzisiejszym zostaną usunięte dopiero po tym jak wykona się backup danej bazy serwera Exchange 2010.
Natomiast wszystkie skrzynki, które były wyłączone wcześniej, przed wykonaniem się backupu, i jeżeli backup wykonał się prawidłowo a następnie wymusimy usunięcie skrzynek wyłączonych, wówczas wolne miejsce w bazie zostanie natychmiast powiększone o rozmiar usuniętych skrzynek.