Очередь — это временное хранилище сообщений, ожидающих следующую стадию обработки. Каждая очередь представляет собой логический набор сообщений, которые обрабатываются транспортным сервером Exchange в определенном порядке. Очереди существуют только на компьютерах с установленной ролью транспортного сервера-концентратора или пограничного транспортного сервера.

Microsoft Exchange Server 2007 использует для хранения очередей единую базу данных расширяемой системы хранения данных (ESE). Ранее известная как JET, система ESE представляет собой метод, определяющий интерфейс API нижнего уровня для основных структур баз данных в Exchange Server.

Реализация описанных ниже сценариев может привести к тому, что перестанет отвечать транспортный сервер-концентратор или пограничный транспортный сервер с базой данных очереди, содержащей недоставленные сообщения.

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

Предварительная подготовка

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

  • роль администратора сервера Exchange.

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

Дополнительные сведения о разрешениях, делегировании ролей и правах, необходимых для администрирования сервера Microsoft Exchange Server 2007, см. в разделе Вопросы, связанные с разрешениями.

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

  • Сетевая служба: Полный доступ

  • Система: Полный доступ

  • Администраторы: Полный доступ

На целевом транспортном сервере Exchange, куда решено перенести восстановленную базу данных очереди, должны быть установлены те же пакеты обновления и обновления безопасности Exchange 2007, что и на исходном сервере Exchange.

По возможности роль целевого транспортного сервера Exchange, выбранного для восстановленной базы данных очереди, должна совпадать с ролью исходного транспортного сервера. Может наблюдаться неожиданное поведение доставки сообщений при реализации любого из указанных ниже условий.

  • Восстановленная база данных очереди запускается на транспортном сервере Exchange, серверная роль которого отличается от роли исходного сервера.

  • Восстановленная база данных очереди запускается на транспортном сервере Exchange, расположенном в другом лесу Active Directory.

Например, сообщения, ожидающие доставки в очереди доставки для почтового ящика, теперь могут требовать доставки в очереди удаленной доставки. Адреса, которые раньше были удаленными, теперь могут стать локальными, и наоборот. Надо быть готовым к появлению сообщений в очереди «Недоступные». Возможно, потребуется вручную повторно направить сообщения обратно в классификатор. Дополнительные сведения см. в разделе Инструкции по повторной отправке сообщений в очереди.

Восстановление базы данных очереди на целевом транспортом сервере Exchange

Ниже описаны основные действия по восстановлению базы данных очереди.

  1. Переместите базу данных очереди во временную папку на целевом транспортном сервере Exchange.

  2. Выполните восстановление базы данных очереди с помощью служебных программ базы данных сервера Exchange (Eseutil.exe).

  3. Выполните автономную дефрагментацию базы данных очереди с помощью Eseutil.

  4. Подготовьте базу данных, существующую на целевом транспортном сервере Exchange, к замене на восстановленную базу данных очереди.

  5. Запустите восстановленную базу данных очереди на целевом транспортном сервере Exchange.

Перемещение базы данных очереди во временную папку на целевом транспортном сервере

По умолчанию база данных очереди и файлы журнала транзакций расположены в папке C:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Queue. Местоположение базы данных очереди и файлов журнала транзакций настраивается в файле конфигурации приложения EdgeTransport.exe.config, который находится в папке C:\Program Files\Microsoft\Exchange Server\Bin. В параметре QueueDatabasePath содержится путь к файлам базы данных, в параметре QueueDatabaseLoggingPath — путь к журналам транзакций.

Ниже перечислены файлы, которые содержатся в базе данных очереди.

  • Mail.que   Файл базы данных очереди.

  • Trn.chk   Файл контрольных точек.

