Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Applies To: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2
During ordinary operation, the white space in the Active Directory database file becomes fragmented. Each time garbage collection runs (every 12 hours, by default), white space is automatically defragmented online to optimize its use within the database file. The unused disk space is thereby maintained for the database; it is not returned to the file system.
Only offline defragmentation can return unused disk space from the directory database to the file system. When database contents have decreased considerably through a bulk deletion (for example, you remove the global catalog from a domain controller), or if the size of the database backup is significantly increased due to the white space, use offline defragmentation to reduce the size of the Ntds.dit file.
You can determine how much free disk space is recoverable from the Ntds.dit file by setting the garbage collection logging level in the registry. Changing the garbage collection logging level from the default value of 0 to a value of 1 results in event ID 1646 being logged in the directory service log. This event describes the total amount of disk space used by the database file as well as the amount of free disk space that is recoverable from the Ntds.dit file through offline defragmentation.
At garbage collection logging level 0, only critical events and error events are logged in the directory service log. At level 1, high-level events are logged as well. Events can include one message for each major task that is performed by the service. At level 1, the following events are logged for garbage collection:
Event IDs 700 and 701: report when online defragmentation begins and ends, respectively.
Event ID 1646: reports the amount of free space available in the database out of the amount of allocated space.
Warning
Setting the value of entries in the Diagnostics subkey to greater than 3 can degrade server performance and is not recommended.
Following offline defragmentation, perform a database integrity check. The integrity command in Ntdsutil.exe detects binary-level database corruption by reading every byte in the database file. The process ensures that the correct headers exist in the database itself and that all of the tables are functioning and consistent. Therefore, depending upon the size of your Ntds.dit file and the domain controller hardware, the process might take considerable time. In testing environments, the speed of 2 GB per hour is considered to be typical. When you run the command, an online graph displays the percentage completed.
Task requirements
The following tools are required to perform the procedures for this task:
Regedit.exe
Backup software
Ntdsutil.exe
To complete this task, perform the following procedures:
Use one of the following procedures:
Restart the domain controller in Directory Services Restore Mode locally
If you are logged on to the domain controller locally, restart the domain controller in Directory Services Restore Mode.
Restart the domain controller in Directory Services Restore Mode Remotely
If you are using Remote Desktop Connection for remote administration, you can restart the domain controller remotely in Directory Services Restore Mode after modifying the Boot.ini file on the remote server.
Compact the directory database file (offline defragmentation)
As part of the offline defragmentation procedure, check directory database integrity.
If database integrity check fails, perform semantic database analysis with fixup