[win2003] Active Directory defraggen

Pagina: 1
Acties:
  • 384 views sinds 30-01-2008
  • Reageer

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 06-03 20:19

_Thanatos_

Ja, en kaal

Topicstarter
Ik krijg in m'n "Directory Service" event log iedere 12 uur twee events, nml eerst 700 en vrijwel direct erna 701. In de eerste staat dat de NTDS gedefragmenteerd gaat worden en in de tweede staat dat ie ermee klaar is.

Nu is dit allemaal volstrekt normaal, maar ik vroeg me af of je de defragmentatie hiervan ergens kan beheren. Ik wil nml de defragmentatie minder vaak laten gebeuren, en evt de event logs ervan onderdrukken. Want zo loopt het event log vol, waardoor belangrijkere events misschien aan het zicht ontgaan. Met dat 2x per dag gewoon klinklare bullshit is, omdat de database misschien 1x per maand verandert, laat staan dat er defrag nodig is.

Ik heb al in de KB en op google gezocht (uiteraars) en gekeken of je iets met de ntdsutil.exe kan, maar daar zit het volgens mij niet in...

[ Voor 13% gewijzigd door _Thanatos_ op 11-06-2004 16:37 ]

日本!🎌


Verwijderd

Mijn inziens is het beter om de default logsize van 512 Kb te verhogen naar bv 8096 Kb,
zodat je andere informatie niet snel zult kwijt raken!

Maar het is inderdaad mogelijk om de automatische online defragmentation uit te schakelen, en dit dan handmatig te gaan doen. Ik zou wel een goede backup strategy voor je AD bedenken! Helaas wordt nergens de registry key genoemd om het automatisch online defragmenteren uit te schakelen :(

Extra aanvullende informatie:
How the Data Store Works
The Active Directory Database Garbage Collection Process
Automatic online defragmentation
Both Windows 2000 Server–based and Windows Server 2003–based domain controllers perform online defragmentation automatically. The ESE invokes online defragmentation after each garbage collection, which occurs every 12 hours by default.

To start online defragmentation manually at any time, irrespective of garbage collection intervals, you can add the operational attribute doOnlineDefrag to the rootDSE object. The value of this attribute dictates the duration (in seconds) for which online defragmentation runs. After setting this attribute value, you can create a script that takes the duration as input so that online defragmentation can be triggered by the script at any time for any duration of runtime.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
' This VBScript code kicks off an online defrag to run for up to 180 seconds
' ---------------------------------------------------------------
' From the book "Active Directory Cookbook" by Robbie Allen
' Publisher: O'Reilly and Associates
' ISBN: 0-596-00466-4
' Book web site: http://rallenhome.com/books/adcookbook/code.html
' ---------------------------------------------------------------

' ------ SCRIPT CONFIGURATION ------
strDC = "<DomainControllerName>"  ' e.g. dc01
' ------ END CONFIGURATION ---------

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


If you want online defragmentation to always occur only on demand, you can configure the registry so that automatic online defragmentation is disabled.

[ Voor 27% gewijzigd door Verwijderd op 11-06-2004 19:32 ]


  • Arno
  • Registratie: Juli 2000
  • Laatst online: 08-05 09:20

Arno

PF5A

De offline defrag kan wel via ntdsutil, maar dan moet je je dc rebooten in AD restore modus.

"Supercars are made to mess around with G-forces, hypercars are made to mess around with G-strings"
Jeremy Clarkson


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 06-03 20:19

_Thanatos_

Ja, en kaal

Topicstarter
Ik zou wel een goede backup strategy voor je AD bedenken!
Dat moet je sowieso :)
Het uitschakelen (of verminderen van frequentie) van online defrag houdt toch alleen maar in dat het trager gaat na mutaties in de AD? Of voert ie ook reparaties uit?

En als iemand de betreffende registry settings weet om online defrag aan te passen, dan hoor ik het graag natuurlijk ;)

日本!🎌


Verwijderd

Als ik het goed gelezen heb, dan volgt die online defrag na een garbage collection stap. Voor het aanpassen van het default garbage collection interval (12 uur) heb ik volgend script gevonden:
code:
1
2
3
4
5
6
7
8
9
10
11
12
' This code changes the default garbage collection interval
' ------ SCRIPT CONFIGURATION ------
intGarbageColl = <IntervalInHours>
' ------ END CONFIGURATION ---------

set objRootDSE = GetObject("LDAP://RootDSE")
set objDSCont = GetObject("LDAP://cn=Directory Service,cn=Windows NT," & _
             "cn=Services," & objRootDSE.Get("configurationNamingContext") )
objDSCont.Put "garbageCollPeriod", intGarbageColl
objDSCont.SetInfo
WScript.Echo "Successfully set the garbage collection interval to " & _
             intGarbageColl

[update: uitgetest]
Ik heb met dit script het default garbage collection interval ingesteld op 1 uur + de server gereboot. En zie hier het resultaat in Directory Service Log:
code:
1
2
3
4
Information    6/12/2004 11:20:09 AM   NTDS ISAM    Online Defragmentation 701
Information    6/12/2004 11:20:04 AM   NTDS ISAM    Online Defragmentation 700
Information    6/12/2004 10:20:09 AM   NTDS ISAM    Online Defragmentation 701
Information    6/12/2004 10:20:03 AM   NTDS ISAM    Online Defragmentation 700

[ Voor 46% gewijzigd door Verwijderd op 12-06-2004 11:44 ]


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 06-03 20:19

_Thanatos_

Ja, en kaal

Topicstarter
Tnx! Het lijkterop dat ik em nu op iedere 168 uur heb kunnen zetten (wekelijks dus)

日本!🎌

Pagina: 1