Если есть ещё администраторы Exchange, которые не видели доклад Бориса в записи на Channel9, то я им очень сильно завидую. Срыв покровов будет отменный. К тому же на русском языке.

nerd1_standard

Кто ещё не записался – ещё есть чуть меньше суток. Тыц.

Обновление. Запись доступна по ссылке:
UC2. Встреча №6. Борис Лохвицкий

13245_originalИстория из жизни: создаём мы новую почтовую базу, заводим там пользователей. Через год, например, поступает запрос на восстановление почтового ящика по состоянию на определённое время. И тут оказывается, что резервное копирование базы не настроено 🙂

Паника!

Ничего страшного не случилось. У нас имеется всё, для того, чтобы такое восстановление сделать – лог-файлы с момента создания базы. Вооружаемся хирургическим ножом администратора Exchange – утилитой eseutil и приступаем к процедуре препарации.

Нужно понимать, что вся информация, поступающая в почтовую базу перед этим копируется в логи. Поэтому, если у нас имеются все логи – то фактически мы обладаем всей информацией, поступавшей в базу. Задача – проиграть все логи на конкретную дату. Итогом этой операции будет edb-файл, готовый для восстановления ящиков.

Процесс проигрывания логов запускается в процессе восстановления базы утилитой eseutil при использовании ключа /a. Так как нам саму базу восстанавливать не надо – нужно только проиграть логи, то в процессе восстановления будут участвовать только лог-файлы. Для этого мы их копируем с первого файла до файла с нужной нам датой создания в выделенную папку C:TempDb и запускаем режим восстановления. Edb-файлы, chk-файл не трогаем – они нам не понадобятся.

Итого:

eseutil.exe /R E01 /l C:TempDb /s C:TempDb /d C:TempDb /a /i

Extensible Storage Engine Utilities for Microsoft(R) Exchange Server

Version 14.03

Copyright (C) Microsoft Corporation. All Rights Reserved.

Initiating RECOVERY mode...

Logfile base name: E01

Log files: H:TempDb

System files: H:TempDb

Database Directory: H:TempDb

Performing soft recovery...

Restore Status (% complete)

0   10   20   30   40   50   60   70   80   90 100

|----|----|----|----|----|----|----|----|----|----|

...................................................

Operation completed successfully in 5733.46 seconds.

Здесь: /R – запуск режима восстановления, E01 – префикс наших логов, /l – папка с лог-файлами, /d – папка с файлом edb, /s – папка со служебными файлами базы, /a – ключ для запуска проигрывания логов в базу, /i – ключ для игнорирования потерянных лог файлов (мы их будем просто пропускать). На всякий случай, проверяем состояние полученной в итоге базы:

eseutil.exe /mh TempDb.edb

Extensible Storage Engine Utilities for Microsoft(R) Exchange Server

Version 14.03

Copyright (C) Microsoft Corporation. All Rights Reserved.

Initiating FILE DUMP mode...

Database: TempDb.edb

.....

dbtime: 98041573 (0x5d7fee5)

State: Clean Shutdown

Log Required: 0-0 (0x0-0x0)

.....

Подготовленную таким образом базу TempDb.edb можно дальше использовать в стандартном процессе восстановления данных.

Интересные ссылки:
Why Exchange Databases Might Remain Dirty After ESEUTIL /R Recovery
Activate a lagged mailbox database copy
Хранилище Exchange. Часть 3. Extensible Storage Engine (ESE) – обработка транзакций