Ниже перечислены файлы журнала транзакций.

  • Trn.log   Текущий файл журнала транзакций.

  • Trntmp.log   Следующий файл журнала транзакций, создаваемый заранее.

  • Trnnnn.log   Другие файлы журнала транзакций, которые создаются, когда размер файла Trn.log достигает максимального значения, определяемого параметром QueueDatabaeLoggingFileSize в файле конфигурации приложения EdgeTransport.exe.config. Значение по умолчанию: 5 МБ.

  • Trnres00001.jrs   Заместитель файла журнала.

  • Trnres00002.jrs   Заместитель файла журнала.

  • Temp.edb   Этот файл проверки схемы базы данных очереди не является файлом журнала транзакций, однако хранится вместе с файлами журнала транзакций.

Порядок перемещения базы данных очереди на транспортный сервер-концентратор или пограничный транспортный сервер

  1. Остановите службу передачи Microsoft Exchange на транспортном сервере Exchange, на котором расположена поврежденная база данных очереди.

    • Введите в командной строке или среде управления Exchange следующую команду:

      Копировать код
      Net Stop MSExchangeTransport
      
  2. Переместите файлы базы данных очереди и журналов транзакций во временный каталог на целевом транспортном сервере-концентраторе или пограничном транспортном сервере. В рассматриваемом примере будет использоваться следующий каталог: C:\QueueRecovery.

  3. После исправления ошибок на поврежденном транспортном сервере Exchange 2007 при перезапуске службы передачи Microsoft Exchange создается новая база данных очереди. Это может произойти в любой момент после завершения копирования файлов базы данных очереди на целевой транспортный сервер.

Дополнительные сведения о файлах базы данных очереди см. в разделе Управление базой данных очередей.

Выполнение восстановления базы данных очереди с помощью Eseutil

Прежде чем пытаться запустить базу данных очереди на целевом транспортном сервере, следует воспользоваться программой Eseutil для выполнения восстановления базы данных. Так как база данных очереди использует циклическое ведение журнала, невозможно воспроизвести старые журналы транзакции в базу данных с помощью режима восстановления Eseutil /C. Однако восстановление базы данных можно выполнить с помощью режима восстановления Eseutil /R. Служебную программу Eseutil можно использовать для автономного облуживания и восстановления базы данных очереди.

Примечание.
Служебная программа Eseutil находится в каталоге C:\Program Files\Microsoft\Exchange Server\Bin. Этот каталог определен в переменной среды path. Поэтому данную команду можно вводить без указания полного пути.

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

Порядок выполнения восстановления базы данных очереди с помощью программы Eseutil

  1. В командной строке или среде управления Exchange перейдите в каталог C:\QueueRecovery.

  2. Выполните следующую команду:

    Копировать код
    Eseutil /r Trn /d. /8
    

    Trn — это базовое имя файла журнала, включающее 3 знака. Параметр /8 задает размер страницы базы данных, равный 8 КБ, чтобы восстановление базы данных выполнялось быстрее. Параметр /d. указывает, что восстанавливаемая база данных находится в текущем каталоге.

    Примечание.
    Восстановление больших баз данных очереди может занимать значительное время.

Дополнительные сведения об использовании Eseutil для восстановления базы данных см. в разделе Режим восстановления Eseutil /R.

Выполнение автономной дефрагментации базы данных очереди с помощью Eseutil

После выполнения восстановления базы данных очереди полезно также запустить автономную дефрагментацию базы данных с помощью режима дефрагментации Eseutil /D. Это поможет повысить работоспособность и производительность базы данных очереди. Автономная дефрагментация базы данных ESE позволяет освободить место, занимаемое базой данных, и сократить размер файлов базы данных.

Порядок выполнения автономной дефрагментации базы данных очереди с помощью Eseutil

  1. В командной строке или командной консоли Exchange перейдите в каталог C:\QueueRecovery.

  2. Выполните следующую команду:

    Копировать код
    Eseutil /d mail.que
    
    Примечание.
    Автономная дефрагментация больших баз данных очереди может занимать значительное время.

Дополнительные сведения об использовании Eseutil для автономной дефрагментации базы данных см. в разделе Режим дефрагментации Eseutil /D.

