Exchange 2010 zwiększający się rozmiar bazy

This post is also available in: angielski

 

Jeżeli administrujecie środowiskiem Microsoft Exchange 2010 możecie spotkać się z problemem szybkiego przyrastania baz Exchange (Exchange database size growing).

Jest to problem występujący dość często i spowodowany jest powiększaniem się rozmiaru dumpster-a skrzynek.

Zanim przejdziecie do dalszej części artykułu wyjaśniającego jak rozwiązać problem z powiększaniem się baz serwera Exchange, upewnijcie się, że backup baz serwera Exchange wykonuje się prawidłowo bez żadnych błędów. Jeżeli backup nie wykonuje się prawidłowo wówczas wszystkie elementy usunięte przez użytkownika przeniesione do dumpster-a (recoverable items) oraz wyłączone skrzynki nie będą automatycznie usuwane po zakończeniu backupu.

Jeżeli sprawdzicie wielkość wszystkich skrzynek w bazie serwera Exchange i suma tych wielkości plus suma miejsca whitespace (AvailableNewMailboxSpace) będzie dużo mniejsza niż rozmiar bazy wówczas możecie mieć problem z usuwaniem elementów z dumpster-a czyli recoverable items.

Informacje o tym jak zmniejszyć rozmiar bazy serwera Exchange poprzez przeniesienie skrzynek z bazy do nowo utworzonej bazy lub poprzez wykorzystanie narzędzia eseutil lub poprzez usunięcie wyłączonych skrzynek możecie znaleźć w naszym wpisie:

Microsoft Exchange 2010 zmniejszenie rozmiaru bazy

 

Na stronach Microsoft Support An Exchange Server 2010 database store grows unexpectedly large możecie znaleźć informację że aby rozwiązać problem z przyrastaniem baz Exchange 2010 należy zainstalować aktualizację Rollup 1 dla Microsoft Exchange 2010 SP2.

Problem z niespodziewanym przyrastaniem baz Exchange 2010 może być spowodowany przez:

  • używanie skrzynki do jurnalingu w środowisku Exchange 2010
  • używanie narzędzi firm trzecich do archiwizacji emaili

Problem przyrastania baz Exchange 2010 powodowany jest przez nie usuwanie przez serwis Microsoft Exchange Information Store wiadomości skasowanych ze skrzynek.

Niestety jeżeli używacie do archiwizacji wiadomości znajdujących się w skrzynkach narzędzi firm „trzecich” np.: Symantec Enterprise Vault, wówczas emaile przenoszone do archiwum są usuwane ze skrzynki użytkownika, a pozostawiane są tylko linki do archiwum. Emaile usunięte trafiają do dumpstera skąd powinny zostać opróżnione po czasie retencji np. 14 dni. Niestety tak się nie dzieje i wiadomości pozostają w recoverable items (dumpster) powodując wzrost jego rozmiaru a co za tym idzie powiększanie się rozmiaru bazy.

Jeżeli zainstalujecie aktualizację Rollup 1 dla Exchange 2010 SP2, wówczas najprawdopodobniej problem ten zostanie rozwiązany jednak tylko dla nowo archiwizowanych elementów, natomiast to rozwiązanie nie powoduje usunięcia uprzednio zarchiwizowanych elementów znajdujących się w dumpsterze. 

Więcej informacji na ten temat możecie znaleźć na stronie Symantec Support, link poniżej:
Archiving of an Exchange 2010 database does not generate the expected amount of re-usable whitespace

 

Exchange 2010 jak rozwiązać problem powiększających się baz:

 

Po zainstalowaniu Rollup 1 dla Microsoft Exchange 2010 SP2 musimy sprawdzić czy nasze bazy mają prawidłowo ustawione wartości przetrzymywania elementów usuniętych (deleted items retention), oraz czy poprawnie są zdefiniowane wartości Quoty dla elementów usuniętych.

Aby sprawdzić ustawienie Deleted Items Retention dla bazy Exchange 2010, musimy uruchomić Exchange Mangement Shell (EMS) i wpisać poniższe polecenie:

