вторник, 7 июля 2015 г.

Дефрагментация в Exchange 2013

Недавно встала проблема с нехваткой места на сервере, где расположен Exchange 2013. Было принято решение провести дефрагментацию базы данных почтовых сообщения, так как очень много пользователей было удалено и их почтовых ящиков.
В данной статье я опишу все шаги необходимые сделать для дефрагментации.
Что бы посомтреть сколько есть места в самой базе и какую из баз дефрагментировать, если у вас несколько баз, выполните команду

Get-MailboxDatabase -Status | ft name,databasesize,availablenewmailboxspace -auto

Отключаем нужную базу:
Dismount-Database -Identity Имя_базы

Если выходит ошибка что невозможно найти базу, то необходимо указать полный путь либо перейти в папку, в котрой лежит файл базы.

Так же нобходимо заранее побеспокоиться о достаточном свободно пространстве на том же диске, либо на другом или в сетевой папке. Свободного места необходмо примерно 110% от занимаемого места файлом базы.
Для использования другого диска или сетевой папки необходимо выполнить команду с параметром:

eseutil /d полное_имя_файла_базы.edb /t путь

где путь - полный путь до диска или сетевой папке с указанием имени файла.

После выполнения дефрагментации необходимо примонтировать базу обратно:

Mount-Database -Identity имя_базы

Пример:
Пусть имя базы - MBHO01, храниться база на диске E:/EchangeBase
Команды будут выглядеть следующим образом:
1. Отмонтировать базу - ismount-Database -Identity MBHO01
2. Выполняем дефрагментацию и временый файл будет храниться на отдельном диске (G) в папке tempbase - eseutil /d E:/EchangeBase/MBHO01.edb /t G:/tempbase/MBHO01/edb
3. Монтируем базу - Mount-Database -Identity MBHO01

По времени, база размером в 500 Гб заняло примерно 6 часов