Подготовка базы данных, существующей на целевом транспортном сервере Exchange, к замене на восстановленную базу данных очереди.

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

  1. Остановите поступление в очереди новых сообщений в очереди и дождитесь завершения доставки существующих сообщений.

  2. Выполняйте мониторинг очередей доставки для почтового ящика и удаленных очередей доставки до тех пор, пока не будут доставлены все сообщения.

  3. Заново отправьте или приостановите и экспортируйте из очереди «Недоступные» сообщения, которые необходимо сохранить.

  4. Возобновите доставку или экспортируйте из очередей подозрительных сообщений сообщения, которые необходимо сохранить.

  5. Измените на транспортном сервере Exchange интервал ожидания окончания срока действия сообщений таким образом, чтобы сохранились сообщения из восстановленной базы данных очереди.

Остановка поступления в очереди новых сообщений и ожидание завершения доставки существующих сообщений

  • Выполните в командной строке или среде управления Exchange следующую команду:

    Копировать код
    Net Pause MSExchangeTransport
    

Порядок мониторинга очередей доставки для почтового ящика и удаленных очередей доставки до полной доставки всех сообщений

  • Воспользуйтесь средством просмотра очередей или командлетом Get-Queue в среде управления Exchange, чтобы осуществлять мониторинг очередей доставки на целевом транспортном сервере Exchange. Дождитесь, пока не останется сообщений в очередях доставки на данном сервере — счетчик сообщений должен показывать 0.

Порядок повторной отправки или приостановки и экспорта из очереди «Недоступные» на целевом транспортном сервере Exchange сообщений, которые необходимо сохранить

  1. Чтобы повторно отправить сообщения из очереди «Недоступные», выполните следующую команду в среде управления Exchange на целевом транспортном сервере Exchange:

    Копировать код
    Retry-Queue -Identity "Unreachable" -Resubmit $True
    
  2. Воспользуйтесь средством просмотра очереди, чтобы приостановить сообщения, которые необходимо экспортировать из очереди «Недоступные».

  3. Чтобы экспортировать все приостановленные сообщения из очереди «Недоступные» в каталог с автоматическим именованием файлов сообщений в формате InternalMessageID.eml, выполните следующую команду в среде управления Exchange:

    Копировать код
    Get-Message -Queue "Unreachable" | Export-Message -Path "<ExistingLocalDirectory>"
    

Дополнительные сведения о повторной отправке сообщений см. в разделе Инструкции по повторной отправке сообщений в очереди.

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

Дополнительные сведения об экспорте сообщений см. в разделе Инструкции по экспорту сообщений из очередей.

Порядок возобновления доставки предназначенных для сохранения сообщений из очереди подозрительных сообщений на целевом транспортном сервере Exchange или их экспорта.

  1. Чтобы возобновить доставку сообщений из очереди подозрительных сообщений, выполните одно из указанных ниже действий.

    • В средстве просмотра сообщений выберите очередь подозрительных сообщений и сообщение, а в области действий выберите команду Возобновить.

    • В среде управления Exchange выполните следующие команды:

      Копировать код
      Get-Message -Queue "Poison" | ft Identity
      Resume-Message <IdentityofPoisonMessage>
      
  2. Чтобы экспортировать все приостановленные сообщения из очереди подозрительных сообщений в каталог с автоматическим именованием файлов сообщений в формате InternalMessageID.eml, выполните следующую команду в среде Exchange:

    Копировать код
    Get-Message -Queue "Poison" | Export-Message -Path "<ExistingLocalDirectory>"
    
Примечание.
Очередь подозрительных сообщений содержит сообщения, которые считаются потенциально вредными для системы Exchange 2007 после сбоя сервера. Такие сообщения в самом деле могут содержать вредоносный код или быть жертвами плохо написанного агента, который вызывает сбой сервера Exchange при обработке якобы вредоносных сообщений. При наличии сомнений в безопасности сообщений из очереди подозрительных сообщений экспортируйте сообщения в файлы, чтобы их можно было проверить. Если решено удалить сообщения из очереди подозрительных сообщений, удалите их без отправки отчета о недоставке. Отчет о недоставке может включать в себя содержимое исходного сообщения. Сообщения в очереди подозрительных сообщений уже находятся в приостановленном состоянии. Поэтому не требуется их приостанавливать перед экспортом. С помощью командлета Retry-Queue с параметром Resubmit нельзя возобновить обработку очереди подозрительных сообщений. Чтобы повторно отправить сообщения из очереди подозрительных сообщений, возобновите обработку сообщений с помощью средства просмотра очереди или командлета Resume-Message.