Get-MailboxDatabase DB01 | fl *retention*

W wyniku otrzymamy informację o czasach retencji dla bazy DB01, dla usuniętych skrzynek (30 dni), usuniętych elementów znajdujących się w recoverable itemsn (14 dni) oraz historii wersji wydarzeń w kalendarzu (7 dni) jak poniżej:

MailboxRetention            : 30.00:00:00
DeletedItemRetention        : 14.00:00:00
EventHistoryRetentionPeriod : 7.00:00:00

Upewnijcie się że dla wszystkich baz obsługiwanych przez serwer powyższe wartości są ustawione.

Następnie sprawdzamy wielkość Quoty ustawionej dla elementów usuniętych:

Get-MailboxDatabase DB01 | fl recoverable*

RecoverableItemsQuota        : 30 GB (32,212,254,720 bytes)
RecoverableItemsWarningQuota : 20 GB (21,474,836,480 bytes)

W tym przypadku również upewnijcie się że wartości te macie ustawione odpowiednio dopasowane do Waszego środowiska Exchange 2010

Pamiętajcie, że wartości RecoverableItemsQuota oraz RecoverableItemsWarningQuota dotyczą rozmiaru przetrzymywanych elementów usuniętych dla danej skrzynki, a nie dla całej bazy. Oznacza to, że każda skrzynka w powyższym przykładzie może posiadać 30GB elementów w recoverable items (Dumpster), a nie cała baza !!!

 

Exchange 2010 rozmiar bazy, whitespace, rozmiar DeletedItems 

Kolejną czynnością jest sprawdzenie rozmiaru bazy, rozmiaru whitespace, oraz rozmiaru elementów usuniętych (DeletedItems) znajdujących się w danej bazie.

Poniżej znajduje się skrypt, który sprawdza wszystkie bazy umieszczone na serwerze MBX01.
Wynikiem działania skryptu jest lista z informacjami: nazwa bazy, rozmiar bazy, ilość whitespace w GB, ilość elementów usuniętych sumarycznie dla wszystkich skrzynek w bazie w GB, ilość skrzynek w bazie, ilość wyłączonych skrzynek w bazie.

Set-AdServerSettings -ViewEntireForest $True

Function New-Array {,$args}
$Report = new-array

$databases = Get-MailboxDatabase -server MBX01 -status | sort name 

foreach ($db in $databases){
 $name = $db.name 
 $Size = $("{0:N2}" -f ($db.DatabaseSize.ToBytes()/1GB))
 $whiteSpace = $("{0:N2}" -f ($db.AvailableNewMailboxSpace.ToBytes()/1GB))
 $DeletedSum = (Get-Mailboxstatistics -Database $db | %{$_.TotalDeletedItemSize.Value.ToBytes()} | Measure-Object -sum).sum
 $DeletedSum = $("{0:N2}" -f ($DeletedSum/1GB))
 $mbxs = Get-MailboxStatistics -Database $db | Where {$_.DisconnectDate -eq $null -and $_.ObjectClass -eq 'Mailbox'} | Measure-Object
 #number of disconnected mailboxes 
 $mbxs_disc = Get-MailboxStatistics -Database $db | Where {$_.DisconnectDate -ne $null -and $_.ObjectClass -eq 'Mailbox'} | Measure-Object

 $tmp = New-Object System.Object
 $tmp | Add-Member -type NoteProperty -name Name -value $name
 $tmp | Add-Member -type NoteProperty -name Size_GB -value $size
 $tmp | Add-Member -type NoteProperty -name WhiteSpace_GB -value $whitespace
 $tmp | Add-Member -type NoteProperty -name DeletedSum_GB -value $DeletedSum
 $tmp | Add-Member -type NoteProperty -name MBXs -value $mbxs.count
 $tmp | Add-Member -type NoteProperty -name MBXs_disc -value $mbxs_disc.count
 $Report += $tmp
}

$Report | ft -auto

