Logo faq-o-matic.net
Logo faq-o-matic.net

Exchange Server 2003: Das Datenbanklimit per Skript setzen

von veröffentlicht am3. Februar 2008, 15:43 Uhr Kurzlink und Zitatlink einblenden
Kategorie Kategorie: Exchange, VBScript   Translate with Google Translate Translate EN   Die angezeigte Seite drucken

Seit dem Service Pack 2 für Exchange Server 2003 ist die Datenbankgröße der Standard Edition nicht mehr auf 16 GB begrenzt. Sie kann jetzt auf bis zu 75 GB anwachsen. Damit ist die Standard Edition für Mittelständler wieder interessant. Es gibt aber eine Stolperfalle: Nach der Installation liegt die Begrenzung der Datenbank bei 18 GB. Wer die vollen 75 GB (oder einen Zwischenwert) ausnutzen möchte, muss erst einen Eintrag in der Registry setzen. Wie das geht, beschreibt folgender Artikel:

[Konfiguration und Verwaltung der Größenbeschränkung von Datenbanken]
http://technet.microsoft.com/de-de/library/aa998066.aspx

Dabei gibt es aber gleich wieder einen Pferdefuß: Bei einem einzelnen Server ist so ein Registry-Eintrag schnell gesetzt. Was aber, wenn es um mehrere Server geht, die auch noch regional verteilt sind? Der naheliegende Gedanke, den Registry-Wert per Gruppenrichtlinie zu verteilen, scheidet leider aus: Schlauerweise muss die Einstellung in einem Pfad getroffen werden, der variable Werte enthält, nämlich den Servernamen und den GUID (!) der Datenbank. Tolle Wurst!

Abhilfe schafft aber ein kleines Skript. Es nutzt die Tatsache aus, dass die passenden Registry-Schlüssel bereits vorhanden sind und nur noch die passenden Einträge fehlen. Also liest es den GUID-Schlüssel einfach aus und setzt dort die nötigen Werte. Das folgende Skript setzt das Limit auf den Maximalwert von 75 GB und die Warnschwelle auf 10 Prozent (Exchange schreibt also eine Warnung ins Eventlog, wenn nur noch 10 Prozent frei sind). Achtung: Das Skript sollte nur auf Exchange Server 2003 Standard Edition eingesetzt werden! Auf einer Enterprise Edition funktioniert es nämlich auch und setzt die ("unbegrenzte") Datenbankgröße dann auf 75 GB herab …

 

  1. Set objShell = CreateObject("WScript.Shell")
  2. Set objNet = CreateObject("WScript.Network")
  3. strRegBasic = "SYSTEM\CurrentControlSet\Services\MSExchangeIS\"
  4. strComputername = objNet.ComputerName
  5. strRegComp = strRegBasic & strComputername
  6. Const HKEY_LOCAL_MACHINE = &H80000002
  7. strComputer = "."
  8. Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
  9.     strComputer & "\root\default:StdRegProv")
  10. oReg.EnumKey HKEY_LOCAL_MACHINE, strRegComp, arrSubKeys
  11. For Each subkey In arrSubKeys
  12. if left(subkey, 7) = "Private" then strRegPrivate = subkey
  13. Next
  14. If strRegPrivate <> "" Then
  15.     strRegPrivate = "HKEY_LOCAL_MACHINE\" & strRegComp & "\" & strRegPrivate
  16.     objShell.RegWrite strRegPrivate & "\Database Size Limit in GB", "75", "REG_DWORD"
  17.     objShell.RegWrite strRegPrivate & "\Database Size Buffer Warning in Percentage", "10", "REG_DWORD"
  18. End If
  19. WScript.Echo "Finished. Now restart the Information Store."

© 2005-2019 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!