25 marca 2013

Porządkowanie baz danych – Exchange 2010

Bazy Exchange mają jedną podstawową wadę – nie zmniejszają automatycznie swojego rozmiaru. Kiedy zauważamy, że zajętość dysku zbliża nam się do 100%, staramy się “odchudzić” bazę przez przerzucenie kilku skrzynek do innej bazy, na mniej zajętym dysku. I co? I nic.

Po pierwsze, Exchange domyślnie po przeniesieniu zostawia skrzynkę w strukturze starej bazy jako odłączoną (disconnected) – jeżeli nie zmienialiśmy ustawień, to będzie ona czekała 30 dni na usunięcie. Możemy to przyspieszyć, wymuszając usunięcie skrzynki ze struktury bazy danych (oczywiście z powershella, opcja Purge w konsoli graficznej zniknęła w wersji Exchange 2010). Skrzynka taka ma status SoftDeleted, więc wykonując komendę get-mailboxstatistics możemy odszukać wszystkie takie skrzynki w bazie i szybko usunąć (np. w bazie MBX01 komendą poniżej):

Get-MailboxStatistics -Database MBX01 | where {$_.DisconnectReason -eq “SoftDeleted”} | foreach {Remove-StoreMailbox -Database $_.database -Identity $_.mailboxguid -MailboxState SoftDeleted}

Po wykonaniu tej operacji dane zostaną z bazy usunięte, co powinno skutkować zwiększeniem ilości wolnej przestrzeni w bazie (tzw. whitespace), co można sprawdzić we właściwościach bazy danych:

Get-MailboxDatabase MBX01 -Status | FL AvailableNewMailboxSpace

Nadal jednak baza ma pierwotny rozmiar. Co nam pozostaje? Defragmentacja Offline pliku bazy? To zadanie długotrwałe, a ponadto na czas wykonywania wymaga odmontowania bazy, co odetnie dostęp do wszystkich skrzynek w naszej bazie. Microsoft od dłuższego czasu sugeruje prostsze, choć na pozór bardziej złożone działanie – utworzenie nowej bazy danych, przeniesienie wszystkich skrzynek do nowej bazy i skasowanie starej bazy. Bardzo ciekawie opisuje to Ross Smith IV na blogu grupy produktowej Exchange. W ten sposób użytkownicy nie utracą na długie godziny dostępu do swojej skrzynki, zwolnimy przestrzeń dyskową, a przy okazji zrobimy trochę porządków. Należy pamiętać o tym, że jeżeli korzystamy z Exchange 2010 w wersji Standard, a mamy już 5 baz danych, to w trakcie takiej operacji jedną z baz musimy odmontować (możemy utworzyć więcej niż 5 baz, ale próba zamontowania 6 bazy zostanie zablokowana przez system), na czas przenoszenia danych.

Brak komentarzy: