Recipe 16.10 Performing an Online Defrag Manually

This recipe must be run against a Windows Server 2003 domain controller.

16.10.1 Problem

You want to initiate an online defragmentation. This can be useful if you want to expedite the defrag process after deleting a bunch of objects.

16.10.2 Solution Using a graphical user interface
  1. Open LDP.

  2. From the menu, select Connection Connect.

  3. For Server, enter the name of the target domain controller.

  4. For Port, enter 389.

  5. Click OK.

  6. From the menu, select Connection Bind.

  7. Enter credentials of a user from one of the administrator groups.

  8. Click OK.

  9. From the menu, select Browse Modify.

  10. Leave the Dn blank.

  11. For Attribute, enter DoOnlineDefrag.

  12. For Values, enter 180.

  13. For Operation, select Add.

  14. Click Enter.

  15. Click Run. Using a command-line interface

Create an LDIF file called online_defrag.ldf with the following contents:

changetype: modify
replace: DoOnlineDefrag
DoOnlineDefrag: 180

then run the following command:

> ldifde -v -i -f online_defrag.ldf Using VBScript
' This code kicks off an online defrag to run for up to 180 seconds
strDC = "<DomainControllerName>"  ' e.g. dc01
' ------ END CONFIGURATION ---------

set objRootDSE = GetObject("LDAP://" & strDC & "/RootDSE")
objRootDSE.Put "DoOnlineDefrag", 180
WScript.Echo "Successfully initiated an online defrag"

16.10.3 Discussion

New to Windows Server 2003 is the ability to initiate an online defragmentation. By default, the online defrag process runs every 12 hours on each domain controller. This process defrags the Active Directory database (ntds.dit) by combining whitespace generated from deleted objects, but does not reduce the size of the database file.

To kick off an online defrag, simply write the DoOnlineDefrag attribute to the RootDSE with a value equal to the maximum time the defrag process should run (in seconds). You must be a member of one of the administrator groups in the domain controller's domain in order to write to this attribute.

16.10.4 See Also

Recipe 16.12 for performing an offline defrag and MS KB 198793 (The Active Directory Database Garbage Collection Process)

    Chapter 3. Domain Controllers, Global Catalogs, and FSMOs
    Chapter 6. Users
    Appendix A. Tool List