Active Directory automatically performs online defragmentation of the database at certain intervals (by default, every 12 hours) as part of the Garbage Collection process. Online defragmentation does not reduce the size of the database file (Ntds.dit), but instead optimizes data storage in the database and reclaims space in the directory for new objects.
Performing an offline defragmentation creates a new, compacted version of the database file. Depending on how fragmented the original database file was, the new file may be considerably smaller.
To perform offline defragmentation of the Active Directory database:
- Back up Active Directory. Windows 2000 Backup natively supports backing up Active Directory while online. This occurs automatically when you select the option to back up everything on the computer in the Backup Wizard, or independently by selecting to back up the "System State" in the wizard.
- Reboot the domain controller, select the appropriate installation from the boot menu, and press F8 to display the Windows 2000 Advanced Options menu. Choose Directory Services Restore Mode and press ENTER. Press ENTER again to start the boot process.
- Log on using the Administrator account with the password defined for the local Administrator account in the offline SAM. For more information about the use of the offline SAM database, please see the following Article in the Microsoft Knowledge Base:
Protection of the Administrator Account in the Offline SAM
- Click Start, point to Programs, point to Accessories, and then click Command Prompt. At the command prompt, type ntdsutil, and then press ENTER.
- Type files, and then press ENTER.
- Type info, and then press ENTER. This displays current information about the path and size of the Active Directory database and its log files. Note the path.
- Establish a location that has enough drive space for the compacted database to be stored.
- Type compact to drive:\directory, and then press ENTER, where drive and directory is the path to the location you established in the previous step.
Note You must specify a directory path. If the path contains any spaces, the entire path must be surrounded by quotation marks. For example, type:
compact to "c:\new folder"
- A new database named Ntds.dit is created in the path you specified.
- Type quit, and then press ENTER. Type quit again to return to the command prompt.
- If defragmentation succeeds without errors, follow the Ntdsutil.exe on-screen instructions. Delete all the log files in the log directory by typing the following command:
del drive :\ pathToLogFiles \*.log Copy the new Ntds.dit file over the old Ntds.dit file in the current Active Directory database path that you noted in step 6.
Note You do not have delete the Edb.chk file.
- Restart the computer normally.
Article ID: 232122 - Last Review: August 13, 2007 - Revision: 2.1
- Microsoft Windows Server 2003, Standard Edition (32-bit x86)
- Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
- Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
- Microsoft Windows 2000 Server
- Microsoft Windows 2000 Advanced Server
- Microsoft Windows 2000 Datacenter Server