Po uruchomieniu skryptu otrzymacie listę jak poniżej:

Name   Size_GB WhiteSpace_GB DeletedSum_GB MBXs MBXs_disc
----   ------- ------------- ------------- ---- ---------
MXDB01  86,13   1,56         1,77           72   0
MXDB02 124,39  10,23         8,54          172   4
MXDB03  99,88   8,94         7,01          173   1
MXDB04 116,26  13,96         7,58          177   5
MXDB05 117,13   8,94         8,31          172   2
MXDB06 125,76  11,37         9,75          174  11

 

Dzięki liście możecie określić, które bazy mają skrzynki z dużą ilością elementów w Recoverable Items (Dumpster).

Jeżeli chcecie wygenerować listę skrzynek znajdujących się w bazie MXDB01, dla których rozmiar TotalDeletedItemSize jest większy niż 100MB, musicie wykonać poniższe polecenie w EMS:

Get-Mailboxstatistics -Database "MXDB01" | select displayname, @{expression = {$_.TotalDeletedItemSize.Value.ToMB()}; label="TotalDeletedItemSize"} | where {$_.TotalDeletedItemSize -gt 100}

 

Otrzymacie listę skrzynek oraz rozmiar DeletedItems.

Jeżeli chcecie znaleźć wszystkie skrzynki na serwerze MBX01, których wartość TotalDeletedItemSize przekracza 200MB musicie skorzystać z poniższego polecenia:

Set-AdServerSettings -ViewEntireForest $True
$Dumpster_Limit_MB = 200

$mbx_dumpster = Get-Mailboxstatistics -server MBX01 | select displayname, @{expression = {$_.TotalDeletedItemSize.Value.ToMB()}; label="TotalDeletedItemSize"}, Database | where {$_.TotalDeletedItemSize -gt $Dumpster_Limit_MB}
Write-Host "Found mailboxes: " $mbx_dumpster.count
$mbx_dumpster | sort TotalDeletedItemSize -Desc | ft -Auto

W wyniku wykonania powyższego polecenia otrzymacie listę skrzynek, rozmiar DeletedItems oraz nazwę bazy w której znajduje się skrzynka.

 

Exchange 2010 dumpster (recoverable items) jak usunąć

Gdy już wiecie jak znaleźć skrzynki ze zbyt dużą ilością elementów w Dumpster możemy przystąpić do usuwania tych elementów w celu zwiększenia ilości whitespace w bazie.

Aby usunąć wszystkie elementy znajdujące się w dumpster dla danej skrzynki uruchamiamy poniższe polecenie:

Search-Mailbox -Identity "John Smith" -SearchDumpsterOnly -DeleteContent -Force:$TRUE

Zastosowanie -Force:$TRUE powoduje akceptacje usunięcia elementów.

Aby usunąć wszystkie elementy znajdujące się w dumpster otrzymane lub wysłane przed określoną datą (01 paź 2012), musimy użyć poniższego polecenia:
Format daty może zależeć od ustawień regionalnych danego serwera.

Search-Mailbox -identity "John Smith" -searchQuery "Received:< $('2012-10-01') or Sent:< $('2012-10-01')" -SearchDumpsterOnly -DeleteContent

 

Aby ponownie sprawdzić sumaryczny rozmiar elementów przetrzymywanych w dumpster dla danej skrzynki, uruchamiamy poniższą komendę:

Get-Mailboxstatistics "John Smith" | %{$_.TotalDeletedItemSize.Value.ToMB()} | Measure-Object -sum

 

Jeżeli chcecie sprawdzić określoną bazę Exchange 2010 i wyczyścić elementy w Recoverable Items wysłane lub odebrane przed określoną datą dla wszystkich skrzynek których wartość TotalDeltedItemsSize jest większe niż 100MB :

Set-AdServerSettings -ViewEntireForest $True

$mbxs = Get-Mailboxstatistics -Database MXDB01 | select displayname, @{expression = {$_.TotalDeletedItemSize.Value.ToMB()}; label="TotalDeletedItemSize"} | where {$_.TotalDeletedItemSize -gt 100}

