Как сжать базу данных Active Directory

Как известно, база  Active Directory  хранится в файле NTDS.DIT, размер которого может отличаться на разных контроллерах домена. Причина в том, что Active Directory- это служба каталога с мульти-мастерной независимой моделью, где изменение может произойти на любом  контроллере домена, и со временем эти изменения должны реплицироваться на остальные контроллеры домена. И т.к. изменения реплицируются между контроллерами домена, а не между базами данных, это означает, что размер файлов базы данных Active Directory  на различных контроллерах может отличаться.

В Windows 2000 и Windows Server 2003 служба Directory Services (DS) выполняют online-дефрагментацию каждые 12 часов в рамках процесса сбора мусора в базе (garbage-collection) Этот вид дефрагментации лишь перемещает данные внутри файла  базы данных (NTDS.DIT) и не уменьшает размер файла, это означало, что при запущенной службе Active Directory файл базы данных сжать нельзя.

Если же произвести офлайн дефрагментацию файла NTDS.DIT на контроллере домена при остановленной службе Active Directory, то размер файла NTDS.DIT может быть существенно уменьшен.

Однако стоит отметить – что дефрагментация файла NTDS.DIT – это абсолютно не обязательная процедура, т.к. в процессе работы механизмы Windows автоматически обеспечивают целостность и производительность базы AD, вычищая из нее удаленные объекты с истекшим сроком захоронения (tombstone lifetime). Офлайн дефрагментация файла NTDS.DIT, скорее всего не даст прироста в скорости выполнения запросов AD, единственная цель офлайн дефрагментации базы AD – возможность сэкономить место на диске.

Итак, чтобы сжать базу Active Directory необходимо остановить службу Active Directory Domain services. В Windows 2008 и выше достаточно просто остановить службу ADDS (net stop ntds), в Windows 2003 придется перезагрузить контроллер домена, и при загрузке загрузиться в режиме восстановления каталога (Directory Services Restore Mode), нажав  F8 и выбрав DSRM.

Как сжать базу Active Directory

После остановки базы данных Active Directory можно перейти к ее обслуживанию  с помощью утилиты NTDSUTIL (я уже описывал как с помощью этой команды можно выполнить  анализ базы данных Active Directory)

  1. В командной строке наберите: ntdsutil
  2. Затем files
  3. Если появится ошибка, что «Active Instance not being set», для выбора инстанса базы AD наберите  Activate Instance NTDS
  4. Затем выполните команду compact to c:\compactntds
  5. В результате запустится сжатие файла базы AD, а на экран будет выведен индикатор выполнения процесса
  6. После окончания процесса сжатия появится инструкция, с действиями которые необходимо выполнить далее (инструкции зависят от вашей конфигурации и местоположения файла NTDS.DIT)compress active directory - net  stop ntds
  7. Скопируйте сжатый файл NTDS.DIT в каталог с оригинальным файлом NTDS.DIT, например: copy “c:\compactntds\ntds.dit” “D:\ADDS\ntds.dit”
  8. Удалите старые логи из каталога NTDS.DIT: del /q c:\windows\NTDS\*.log
  9. Запустите службу ADDS (Windows Server 2008) или перезагрузите контроллер домена (Windows 2003/2000) для нормального запуска контроллера домена

Сжать базу данных active directory

Примечание: Процесс сжатия базы данных Active Directory достаточно прост. Но учтите, что эту операцию необходимо выполнить на всех контроллерах домена, на которых вы хотите уменьшить размер базы данных Active Directory, т.к. физически база данных AD сама по себе не реплицируется на все контроллеры домена (подробнее про репликацию Active Directory)

Предыдущая статья Следующая статья


Комментариев: 4 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)