Заметки о Windows и других программных продуктах Microsoft...

Авторитативное восстановление Active Directory

Авторитативное восстановление Active Directory

Этой статьей я завершаю тему восстановления данных в Active Directory. Напоследок я приберег самый тяжелый вариант — авторитативное восстановление Active Directory из резервной копии.  Авторитативное восстановление (англ. Authoritative restore) — процесс достаточно сложный и долгий, могущий привести к различным неприятным последствиям, поэтому применять его стоит очень аккуратно. Однако ситуации бывают разные, поэтому все, кто работает с Active Directory, должны знать об этом способе восстановления и уметь им пользоваться.

Вот что представляет из себя авторитативное восстановление:

1) Контроллер домена загружается в режиме Directory Services Restore Mode (DSRM).  В этом режиме служба AD не запускается, а база данных переводится в автономный режим;
2) База данных AD восстанавливается из резервной копии;
3) Восстанавливаемые объекты помечаются как авторитативные с помощью утилиты Ntdsutil;
4) Контроллер домена загружается в нормальном режиме.

Это если коротко. Более подробно рассмотрим процесс авторитативного восстановления на примере восстановления удаленной организационной единицы. Все действия будут проводится на Windows Server 2008 R2 с использованием встроенных средств, уровень леса Server 2008 R2.

Для авторитативного восстановления Active Directory нам потребуется резервная копия состояния системы (System State). System State включает в себя:

• Файл ntds.dit – база данных Active Directory;
• Системный реестр контроллера домена;
• База данных Certification Authority (служб сертификации);
• Системный том SYSVOL, хранящий сценарии входа в систему и групповые политики домена;
• Системные файлы, необходимые для загрузки операционной системы;
• База данных регистрации классов COM+, которая содержит информацию о приложениях COM+ ;
• Сведения Cluster Services (служб кластеров),  если данный сервер является компонентом кластера.

Для создания резервной копии я воспользуюсь встроенной в Windows Server 2008 программой для резервного копирования Wbadmin. Открываем командную консоль и создаем бэкап System State на диске E следующей командой:

wbadmin start systemstatebackup -backupTarget:E:

создание резервной копии состояния системы

 

Создав резервную копию, открываем оснастку Active Directory Users and Computers (ADUC) и, совершенно случайно 🙂  удаляем подразделение Managers со всем содержимым.

удаление организационной единицы AD

 

Кстати, в отличие от других объектов (учетных записей пользователей, компьютеров и групп) у контейнеров предусмотрена защита от случайного удаления. Поэтому, прежде чем удалять объект, в оснастке ADUC в меню View включаем пункт Advanced Features. Затем открываем свойства объекта и на вкладке Object снимаем галку с чек-бокса «Protect object from accidental deletion».

отключение защиты от случайного удаления OU

 

Теперь мы должны перезагрузить контроллер домена в режиме восстановления Directory Services Restore Mode. Если в Windows Server 2003 для этого достаточно было нажать клавишу F8 при загрузке, то в Server 2008 необходимо внести изменения в загрузочное меню. Сделать это можно двумя способами.

Из командной строки, запущенной с правами администратора, введя команду:

bcdedit /set safeboot dsrepair

И перезагрузить сервер:

shutdown -r -t 0

перезагрузка в режиме DSRM из командной строки

 

Либо нажать Win+R и в строке выполнить (Run) ввести msconfig. Откроется оснастка System Configuration. В ней на вкладке Boot в поле «Boot options» надо отметить режим Safe boot, установить переключатель на Active Directory repair и нажать OK. И затем перезагрузиться.

перезагрузка в режиме DSRM из оснастки System Configuration

 

После перезагрузки контроллер будет загружен в режиме восстановления. Имейте в виду, в этом режиме зайти на него можно только под локальной учетной записью DSRM администратора. Поэтому нужно напрячь память и вспомнить пароль, который вводился при установке ОС.

Приступим к восстановлению. Опять задействуем Wbadmin и восстановим созданный ранее System State командой:

wbadmin start systemstaterecovery -version:11/20/2012-08:29

восстановление состояния системы из резервной копии

 

