История из жизни: создаём мы новую почтовую базу, заводим там пользователей. Через год, например, поступает запрос на восстановление почтового ящика по состоянию на определённое время. И тут оказывается, что резервное копирование базы не настроено 🙂
Паника!
Ничего страшного не случилось. У нас имеется всё, для того, чтобы такое восстановление сделать – лог-файлы с момента создания базы. Вооружаемся хирургическим ножом администратора 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) – обработка транзакций
Не понятно, на какой случай рассчитана данная статья.
Если не выполняется резервное копирование Exchange, транзакционные журналы забьют место намного раньше чем через год.
Можно перенести логи на дешевые диски – производительность упадет, уж лучше нормально бекапить.
Неужели есть люди которые так делают.