Как правильно сжать базу данных 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 может быть существенно уменьшен. Сам файл лежит по пути C:\Windows\NTDS, в моем примере он весит 122 мегабайта.
Размер данного файла прямиком зависит от количества групповых политик у вас к лесу и естественно, от количества групп и пользователей присутствующих в Active Directory. Однако стоит отметить – что дефрагментация файла 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.
Запускаем cmd и пишем net stop ntds, для того чтобы остановить службы AD.
Жмем Y, чтобы подтвердить выключение.
Видим, что все остановилось ок. В командной строке наберите: ntdsutil жмем Enter
- Затем Activate Instance NTDS жмем Enter
- Files жмем Enter
- Затем выполните команду compact to c:\tntds
В результате запустится сжатие файла базы AD, а на экран будет выведен индикатор выполнения процесса. После окончания процесса сжатия появится инструкция, с действиями которые необходимо выполнить далее (инструкции зависят от вашей конфигурации и местоположения файла NTDS.DIT)
Теперь выходим из ntdsutil-quit и еще раз quit. Скопируйте сжатый файл NTDS.DIT в каталог с оригинальным файлом NTDS.DIT, например: copy “c:\tntds\ntds.dit” “С:\ Windows\NTDS\ntds.dit”. Удалите старые логи из каталога NTDS.DIT: del /q c:\windows\NTDS\*.log. Запустите службу ADDS (Windows Server 2008R2) или перезагрузите контроллер домена (Windows 2003/2000) для нормального запуска контроллера домена.
Примечание: Процесс сжатия базы данных Active Directory достаточно прост. Но учтите, что эту операцию необходимо выполнить на всех контроллерах домена, на которых вы хотите уменьшить размер базы данных Active Directory, т.к. физически база данных AD сама по себе не реплицируется на все контроллеры домена. Хочу кстати напомнить, что именно содержится в файле NTDS.dit, чтобы вы понимали, что именно сжимается в базе данных AD:
- Схему AD
- Раздел Configuration
- Domain
- DNS
- PAS
Как видите, сама процедура сжатия базы данных Active Directory очень простая, от администратора потребуется выполнить пару команд в оболочке cmd. Я если честно на практике не встречал людей, кто бы это делал, да и масштабы базы данных просто не такие, вот если бы она весила пару гигабайт, то сжатие NTDS.dit, было бы очень оправдано, но такие размеры, только в очень крупных компаниях. Материал сайта Pyatilistnik.org