ИВАН КОРОБКО, сертифицированный специалист MCP, автор более 50 статей и двух книг.
Занимается созданием различных приложенийдля Active Directory
Active Directory. Проводим профилактическое обслуживание
Ядро контроллера домена – база данных AD, которая нуждается в обслуживании. Благодаря специально созданному для этого сервисному режиму, задача решается просто.
Данные в Active Directory автоматически оптимизируются каждые 12 часов в режиме реального времени. В ходе этой процедуры осуществляется перемещение данных из временных файлов непосредственно в файл базы ntds.dit. Но этого недостаточно, поскольку размер базы данных постоянно увеличивается при условии, что в Active Directory вносятся различные изменения: создаются новые учетные записи, изменяются их свойства и т.д.
Во время работы базы данных никаких работ по ее управлению провести невозможно, поскольку доступ к ней закрыт. Все работы по восстановлению, дефрагментации базы, проверки ее целостности можно провести в специально созданном сервисном режиме. Не стоит забывать о том, что любая база данных – это всего лишь набор файлов, а с другой стороны – набор таблиц, которые взаимосвязаны друг с другом.
Active Directory как часть файловой структуры
База данных Active Directory хранится на контроллере домена в файле NTFS.DIT, который находится в папке %SYSTEMROOT%\NTDS.
Файл базы данных имеет ряд особенностей, о которых всегда необходимо помнить:
- Размер файла NTFS.DIT увеличивается фиксированными порциями, занимая целое число страниц, во избежание их дробления. Из-за этого размер каталога Active Directory всегда больше, чем он есть на самом деле.
- В нормальном режиме функционирования домена файл базы данных всегда открыт и не может быть скопирован.
- Размер открытого файла не обновляется. Фактический размер базы данных можно определить исходя из свободного пространства на жестком диске.
- В подключенном состоянии база данных не может быть дефрагментирована. Для использования утилиты дефрагментации NTDSUTIL.EXE необходимо перезапустить домен в сервисном режиме.
Кроме файла NTDS.DIT в каталоге %SysytemRoot%\NTDS находятся вспомогательные файлы (см. рис. 1), функция которых кратко описана в таблице 1. Все перечисленные файлы обеспечивают две важных функции: отказоустойчивость базы данных и ее дефрагментацию в режиме реального времени.
Таблица 1. Файлы каталога NTDS
Название файла
|
Описание
|
NTDS.DIT
|
База данных Active Directory
|
EDD.CHK
|
Проверочный (checkpoint) файл
|
EDB.LOG
|
Журнал транзакций (событий). Все изменения, происходящие с каталогом Active Directory, содержатся в этом файле. Размер файла ограничивается 10 Мб.
|
EDBхххх.LOG
|
Вспомогательные журналы событий, которые создаются, когда файл EBD.LOG уже достиг 10 Мб, а данные еще не выгружены в файл NTDS.DIT. Соответственно каждый файл занимает не более 10 Мб дискового пространства
|
RES1.LOG
|
Резервный файл журнала событий
|
RES2.LOG
|
Резервный файл журнала событий
|
TEMP.EDB
|
Временный журнал, который содержит информацию о событиях, происходящих в настоящий момент
|
SHEMA.INI
|
Необязательный файл, используемый для инициализации файла NTDS.DIT во время загрузки контроллера домена
|

Рисунок 1. Содержимое каталога %SystemRoot%/NTDS
Active Directory как база данных
Файл NTDS.DIT представляет собой базу данных, состоящую из трех таблиц:
- Схема каталога. В этой таблице хранится описание объектов: их атрибуты, соответствующие им типы данных и другая служебная информация. Схема Active Directory расширяется только в случае крайней необходимости, поэтому можно считать, что это статическая таблица.
- Таблица ссылок. Здесь зафиксированы сопоставления полей, которые выполняются во время просмотра тех или иных значений администратором. Ярким примером является список групп, членами которых является выбранный пользователь (см. рис. 2). В каталоге Active Directory значением поля member является distinguishedname объекта. Администратор же видит не относительный составной путь к группе, а его отображаемое имя (поле cn). Таблица ссылок самая маленькая среди существующих и не поддается изменению.

Рисунок 2. Пример использования таблицы ссылок
- Таблица данных. Это самая большая таблица, доступ к которой осуществляется с помощью мастеров Active Directory Users and Computers, Active Directory Sites and Services. В ней находится вся информация об объектах в домене: пользователях, группах и других сущностях, описанных в схеме. Также из этой таблицы осуществляется обращение к таблице ссылок и вывод значений, удобных для чтения.
Резервное копирование Active Directory
Перед дефрагментацией каталога Active Directory необходимо сделать резервную копию. Не стоит полагаться на собственный опыт и пренебрегать элементарными правилами работы системного администратора, ведь самое страшное, что может случиться, – это потеря данных, а не выход сервера из строя, как многие думают.
Резервное копирование, а точнее слепок состояния системы (System state), выполняется в нормальном режиме работы контроллера домена с помощью утилиты NTBACKUP.EXE. Эта процедура включает в себя копирование таких элементов как:
- каталог Active Directory (файлы NTDS.DIT, EDB.CHK, EDB*.LOG, RES1.LOG, RES2.LOG);
- системные компоненты (реестр, база зарегистрированных классов COM+, SYSVOL, кластер);
- сервисы, связанные с функционированием Active Directory (сервер сертификатов, DNS).
Перечень компонентов зависит от конфигурации вашего домена.
Запуск утилиты осуществляется из командной строки с помощью команды NTBACKUP. Для создания резервной копии системы (System State) необходимо запустить соответствующий мастер, вызвав Backup Master в меню Tools и в предлагаемом меню выбрав вариант Only back up the System State data (см. рис. 3).

