Восстановление поврежденного ящика в Exchange 2010/2013 | Windows для системных администраторов

Восстановление поврежденного ящика в Exchange 2010/2013

Статья посвящена достаточно распространенной проблеме, с которой рано или поздно сталкиваются все администраторы Exchange – повреждение (логические ошибки) в почтовом ящике пользователя. Подобные логические ошибки проявляются в таких проблемах, как неправильное представление элементов в папке, их неверное количество, сбои в поиске и т.д. 

Эти ошибки в основном возникают из-за сбоев на стороне клиента, в том случае если  клиент при обработке элементов почтовых папок некорректно обновляет флаги MAPI (особенно часто это происходит с «общими» ящиками, с которыми одновременно работают несколько пользователей). В большинстве случаев  пользователь может даже не подозревать о наличие в его ящике или папках ошибок, т.к. внешне все работает нормально. Но при некоторых ошибках пользователь может испытывать проблемы с доступом к ящику или отдельным папкам, просмотру или удалению писем или папок, хранящихся в ящике и т.п.

При наличии подобных проблем у пользователя администратору Exchange-сервера приходилось прибегать к одному из трех способов восстановления такого поврежденного ящика:

  • Импорту данных из Outlook, запущенного в режиме кэширования в PST файл, удалению и созданию нового почтового ящика «проблемного» пользователя, и, наконец, импорту данных из PST-файла в новый ящик. Данная методика предполагает определенное количество ручных манипуляция на машине пользователя.
  • Полное отключение (размонтирование) почтового хранилища и его проверка утилитой  Isinteg.exe (Information Store Integrity Checker), позволяющей исправить повреждения в базе Exchange на уровне приложения. Данный метод требует довольно длительного простоя почтового сервиса для всех пользователей, чьи ящики располагаются в отключенной базе.
    Примечание. В некоторых случаях, можно попытаться переместить все рабочие ящики пользователей в «здоровую» почтовую базу. В этом случае получится провести проверку целостности хранилища без отключения большого количества пользователя. Однако, эта методика, по разным причинам, не всегда применима.
  • Восстановление почтовой базы Exchange из резервной копии, импорт данных конкретного ящика в PST файл и дальнейший перенос данных в пересозданный ящик. Такая методика имеет недостаток – будут  потеряны письма, которые попали в ящик пользователя после времени выполнения последнего бэкапа.

Описанными выше методиками приходилось пользоваться администраторам Exchange-серверов вплоть до выхода Exchange 2010 SP1, в котором появился более удобный функционал для восстановления логической структуры поврежденного ящика – комадлет   Powershell New-MailboxRepairRequest. Данный командлет позволяет на прикладном уровне найти и исправить логические ошибки в базе Exchange, причем поиск и исправление ошибок может производиться как для конкретного ящика, так и для всех ящиков в базе (последовательно).  Т.е. не требуется целиком переводить почтовую базу в режим offline, а в каждый конкретный момент времени  будет недоступен только один ящик, тот, для которого в данный момент проводится проверка и восстановление целостности. Перед выполнением одного из описанных выше радикальных способов восстановления целостности ящика, определенно стоит попробовать воспользоваться этой командой.

Синтаксис команды таков:

New-MailboxRepairRequest -Mailbox <MailboxIdParameter> -CorruptionType <MailboxStoreCorruptionType[]> [-Archive <SwitchParameter>] [-Confirm [<SwitchParameter>]] [-DetectOnly <SwitchParameter>] [-DomainController <Fqdn>] [-WhatIf [<SwitchParameter>]]

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

  • SearchFolder – поиск и верификация списка папок
  • AggregateCounts – проверка и исправление информации о количестве элементов в папках и их размере
  • FolderView – неверное содержимое, отображаемое представлениями папок
  • ProvisionedFolder – нарушения логической структуры папок

Следующий пример запустит процесс анализа и восстановления ящика пользователя winitpro на все 4 типа повреждений:

New-MailboxRepairRequest -Mailbox winitpro -CorruptionType ProvisionedFolder, SearchFolder, AggregateCounts, Folderview

Так можно запустить поиск ошибок и их восстановление для всех ящиков базы:

New-MailboxRepairRequest -Database “MailBaseMsk1” -CorruptionType ProvisionedFolder, SearchFolder, AggregateCounts, Folderview

Команда выполняется в фоновом режиме и в консоль PowerShell результатов выполнения не выводит.  Отследить ее запуск и восстановление можно по идентификатору задачи RequestID и журналу событий Windows (источник событий MSExchangeIS Mailbox Store: событие EventID 10059 - запуск сканирования, EventID 10048 успешное завершение операции).

exchange - событие окончание восстановления поврежденного ящика

Совет. В  Exchange 2013 появился специальный командлет Get-MailboxRepairRequest, позволяющий узнать статус выполнения операции восстановления ящика.
Примечание. После запуска командлета, процесс восстановления ящика можно прервать, только отмонтировав почтовую базу.

В качестве практического примера использования командлета рассмотрим небольшой кейс.

Пользователь Exchange столкнулся с невозможностью просмотра писем в одной из папок Outlook. Указанная папка была восстановлена из резервной копии ящика. Однако саму папку ни из Outlook, ни из Outlook Web App, ни даже hard и soft удалением с помощью MFCMAPI, удалить не получилось.  Ошибка клиента, причем, мало о чем говорила:

Cannot delete this folder. Right-click the folder, and then click Properties to check your permissions for this folder. See the folder owner or your administrator to change your permissions. Outlook is synchronizing local changes made to items in this folder. You cannot remove this folder until the synchronization with the server is complete

outlook ошибка удаления папки

Для проверки и восстановления целостности ящика была запущена команда:

New-MailboxRepairRequest -Mailbox accounts@winitpro.ru -CorruptionType ProvisionedFolder,SearchFolder,AggregateCounts,Folderview

New-MailboxRepairRequest командлет Powershell

После успешного завершения операции восстановления (событие 10048 в журнале), поврежденная папка в Outlook Web App пропала немедленно, в Outlook же, для корректного отображения «обновленного» ящика пришлось удалить локальный кэш (ost файл).

Еще записи по теме: Exchange
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

Сказать Спасибо! можно на этой странице или (еще лучше) поделиться с друзями ссылкой на понравившуюся статью в любимой социальной сети(специально для этого на сайте присуствуют кнопки популярных соц. сетей).

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)



MAXCACHE: 0.24MB/0.00148 sec