Восстановление может занять довольно много времени, по окончании которого будет выдан запрос на перезагрузку. Не будем с этим торопиться. Для проведения авторитативного восстановления нам еще нужно пометить восстанавливаемый объект как авторитативный.

Немного теории

У каждого объекта Active Directory существует свойство USN (Update Sequence Numbers), или номер последовательного восстановления. При каждом изменении объекта в Active Directory к его значению USN прибавляется 1. Таким образом Active Directory определяет актуальность информации об объекте, т.е. чем больше USN, тем объект актуальнее.
Каждый контроллер домена имеет свой собственный USN, отличный от других. При репликации контроллеры обмениваются значениями USN и каждый запоминает значение USN партнера по репликации, чтобы после оповещения об изменениях партнер забрал произведенные изменения. Таким образом объект с более низким USN будет при репликации перезаписан объектом с более высоким USN.
Так вот, авторитативное восстановление объекта заключается в том, что значение его USN принудительно увеличивается на 100000. Это делает объект авторитативным, и при последующей репликации он будет сохранен.

На самом деле механизм репликации гораздо сложнее, но для понимания процесса этого хватит.

Чтобы пометить объект как авторитативный:

• В меню Start -> Run набираем ntdsutil и жмем ENTER;
• В строке ntdsutil набираем activate instance ntds и жмем ENTER;
• В строке ntdsutil набираем authoritative restore и жмем ENTER.

Теперь мы находимся в приглашении командной строки утилиты Ntdsutil для авторитативного восстановления. Синтаксис команд следующий:

restore object <DistinguishedName> — помечает одиночный объект (компьютер, пользователя или группу) как авторитативный для репликации;
restore subtree <DistinguishedName> — помечает поддерево (напр. подразделение (OU) со всем содержимым) как авторитативный объект;
restore database — помечает всю базу данных Active Directory как авторитативную. Это приведет к перезаписи содержимого базы данных Active Directory на всех контроллерах домена;
-verinc <increment> — параметр, который позволяет вручную задавать USN. По умолчанию при авторитативном восстановлении USN данных увеличивается на 100000. Параметр verinc оказывается полезен, если выполняется авторитетное восстановление данных поверх других авторитетно восстановленных данных, то есть значение USN должно быть увеличено больше, чем на 100000.

Пометим для восстановления подразделение Managers:

restore subtree ″OU=Managers,DC=contoso,DC=com″ 

помечаем объекты как авторитативные

 

Дело практически сделано. Теперь остается загрузить контроллер в нормальном режиме и дождаться репликации. Не забудьте отключить безопасную загрузку, сделать это можно командой bcdedit /deletevalue safeboot или из оснастки System Configuration.

отключение режима DSRM и перезагрузка

 

На этом процесс авторитативного восстановления можно считать законченным. Для ускорения репликации можно выполнить команду repadmin /syncall.

 

Некоторые моменты, с которыми можно столкнуться при авторитативном восстановлении.

1) При авторитативном восстановлении может пропасть членство в группах. На этот случай Ntdsutil создает в процессе специальный ldf-файл примерно такого вида ar_20121120-134529_links_contoso.com.ldf. Для восстановления членства в группах надо запустить команду ldifde -i -k -f <FileName>;
2) И наоборот, возможно восстановление членства пользователей в группах, из которых они были удалены;
3) При наличии в организации Exchange 2003 при авторитативном восстановлении у пользователей могут создасться новые пустые почтовые ящики, подключенные к First Storage Group на First Mailbox Store. Подробнее здесь;
4) И еще, нельзя восстанавливать AD  из архива, который старше чем время жизни объектов-захоронений. Это чревато возникновением USN Rollback (откат USN), в результате чего может быть полностью заблокирована репликация в домене.

 
 
Комментарии

Добрый день исправте плс ошибку вместо autoritative restore написать authoritative restore

Спасибо за наблюдательность.
Ошибку исправил.

Александр

День добрый! В моем ntdsutil нет варианта восстановления restore database. Windows 2008 R2.

Добрый день! «restore database» убрали в ntdsutil. За место него можно набрать restore subtree «DC=contoso,DC=com».
Исправьте пожалуйста на сайте ошибку, параметр vernic на verinc.

Спасибо за дополнение. Ошибку исправил.

Ответить