Рисунок 3. Запуск мастера создания резервной копии
Далее остается выбрать путь резервного копирования системы и инициализировать процесс. Результатом работы мастера является файл с расширением BKF. По умолчанию предлагается имя backup.bkf.
Запуск контроллера домена в сервисном режиме
Для входа в сервисный режим контроллера домена его необходимо перезагрузить и вызвать меню загрузки с помощью клавиши <F8>, в появившемся меню (см. рис. 4) выбрать Directory Services Restore Mode. Режим представляет собой еще одну модификацию Safe Mode, созданного специально для управления базой данной Active Directory в сервисном режиме. Большинство манипуляций с базой Active Directory осуществляется с помощью утилиты NTDSUTIL.EXE, входящей в комплект операционной системы.

Рисунок 4. Вызов Directory Services Restore Mode
Возможности оболочки NTDSUTIL
Восстановление, дефрагментация и другие сервисные манипуляции с базой данных Active Directory осуществляются с помощью оболочки NTDSUTIL.EXE, лишенной графического интерфейса. По умолчанию файл NTDSUTIL.EXE находится в каталоге %SystemRoot%\System32.
После запуска оболочки необходимо инициализировать нужный режим работы с помощью одной из команд, приведенной в таблице 2.
Управление файлами NTDS базы данных
Для входа в режим управления файлами базы данных необходимо войти в режим FILES (см. таблицу 2). Для этого наберите FILES и нажмите клавишу <ENTER> в командной строке оболочки NTDSUTIL.
Таблица 2. Режимы работы утилиты NTDSUTIL
Команда
|
Описание режима работы
|
Authoritative restore
|
Надежное восстановление DIT базы данных
|
Configurable Settings
|
Настройка параметров соединения с доменом
|
Domain management
|
Подготовка к созданию нового домена
|
Files
|
Управление файлами NTDS базы данных
|
Group Membership Evaluation
|
Управление идентификаторами безопасности SID пользователей групп и пользователей
|
LDAP Policies
|
Управление политиками протокола LDAP
|
Metadata cleanup
|
Очистка метаданных
|
Roles
|
Управление ролями контроллера домена
|
Semantic database analysis
|
Семантический анализ базы данных
|
Set DSRM Password
|
Сброс пароля учетной записи администратора для безопасного режима восстановления каталога
|
Все профилактическое обслуживание Active Directory осуществляется в этом режиме. Работы состоят из нескольких этапов, которые могут исключаться, переставляться и т.д. В случае серьезных проблем с каталогом Active Directory приведенный регламент не подходит.
Проводимые работы можно разбить на три этапа:
- получение информации о базе данных;
- резервное копирование базы данных;
- проверка на наличие ошибок в Active Directory.
Получение информации
Получаемая в ходе проверки информация позволит проконтролировать состояние файлов базы данных, внутренних взаимосвязей и получить реальный размер базы данных Active Directory. Для получения информации используются три команды:
CHECKSUM. Определяет контрольную сумму файла ба-зы данных NTDS.DIT. Одновременно определяется размер файла, количество страниц в Active Directory.
INFO. С помощью этой команды осуществляется анализ всех файлов (см. рис. 5), участвующих в процессе работы Active Directory (см. таблицу 1).
INTEGRITY. Осуществляется логическая проверка взаимосвязей в базе данных Active Directory.

Рисунок 5. Пример работы команды INFO
Дефрагментация базы данных
Дефрагментация базы данных позволит сократить размер базы и убрать из нее «пустые» страницы. Для выполнения этой процедуры используют команду COMPACT TO %S, %S – путь к каталогу, в который будет записана дефрагментированная база данных Active Directory. Таким образом, используя дефрагментацию, администратор параллельно создает резервную копию Active Directory.
Проверка базы данных Active Directory
Для проверки и восстановления базы данных Active Directory используется команда RECOVER, которая инициализирует вызов утилиты esentutl.exe. После выполнения команды на экране появляется отчет (см. рис. 6).

Рисунок 6. Проверка базы данных Active Directory
Каждый новый пакет обновлений для сервера (service pack), каждая новая версия Windows Server таят в себе потенциальную опасность для целостности Active Directory. Регулярная проверка состояния базы данных позволит предотвратить неприятные последствия, а резервное копирование – восстановить ее максимально быстро. Вдобавок ко всему дефрагментация базы данных позволит увеличить скорость работы контроллера домена.