foreach ($mbx in $mbxs){
 Search-Mailbox -Identity $mbx.DisplayName -searchQuery "Received:< $('2012-10-03') or Sent:< $('2012-10-03')" -SearchDumpsterOnly -DeleteContent -Force:$TRUE
}

 

Po wykonaniu operacji usuwania zbędnych elementów z Dumpster, ponownie możemy sprawdzić ilość dostępnego whitespace dla baz. Wartość whitespace powinna wzrosnąć po usunięciu elementów z Recoverable Items.

Po zakończeniu „czyszczenia” baz, jeżeli wartość whitespace jest duża, możemy zmniejszyć rozmiar bazy (pliku .edb) dzięki czemu będzie on szybciej backupowany.
Sposób zmniejszania rozmiaru bazy opisany został tutaj:

Microsoft Exchange 2010 zmniejszenie rozmiaru bazy

 

 

Print Friendly
Otagowany , , , , , , .Dodaj do zakładek permalink.

7 Responses to Exchange 2010 zwiększający się rozmiar bazy

  1. heniek mówi:

    mam usera u ktorego totaldeleteditemsize wynosi ponad 10GB. Po zastosowaniu Search-Mailbox -Identity „user” -SearchDumpsterOnly -DeleteContent -Force:$TRUE

    wartosc tej zmiennej sie nie zmienia a dostaje informacje typu:
    RunspaceId : 1e3ed658-b731-44cf-a54f-dc0b2da0ec1a
    Identity : domena/user
    TargetMailbox :
    TargetPSTFile :
    Success : True
    TargetFolder :
    ResultItemsCount : 55
    ResultItemsSize : 177.8 KB (182,116 bytes)

    Po kazdym uruchomieniu tej komendy dostaje inne wartosci – czym dluzszy odstep pomiedzy wykonaniami komendy tym wieksza wartosc ResultItemsCount ale to jest tylko promil calosci (ponad 3mln maili). Jak usunac te dane? Czy podczas migracji skrzynki jest mozliwosc pominiecia dumpstera?

    • Remigiusz Szatkowski mówi:

      hm przyznam ze tutaj problemem bedzie to 3mln emaili. Pare razy search-mailbox mi nie wyrabial jak mialem duzo emaili. Sprobuj ograniczyc emaile np do jakiejs daty i usuwac je kolejno dla zakresu dat
      Search-Mailbox -Identity JohnS -searchQuery „Received:< $(‚2013-03-13′) or Sent:< $(‚2013-03-13′)” -SearchDumpsterOnly -DeleteContent -Force:$TRUE czy nie masz moze tez wlaczonego audytu na tej skrzynce ?

      • heniek mówi:

        Dziekuje za odpowiedz. Niestety nie dziala tzn. ResultItemsCount:0 etc. Audytu nie mam wlaczonego na tej skrzynce.

    • Remigiusz Szatkowski mówi:

      dodatkowo wykonaj dla niego cos takiego:
      Get-MailboxFolderStatistics Jsmith | where {$_.foldertype -like „Recoverable*”} | select name, FolderPath, ItemsInFolder, Foldersize
      i sprawdz w ktorym folderze jest tyle emaili.
      jezeli jest to Recoverable Items to czy masz odpowiednio ustawione usuwanie emaili po usunieciu z usunietych po okreslonym czasie i po wykonaniu backupu ?

      • heniek mówi:

        To jest folder Recoverable Items. Backupy wykonuja sie systematycznie (co 2 dni), usuwanie maili na bazie mam ustawione na 14 dni, ale na tej feralnej skrzynce ustawilem na 1 dzien. Opcja usuwanie usunietych maili po backupie jest nie zaznaczona.

  2. Pingback:Recoverable Items czyli Audits, CalendarVersionStoreDisabled, Versions, Deletions - ExchangeBlog

  3. Pingback:Czyszczenie Exchange 2010 « blog Daniela

Odpowiedz na „heniekAnuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>