Recently my home server started reporting some errors with reading from the AD database file:
NTDS (612) NTDSA: A request to read from the file "C:\Windows\NTDS\ntds.dit" at offset 14368768 (0x0000000000db4000) for 8192 (0x00002000) bytes succeeded, but took an abnormally long time (25 seconds) to be serviced by the OS. In addition, 1 other I/O requests to this file have also taken an abnormally long time to be serviced since the last message regarding this problem was posted 3267 seconds ago. This problem is likely due to faulty hardware. Please contact your hardware vendor for further assistance diagnosing the problem.
Now, searching for the issue on the Internet seemed to just return a bunch of answers to check the disk, HDD is failing, etc. All of which I knew was not to be true. This wasn’t a hardware issue but something related to the way the system was working, so I decided to run a quick compact of the database and see if that cleared up the issue as compacting the AD DS database NTDS.DIT improves performance. Although the improvement varies depending on amount of changes to the database – at the very least I figured if it was bad sectors, a compact and copy would move the file to good sectors.
- Open the Services.msc panel and stop "Active Directory Domain Services" (also stops the services below)
- File Replication Service
- Kerberos Key Distribution Center
- Intersite Messaging
- DNS Server
- Open a command line, type the following (without quotes):
- “activate instance ntds”
- “compact to c:\temp”
- At this point, enter “quit” twice. Once to get out of file maintenance, the second to get out of the ntdsutil program
- Now, copy the ntds.dit file from temp over the file located in C:\windows\ntds\ntds.dit and delete all the *.log files
- Last step, start the "Active Directory Domain Services" in services.msc, the other dependant services that stopped will also come back up.
So, fingers crossed it all looks good.