Серверы под управлением Windows с установленной службой каталогов выполняют дефрагментацию данных каждые 12 часов в качестве одного из этапов оптимизации системы. Процесс дефрагментации непосредственно связан с файлом базы данных (NTDS.DIT), размер которого не сокращается.
Для создания новой версии файла с меньшим объемом и проведения “скрытой” дефрагментации сделайте следующее.
1. Создайте архивную копию Active Directory.
2. Перезагрузите сервер, выберите необходимую операционную систему и нажмите клавишу <F8> для указания дополнительных параметров загрузки.
3. Выберите параметр Directory Services Restore Mode (Windows Domain Controllers Only)) и нажмите клавишу <Enter>. Нажмите клавишу <Enter> еще раз для загрузки операционной системы.
4. ОС Windows запустится в безопасном режиме без поддержки службы каталогов.
5. Воспользуйтесь локальной учетной записью администратора для регистрации в системе.
6. Будет показано диалоговое окно, сообщающее о работе системы в безопасном режиме. Кликните на кнопке OK.
7. В меню Пуск (Start) выберите команду Выполнить (Run) и введите такую команду:
cmd.exe
8. В командной строке будет показан следующий текст (вводимые команды выделены жирным шрифтом):
C:\> ntdsutil
ntdsutil: files
file maintenance: info
…
file maintenance: compact to c:\temp
9. Начнется процесс дефрагментации. Если дефрагментация завершится успешно, то в командной строке необходимо ввести следующие команды:
quit
quit
10. Затем необходимо заменить старый файл NTDS.DIT на его новую, сжатую версию:
copy c:\temp\ntds.dit %systemroot%\ntds\ntds.dit
11. Перезагрузите компьютер, после чего загрузите систему в нормальном режиме работы.
Далее представлен пример всей процедуры дефрагментации Active Directory:
D:\> ntdsutil
ntdsutil: files
file maintenance: info
Drive information:
C:\ FAT (Fixed Drive) free(1.2 Gb) total(1.9 Gb)
D:\ NTFS (Fixed Drive) free(152.4 Mb) total(1.9 Gb)
DS Path Information:
Database : D:\WINDOWS\NTDS\ntds.dit – 8.1 Mb
Backup dir : D:\WINDOWS\NTDS\dsadata.bak
Working dir : D:\WINDOWS\NTDS
Log dir : D:\WINDOWS\NTDS – 30.0 Mb total
res2.log – 10.0 Mb
res1.log – 10.0 Mb
edb.log – 10.0 Mb
file maintenance: compact to c:\temp
Opening database [Current].
Using Temporary Path: C:\
Executing Command: D:\WINDOWS\system32\esentutl.exe /d
“D:\WINDOWS\NTDS\ntds.dit” /
/o /1”D:\WINDOWS\NTDS” /s”D:\WINDOWS\NTDS” /t”c:\temp\ntds.dit”
/!10240 /p
Initiating DEFRAGMENTATION mode…
Database: D:\WINDOWS\NTDS\ntds.dit
Log files: D:\WINDOWS\NTDS
System files: D:\WINDOWS\NTDS
Temp. Database: c:\temp\ntds.dit
Defragmentation Status (% complete)
0 10 20 30 40 50 60 70 80 90 100
|–|–|–|–|–|–|–|–|–|–|
………………………….
Operation completed successfully in 17.896 seconds.
Spawned Process Exit code 0x0(0)
D:\> copy c:\temp\ntds.dit %systemroot%\ntds\ntds.dit
Overwrite D:\WINDOWS\ntds\ntds.dit? (Yes/No/All) : y
1 file(s) copied.
Примечание: после дефрагментации рекомендуется немедленно провести резервное копирование базы данных. Если восстановить резервную копию, сделанную до дефрагментации, содержание базы данных будет восстановлено на момент создания резервной копии (и дефрагментация пройдет впустую).
Если сжатие файла прошло успешно, необходимо заменить файл D:\WINDOWS\NTDS\ntds.dit файлом C:\temp\ntds\ntds.dit.