Новости
Стандартна процедура резервного копіювання передбачає відновлення оперативних даних. Якщо ж надходить запит на відновлення архівних даних, то завдання ускладнюється. Пов'язано це з тим, що крім самих даних необхідно відновити / відтворити інфраструктуру актуальну на момент створення резервної копії.
Завдання - відновити деякі поштові ящики з архіву, в які поміщена резервна копія поштової бази, зроблена чотири роки тому.
Відправна точка - визначення актуальної версій Exchange на момент створення резервної копії баз. Для цього можна подивитися білд будь-якого бінарного файлу, наприклад store.exe, з резервної копії. За номером билда визначається версія, сервіс пак і пакет накопичувальних оновлень згідно з таблицею звідси .
Після цього приступаємо до розгортання віртуальної середовища, що копіює корпоративну на момент зняття архівної резервної копії. При відтворенні важливі такі моменти:
- DNS / Netbios імена домену, в якому буде знаходиться відновлюваний Exchange, повинні збігатися з реальними іменами, які були на момент зняття резервної копії
- Ім'я нової розгортається організації Exchange має збігатися з ім'ям організації Exchange на момент зняття резервної копії
Виконання цих двох умов досить для успішного відновлення. Щоб не плутатися можна так само:
- Ім'я контролера домену взяти той же, що було у одного з контролерів домену на момент зняття резервної копії
- Ім'я сервера Exchange взяти той же, що і у одного з серверів, на яких знаходилися бази на момент зняття резервної копії
У моєму випадку знадобилося 3 віртуальні машини:
- контролер домену
- Сервер Exchange 2007
- Клієнт з встановленим Outlook 2007
Необхідність використання третьої віртуальної машини пов'язана з тим, що використання командлет Export-Mailbox -PSTFolderPath неможливо на сервері Exchange. Необхідний клієнт з встановленим Outlook 2003 sp2 і старше.
Варіант з побудовою інфраструктури з нуля в віртуальному середовищі менш трудомісткий в порівнянні з відновленням з резервної копії контролера домену та сервера Exchange, так як таке відновлення тягне за собою необхідність вичищати з AD ті контролери домену, які ми не стали відновлювати. Ця процедура при наявності декількох контролерів домену, кількох доменів, окремих дерев може бути дуже трудомісткою і зайняти багато часу. Набагато простіше побудувати в віртуальному середовищі все з нуля з виконанням умов зазначених вище.
Отже. У нас має новий ліс, чиє dns-ім'я збігається з реальним лісом 4 роки тому. У нас встановлено сервер Exchange з білдом актуальним 4 роки тому і ім'я поштової організації збігається з тим, яке було 4 роки тому. Крім цього з резервної копії відновлені edb-файли і логи. Що далі?
Далі, використовуючи Recovery Storage Group (RGS) / Recovery Database, ми підключаємо відновлені бази, відновлюємо з них потрібний поштовий ящик і вивантажуємо його в pst-файл.
Для різних версій Exchange кроки будуть трохи відрізнятися:
Exchange 2003
- Створюємо RGS + поштову базу в ній
- Підміняємо файл бази файлом з резервної копії
- Відновлюємо ящик в будь-який новий ящик, створений у віртуальному середовищі
- Вивантажуємо ящик в pst за допомогою утиліти ExMerge
Exchange 2007
- Створюємо RGS + поштову базу в ній
- Підміняємо файл бази файлом з резервної копії
- Відновлюємо ящик в будь-який новий ящик, створений у віртуальному середовищі
- Вивантажуємо ящик в pst за допомогою командлета Export-Mailbox
Exchange 2010
- Створюємо Rrecovery Database (RD)
- Підміняємо файл бази файлом з резервної копії
- Відновлюємо ящик в будь-який новий ящик, створений у віртуальному середовищі
- Вивантажуємо ящик в pst за допомогою командлета New-MailboxExportRequest
Кроки для всіх версій схожі - відрізняється лише спосіб вивантаження ящика в pst-файл. Крім цього, перед початком відновлення необхідно перевести бази в стан Clean Shutdown, інакше їх не вийде подмонтировать. Робиться це за допомогою утиліти eseutil. Файли ese.dll, eseback2.dll, esebcli2.dll і eseutil.exe має сенс скопіювати в папку де зберігаються логи і відновлювана база.
Далі описується процедура відновлення бази для Exchange 2007.
0. Підготовка відновленої бази
Для початку дивимося чи дійсно база знаходиться в стані Dirty Shutdown:
eseutil.exe / MH MailboxDatabase.edb
У висновку утиліти цікавить наступний шматок:
dbtime: 204 (0xcc) State: Dirty Shutdown Log Required: 98865-98883 (0x18231-0x18243)
До запуску процедури відновлення перевіряємо так само стан балок для це бази:
eseutil.exe / ML EXX
Тут EXX - загальний шістнадцятковий префікс лог-файлів. Утиліта перевірить лог-файли і якщо не знайде помилок - ми можемо приступати до подальшого відновлення:
eseutil.exe / R EXX
Якщо якісь лог-файли будуть відсутні, то команда поверне помилку JET_errCommittedLogFilesMissing. Щоб запустити переклад бази в Clean Shutdown, не звертаючи на втрату логів, використовуємо ключ / I:
eseutil.exe / R EXX / I
По завершенні база буде готова для підміни в RGS / RD:
eseutil.exe / MH MailboxDatabase.edb ... dbtime: 204 (0xcc) State: Clean Shutdown Log Required: 98865-98883 (0x18231-0x18243)
1. Створення RGS і бази в ній
В Exchange 2007 бази можна створити через EMS. Процедура виглядає наступним чином :
New-StorageGroup -Server MBX -LogFolderPath E: RGS -Name RGS -SystemFolderPath E: RGS -Recovery New-MailboxDatabase -MailboxDatabaseToRecover MailboxDatabase -StorageGroup MBXRSG -EDBFilePath E: RGSMailboxDatabase.edb
Важливо створити базу з тим же ім'ям, що і база з резервної копії. Тоді не доведеться змінювати в конфігурації бази шляху до імен файлів.
Set-MailboxDatabase -Identity MBXRSGMailboxDatabase -AllowFileRestore: $ True
Процедуру так само можна проводити через Troubleshooting Assistant .
RGS і база створені. База поки не подмонтіровать. Ми готові до помене файлу бази на файли з резервної копії.
2. Підміна файлу бази
Файл бази підміняється файлом з резервної копії через будь-який файловий менеджер. Після цього база монтується:
Mount-Database -Identity MBXRSGMailboxDatabase
Якщо база з резервної копії переведена в стан Clean Shutdown, у властивостях бази з RGS дозволена її перезапис при відновленні і імена баз збігаються, то база повинна подмонтіровать без будь-яких проблем.
3. Відновлення ящика
Процедура відновлення передбачає, що ми створили поштову скриньку, в який буде розвантажуватися інформація з резервної копії. Якщо ящик не створений - необхідно його створити. Далі запускаємо процедуру відновлення:
Restore-Mailbox -RSGMailbox OldMailbox -RSGDatabase MBX4RSGMailboxDatabase -Identity NewMailbox -TargetFolder "Recovered data"
Тут OldMailbox - ящик, який ми відновлюємо, NewMailbox - новий ящик, який ми тільки що створили, а Recovered Data - папка в корені NewMailbox - куди буде відновлена інформація з ящика OldMailbox.
4. Вивантаження ящика в PST- файл
В Exchange 2007 процедура вивантаження в PST вимагає бінарних файлів Outlook. Тому необхідний клієнт на якому будуть встановлений Exchange Management Shell і Outlook 2003 sp2 або старше. Вивантаження в PST робиться за допомогою такої команди:
Export-Mailbox -Identity NewMailbox -PSTFolderPath E: PST
Не забуваємо, що для Restore / Export-Mailbox існує ключ BadItemLimit, який може стати в нагоді, якщо нам попадуться биті елементи.
Так, мало не забув. Для зовсім ледачих існує спеціальне програмне забезпечення для вивантаження ящиків з edb-файлів прямо в pst. Наприклад, OnTrack PowerControls.
Корисні посилання :
Exchange Server and Update Rollups Build Numbers
Why Exchange Databases Might Remain Dirty After ESEUTIL / R Recovery
How to Recover a Mailbox by Using a Recovery Storage Group
Working with Recovery Storage Groups in Exchange 2007
How to Export and Import mailboxes to PST files in Exchange 2007 SP1