Главная Exchange/UC, Без рубрики, Новое Exchange 2010 SP1 – новый подход к “очистке” базы данных
  • Exchange 2010 SP1 – новый подход к “очистке” базы данных

    clip_image002В одной из прошлых статей мы говорили о восстановлении удаленных почтовых ящиков на сервере Exchange. Умение оперативно восстановить удаленные ящики – это хорошо, но иногда этого не достаточно. Бывают ситуации, когда необходимо знать, как выполнить очистку базы данных от «недоудаленных» почтовых ящиков. В этой статье речь пойдет именно о том, как реализовать подобную задачу на серверах Exchange 2007, 2010 и 2010 SP1.

    Сервера Exchange 2007/2010

    Что касается этих серверов, то здесь ни чего сложного нет. Если вы хотите удалить все отключенные ящики на сервере, то необходимо взять стандартный командлет Remove-Mailbox, и применить его по отношению к набору почтовых ящиков. Массив из отключенных ящиков мы можем получить точно таким же способом, как и в статье описывающей восстановление, а именно:

    $DeletedMailbox = Get-MailboxStatistics –Database <Your_MailboxDB> | where {$_.DisconnectDate -ne $null} | Select DisplayName, MailboxGuid, Database

    Если нужно избавиться ещё и от архивных почтовых ящиков сервера Exchange 2007/2010, то добавим условие:

    -and ($_.IsArchiveMailbox -eq $true)

    Естественно, что перед удалением ящиков, очень желательно проверить что конкретно мы удаляем. Для этого полученный массив можно вывести в форме красивого HTML-отчета, о том, как это делается я уже писал ранее здесь.

    Далее применяем командлет Remove-Mailbox к элементам массива DeletedMailbox:

    $DeletedMailbox | ForEach { Remove-Mailbox -Database $_.Database -StoreMailboxIdentity $_.MailboxGuid -confirm:$false }

    clip_image004

    Рис.1: Очистка базы данных от удаленных почтовых ящиков.

    На рис.1 первой командой мы получаем массив из отключенных почтовых ящиков, затем просто выводим этот массив на экран, и следующей командой выполняем непосредственно само удаление. Для проверки результатов мы снова получаем массив из отключенных ящиков первой командой, и снова выводим массив на экран, как вы видите, в последнем случае массив оказывается пустым.

    Сервер Exchange 2010 SP1

    Теперь несколько слов о сервер Exchange 2010 SP1, собственно именно он является виновником написания этой статьи, т.к. я хотел показать новый командлет, который появился с выходом первого сервис пака. Командлет зовут Remove-StoreMailbox и подробнее узнать о нем можно как всегда на страницах TechNet`a. Командлет специально «заточен» под очистку базы данных от отключенных либо удаленных почтовых ящиков. Если вы попытаетесь применить его к действующему почтовому ящику, то получите ошибку.

    Как известно, ящик можно отключить (Disable-Mailbox) либо удалить (Remove-Mailbox). После чего, его состояние можно проверить командлетом Get-MailboxStatistics, у которого в свойстве DisconnectReason будет значиться Disabled либо SoftDeleted соответственно.

    Примечание: Свойство DisconnectReason появилось у почтового ящика только после установки Exchange 2010 SP1

    Командлет Remove-StoreMailbox может обрабатывать отдельно отключенные и отдельно удаленные ящики, такое поведение задается параметром MailboxState, который может принимать значения Disabled или SoftDeleted.

    Для обработки всех почтовых ящиков в базе данных можно воспользоваться той же командой, что и в первой части статьи, только необходимо изменить условие на следующее:

    {$_.DisconnectReason -eq "SoftDeleted"}

    либо соответственно

    {$_.DisconnectReason -eq "Disabled"}

    В результате команда будет иметь вид:

    $DeletedMailbox = Get-MailboxStatistics –Database <Your_MailboxDB> | where {$_.DisconnectReason -eq "Disabled"} | Select DisplayName, MailboxGuid, Database

    $DeletedMailbox | ForEach { Remove-StoreMailbox -Database $_.Database -Identity $_.MailboxGuid –MailboxState Disabled }

    clip_image006

    Рис.2: очистка базы данных от удаленных почтовых ящиков на сервере Exchange 2010 SP1.

    На рис.2, аналогично первому – сначала получаем массив удаленных ящиков (Disabled), далее выводим этот массив на экран, очищаем базу, снова получаем массив удаленных ящиков и убеждаемся, что команда отработала правильно.

    Заключение

    Как мы видим, SP1 для Exchange 2010 затронул очень много компонентов сервера и даже такая процедура, как очистка базы данных не осталась без внимания.

    Алексей Богомолов (Alexx)
    http://alexxhost.ru

Комментарии

  1. На статью не тянет 🙂 больше похоже на заметку, конечно, расписывать отдельный команд-лет некий труд, но я думаю нужно агрегировать сразу несколько параметров, и писать хорошую объемную статью, которую можно прочитать и сделать соответствующие выводы.

  2. Ну не знаю, а я люблю заметки формата “tips and tricks”. Денис, когда ты чегонить напишешь?

  3. Заметки хорошо, но мало 🙂
    Сатью собираюсь написать в ближайшее время, уже даже пару тройку тем выбрал. 🙂 Осталось выделить время на реализацию.

  4. Хорошо когда есть разные статьи. Сам же знаешь, фундаментальные труды over 20000 знаков, многими просто не осиливаются.

  5. Спасибо, отличная статья.