Аварийное восстановление сервера Exchange 2010
http://www.alexxhost.ru/2010/04/exchange-2010_18.html
Аварийное восстановление сервера Exchange 2010
Как правило, после успешной установки и настройки сервера, следующее, о чем задумывается системный администратор – это о том, как он его будет восстанавливать в случае аварии. В этой статье мы поговори о том, как можно восстановить полностью вышедший из строя Exchange Server 2010.
Начнем с краткого описания того, какие изменения произошли в Exchange 2010:
В Exchange 2010, в различные компоненты включено много новых технологий, а так же удалены некоторые устаревшие возможности. В плане хранения и резервного копирования данных тоже произошли некоторые изменения. Перечислим основные из них:Удалены группы хранения (Storage Groups)
Exchange 2010 теперь не содержит группы хранения, которые использовались в Exchange 2007 для поддержания логических групп баз данных и организации сценариев высокой доступности.
Введены базы данных восстановления (Recovery Database)
На замену Recovery Storage Groups пришли Recovery Databases (RDB). Теперь, если у вас возникает необходимость в восстановлении как целых почтовых ящиков, так и отдельных писем, вам нужно использовать базы данных восстановления (RDB).
Возросло количество поддерживаемых баз
К каждому серверу Exchange 2010 Enterprise теперь может быть одновременно подключено до 100 баз данных почтовых ящиков (вместо 50-и в Exchange 2007) и до 5 баз к Exchange 2010 Standard. При этом, данное ограничение не касается общего числа объектов баз данных, хранящихся в Active Directory Domain Services (AD DS).
На каждом сервере, в одно время, может быть смонтирована только одна база данных восстановления, плюсом к 100, либо 5-и уже имеющимся.
Добавлены группы высокой доступности (Database Availability Groups)
С выходом Exchange 2010, Microsoft улучшила функции CCR и SCR, соединив две функции в одном компоненте DAG (Database Availability Group), DAG стала новой функцией непрерывной доступности баз данных почтовых ящиков. Группы DAG обеспечивают защиту на уровне базы, сервера и узла и делают развертывание решения высокой доступности и аварийного восстановления на уровне сайта гораздо проще, нежели в предыдущих версиях Exchange. Подробнее тут - http://itband.ru/2010/04/exchange-2010-dag-nlb/
Не поддерживается SIS
В Exchange 2010 разработчики отказались от механизмов SIS.
SIS (Single Instance Storage) — технология хранилищ Microsoft Exchange Server (v4.0 – 2007), позволяющая содержать в почтовой базе письмо и вложения в единственном экземпляре, независимо от количества отправителей и получателей этого письма, чьи почтовые ящики также располагаются в этой базе данных. Подробнее тут - http://itband.ru/2010/04/exchange-2010-sis/.
Настройки баз данных перенесены на уровень организации
Изменились PowerShell команды по управлению хранилищем
Подробнее можно прочитать в стать Determining Exchange Server 2010 Storage Configuration (http://msdn.microsoft.com/en-us/library/bb204051.aspx)
Теперь о восстановлении сервера после аварии
Исходя из всего выше сказанного, несколько изменился и сам подход к резервному копированию и восстановлению серверов Exchange 2010. На мой взгляд, наиболее оптимальным и надежным способом обеспечения высокой доступности баз данных почтовых ящиков в Exchange 2010 является использование функционала DAG (Database Availability Group). Но если у вас нет возможности использовать DAG в организации, то, по большому счету, кроме использование встроенной в Windows Server системы архивации Windows Server Backup, у вас нет механизмов обеспечения надежности Echange Server`a (самостоятельные решения вроде Data Protection Manger и т.п. в расчет не берем).Примечание: Использование групп высокой доступности не избавляет вас от необходимости выполнять резервное копирование серверов и баз данных.
Microsoft Exchange Server 2010 включает в себя подключаемый модуль системы архивации данных Windows Server, который позволяет создавать архивы данных Exchange на основе службы теневого копирования томов (VSS). Именно про восстановление сервера из такого архива мы и поговорим далее.
От теории к практике
Для примера, рассмотрим ситуацию, когда у вас был Exchange Server 2010, на котором в одной базе MDB хранилась вся почта пользователей:Рис.1: Состояние до аварии.
В один «прекрасный» момент сервер вышел из строя, и у вас осталась только копия базы данных почтовых ящиков, сохраненная на другом сервере в сетевой папке. Восстановление сервера дело достаточно не быстрое и хлопотное, особенно, если вы занимаетесь этим раз в 3 года и отработанных навыков у вас нет, так что первое, что вам нужно сделать – это обеспечить пользователей возможностью отправлять и получать почту при помощи функции переносимости аварийного восстановления (Dial Tone Portability), а потом уже можно не спеша приняться за восстановление их старых писем.
Примечание: Переносимости аварийного восстановления (Dial Tone Portability) — это функция Microsoft Exchange Server 2010, которая обеспечивает решение для ограниченной поддержки непрерывной работы электронной почты. Переносимость аварийного восстановления предоставляет пользователю временный почтовый ящик для отправки и получения электронной почты на время восстановления или исправления его исходного почтового ящика. Временный почтовый ящик может находиться на том же сервере почтовых ящиков Exchange 2010 или на любом другом сервере почтовых ящиков Exchange 2010 в организации. Это позволяет разместить на дополнительном сервере пользовательские почтовые ящики, располагавшиеся на сервере, который стал недоступен. Клиенты, поддерживающие функцию автообнаружения, например Microsoft Office Outlook 2003/2007/2010, автоматически перенаправляются на новый сервер без необходимости вручную обновлять профиль настольной системы пользователя.
Рис.2: Обеспечение пользователей доступом к почтовым сервисам.
Рис.3: План действий
Составим примерный план действий:
1. Взять уже имеющийся, либо установить временный сервер Exchange 2010 (2) c ролью MailBox.
2. Создать аварийную базу данных (Dial Tone Database) и перенастроить почтовые ящики на работу с ней.
3. Переустановить старый сервер при помощи команды Setup /m:RecoverServer - Exchange 2010 (3)
4. Восстановить файлы базы данных почтовых ящиков из резервной копии на восстановленный сервер в базу данных MDB2.
5. Переключить пользователей с аварийной базы данных на восстановленную MDB2.
6. Отключить базу DialTone и создать из неё базу данных восстановления RecDB.
7. Скопировать содержимое RecDB в активную базу данных MDB2.
8. Можно отключать Exchange 2010 (2).
Поговорим о каждом шаге подробнее:
Примечание: Не нужно забывать, что аварийная база данных и база данных восстановления (RDB), это разные вещи, соответственно, если на последнюю ограничение по количеству поддерживаемых баз данных сервером не накладывается (100 или 5), то для создания аварийной базы данных количество развернутых баз данных не должно превышать установленное максимальное количество.Использование графической консоли управления Exchange при работе с базами данных поддерживается плохо, поэтому все действия будем выполнять из командной консоли.
Создаем аварийную базу:
a. Создаем пустую аварийную базу DialTone командлетом New-MailboxDatabase:New-MailboxDatabase -Name DialTone –Server Server2 –EdbFilePath E:\Dialtone\DialTone.EDB –LogFolderPath E:\Dialtone\
b. Используем командлет Set-Mailbox для переключения почтовых ящиков пользователей, на аварийную базу DialTone:
Get-Mailbox -Database MDB | Set-Mailbox -Database DialTone
Рис.4: Создание аварийно базы данных (Dial-Tone Database) и переключение на нее почтовых ящиков.
c. Монтируем базу данных DialTone при помощи команды Mount-Database, либо из графической консоли управления:
Mount-Database -Identity DialTone
Рис.5: Вид из консоли управления Exchange.
После переключения пользователей на аварийную базу данных, MS Outlook, с включенным кэшированием, выдаст следующее сообщение:
Рис.6: Сообщение MS Outlook 2010 о работе с аварийной базой данных.
Фактически, произошло следующее – Outlook «понял», что произошло переключение на другую базу данных, и сохранил OST файл с кэшем старых писем. Теперь он предлагает выбор между работой с новой базой данных в режиме on-line, либо просмотр старых писем из кэша в режиме off-line. Это очень правильное решение, но у него есть один большой минус, о котором мы поговорим в конце.
Восстановление старого сервера
Дело в том, что очень большая часть настроек MS Exchange хранится в Active Directory, в связи с этим, можно переустановить сервер Exchange, автоматически применив эти настройки. Для этого нужно:- Сбросить учетную запись сервера в AD, выбрав пункт меню Переустановить учетную запись (Reset Account);
Рис.7: Сброс учетной записи старого сервера
- Установить операционную систему на новое железо;
- Назначить серверу такое же имя, какое было до аварии;
- Ввести сервер в домен;
Рис.8: Ввод сервера в домен под старым именем.
- Установить необходимые компоненты ОС;
- Запустить установку сервера с параметром Setup /m:RecoverServer;
Рис.9: Переустановка Exchange 2010.
- Проверить все дополнительные настройки.
Восстанавливаем данные из архива:
После того, как старый сервер восстановлен, можно приступать к возвращению на него почтовых ящиков пользователей. Для этого необходимо:- Восстановить файлы и журналы базы данных почтовых ящиков из архива в альтернативное расположение - E:\Recovery\ на восстановленном сервере;
Рис.10: Восстанавливаем файлы базы данных и журналы.
- Создать базу данных командлетом New-MailboxDatabase и указать, где лежат восстановленные из архива файлы базы данных почтовых ящиков:
- Монтируем базу данных
- Переключаем обратно пользователей на восстановленную базу данных:
Рис.11: Переключение почтовых ящиков на другую базу данных.
В результате переключения, на какое-то время было приостановлено обслуживание пользователей и Outlook Web App выдал сообщение о том, что происходит перемещение почтовых ящиков:
Рис.12: Сообщение Outlook Web App о перемещении почтовых ящиков.
После не продолжительного ожидания, все пользователи были переключены на работу с базой данных на восстановленном сервере, и получат доступ к содержимому своих старых почтовых ящиков.
Объединение баз DialTone и MDB2
Следующим этапом будет объединение содержимого базы данных DialTone с восстановленной базой. Это сделать необходимо, т.к. в базе DialTone находятся письма, полученные за время проведения аварийного восстановления.Для объединения двух баз воспользуемся базой данных восстановления (Recovery Database).
Примечание: База данных восстановления является особой разновидностью базы данных почтовых ящиков, её нужно использовать для подключения базы почтовых ящиков, с целью извлечения из неё данных. С помощью баз данных восстановления можно восстановить данные из архива или копии базы данных без нарушения доступа пользователей к текущим данным.
Необходимо выполнить следующие действия:
- Отключить базу данных DialTone
- Создать базу данных восстановления RecDB (Recovery Database) командлетом New-MailboxDatabase с параметром –Recovery и указать, где лежат файлы базы DialTone:
- Необходимо убедится, что полученная база данных находиться в состоянии чистого отключения (clean shutdown). Поскольку база данных восстановления представляет собой альтернативное расположение восстановления для всех баз данных, все восстановленные базы данных будут находиться в состоянии неправильного отключения (dirty shutdown). Для проверки перейдем в папку с базой и запустим команду
Рис.13: Параметры базы данных.
Для переключения базы данных в состояние clean shutdown нужно выполнить операцию Recovery в каталоге с лог-файлами базы данных при помощи утилиты Eseutil:
Eseutil /R E00 /I /d
Но данная команда часто выдает ошибку, поэтому, можно использовать вместо Recovery операцию RePair в каталоге с файлами базы (edb):
Eseutil /P “ DialTone.EDB”
- В результате база данных будет переведена в состояние чистого отключения и её можно будет смонтировать
- Следующим этапом будет восстановление писем из Recovery Database в активную базу данных. Для извлечения данных из RDB нужно воспользоваться командлетом Restore-Mailbox:
Get-Mailbox –Database MDB2 | Restore-Mailbox -RecoveryDatabase RecDB
Также, Recovery Database можно использовать для восстановления конкретных почтовых ящиков и даже отдельных писем, как в «родное» место расположения, так и в альтернативный ящик:
В этом примере содержимое почтового ящика пользователя User1 восстанавливается в папку «Recovery» почтового ящика пользователя Admin.
Restore-Mailbox -Identity Admin -RecoveryDatabase RecDB -RecoveryMailbox User1 -TargetFolder Recovery
В данном примере восстанавливаются только сообщения электронной почты, удовлетворяющие следующим условиям:
- Строка темы содержится слово «Meeting».
- Тело сообщения содержит фразу «Halo 3».
- Сообщение находится в папке «Входящие» или «Календарь».
- Далее, можно посмотреть статистику баз данных (сравнить, что было и что стало) командой
Get-MailboxStatistics -Database “MDB2”
В результате проделанных выше манипуляций, в базу данных MDB2 должны быть восстановлены письма, полученные за время проведения аварийных работ на сервере Exchange.
Настройка MS Outlook после Dial-Tone Database restore.
В заключение расскажу про обещанный минус использования метода переносимости аварийного восстановления (Dial Tone Portability) для предоставления временного доступа к почтовым ящикам пользователей. Дело в том, что как говорилось выше, Outlook «понимает», что произошло переключение почтового ящика на другую базу данных, и сохранив старый OST-файл, при каждом запуске предлагает выбор между его просмотром и работой с новым OST-файлом и соответственно с новой базой данных. Удалить этот самый кэш можно двумя способами:В локальных настройках Outlook 2010:
1. Заходим в свойства учетной записи -> Другие настройки;
2. Открываем вкладку Дополнительно;
3. Убираем галочку Использовать режим кэширования Exchange;
4. Нажимаем кнопку Применить, на что Outlook говорит, что для вступления изменений в силу необходимо перезапустить программу, но сейчас перезапускать его мы не будем;
5. Нажмем кнопку Настройка файла данных Outlook;
6. Нажмем кнопку Не использовать - тем самым удалим кэш;
7. Далее ОК;
8. Теперь снова можно поставить галку напротив Использовать режим кэширования Exchange;
9. Перезапускаем Outlook и видим, что назойливое сообщение исчезло.
Рис.14: Настройка MS Outlook 2010 после использования Dial-Tone Database.
Отключить/включить кэширующий режим для всех можно чрез GPO, как написано в статье на TechNet`e -http://technet.microsoft.com/en-us/library/cc179175.aspx
Заключение
Я попытался описать наиболее общий пример восстановления сервера после аварии. Ещё раз повторю, если у вас есть возможность использовать группы доступности DAG, то непременно сделайте это, DAG очень сильно облегчит вам жизнь и сомневаюсь, что все описанное выше вам вообще потребуется.Также прошу учесть, что все манипуляции были проделаны лишь в тестовой среде, так что как пойдет процесс восстановления в реальных условиях зависит от многих факторов, которые трудно предугадать.
Статью можно скачать в формате PDF.
Комментарии
Отправить комментарий