Дополнительные сведения о возобновлении обработки сообщений см. в разделе Инструкции по возобновлению доставки сообщений.

Изменение интервала ожидания окончания срока действия сообщений на целевом транспортном сервере Exchange, чтобы сохранить сообщения из восстановленной базы данных очереди

  • Выполните в командной консоли Exchange следующую команду:

    Копировать код
    Set-TransportServer -MessageExpirationTimeout <LongerTimeOutIntervalIndd.hh:mm:ssFormat>
    

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

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

    • База данных очереди не завершила доставку сообщений через два дня после своего восстановления.

    Это препятствует немедленному удалению сообщений после запуска базы данных очереди или доставки старых сообщений перезапущенной базой данных.

Дополнительные сведения об истечении срока действия сообщений см. в разделе Управление интервалами повторной отправки, повторной передачи и окончания срока действия сообщения.

Запуск восстановленной базы данных очереди на целевом транспортом сервере Exchange

Порядок запуска восстановленной базы данных очереди на целевом транспортном сервере Exchange

  1. На целевом транспортном сервере Exchange выполните в командной строке или среде управления Exchange следующую команду:

    Копировать код
    Net Stop MSExchangeTransport
    
  2. Перезапишите все имеющиеся пустые файлы базы данных очереди и файлы журнала транзакций на целевом транспортном сервере Exchange файлами из каталога «C:\QueueRecovery». По умолчанию база данных очереди и файлы журнала транзакций расположены в папке C:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Queue.

  3. Выполните в командной строке или среде управления Exchange следующую команду:

    Копировать код
    Net Start MSExchangeTransport
    

Задачи настройки, выполняемые после восстановления

После запуска восстановленной базы данных очереди на целевом транспортном сервере Exchange должен возобновиться поток почтовых сообщений. Ниже описаны возможные проблемы, с которым можно столкнуться.

  • Если восстановленная база данных очереди поступила от отказавшего сервера Exchange 2007, необходимо подготовиться к обработке сообщений из очереди подозрительных сообщений. В отношении каждого сообщения из очереди подозрительных сообщений необходимо принять решение, действительно ли это сообщение вызвало сбой сервера Exchange 2007 или его помещение в данную очередь было случайным. В отношении такого сообщения можно принять решение о возобновлении отправки или экспорте в целях дальнейшей проверки. Если безопасность сообщения в очереди подозрительных сообщений вызывает сомнения, сообщение следует экспортировать в файл, чтобы можно было его изучить. Если принято решение удалить сообщения из очереди подозрительных сообщений, удалите их, не отправляя отчет о недоставке. Отчет о недоставке может включать в себя содержимое подозрительного сообщения.

  • Необходимо подготовиться к обработке сообщений из очереди «Недоступные» и очередей доставки, которые долго находятся в состоянии повторной попытки. Такие сообщения следует повторно отправить вручную.

  • Если решено удалить сообщения с проблемами доставки, то необходимо принять решение об отправке соответствующих отчетов о недоставке. При удалении сообщений и отправке отчетов о недоставке сообщения с этими отчетами сами требуют доставки. Более того, у таких сообщений могут возникнуть собственные проблемы с доставкой. Можно принять решение об удалении проблемных сообщений без отправки отчета о недоставке. Дополнительные сведения об удалении сообщений см. в разделе Инструкции по удалению сообщений из очередей.

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

    1. Приостановите службу передачи Microsoft Exchange, чтобы позволить завершиться процессу доставки существующих сообщений. Во время такой паузы новые сообщения не будут приниматься.

    2. Остановите службу передачи Microsoft Exchange.

    3. Удалите все файлы базы данных очереди и файлы журнала транзакций.

    4. Запустите службу передачи Microsoft Exchange.

Дополнительные сведения

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