Abhängigkeiten

Exchange 2010 hat viele Abhängigkeiten, die vor der eigentlichen Installation erfüllt sein müssen.
Musste man früher noch jede Abhängigkeit mehr oder minder einzeln installieren bringt die Version 2010 nun XML Dateien mit, die dies vereinfachen.
Im \scripts- Verzeichnis auf dem Installationsmedium finden sich Dateien wie z.B. Exchange-Hub.XML oder auch Exchange-CAS.XML. Diese Dateien können an den ServerManager übergeben werden um die Abhängigkeiten für die jeweilige Rolle automatisch zu installieren.
Für die Mailboxrolle wäre das z.B. die Datei Exchange-MBX.XML.
Der Aufruf erfolgt aus dem \scripts- Verzeichnis heraus durch:
ServerManagerCmd.exe -InputPath Exchange-MBX.XML
oder kurz
ServerManagerCmd.exe -ip Exchange-MBX.XML

Installation

Die Installation kann auch Kommandozeilen basiert durchgeführt werden.
setup.com /mode:install /roles:ca,mb,ht
installiert z.B. die Rollen ClientAccess, Mailbox und Hubtransport.
Die verfügbaren Rollen sind:
- HubTransport (ht)
- ClientAccess (ca)
- Mailbox (mb)
- EdgeTransport (edge)
- Unified Messaging (um)

Exchange 2007/2010 Mailboxgrössen listen

get-mailbox -resultsize unlimited -erroraction silentlycontinue | Get-MailboxStatistics | select-object *,@{name="TotalItemSizeinMB";expression={[math]::Round($_.totalitemsize.value.ToBytes() / 1MB,2)}},@{name="TotalDeletedItemSizeinMB";expression={[math]::Round($_.totaldeleteditemsize.value.ToBytes() / 1MB,2)}},@{name="CombinedTotalSizeinMB";expression={[math]::Round($_.totalitemsize.value.ToBytes() / 1MB,2) + [math]::Round($_.totaldeleteditemsize.value.ToBytes() / 1MB,2)}} | sort-object combinedtotalsizeinMB -Descending | format-table displayname,*MB

Mailboxen verschieben

Move sofort laufen lassen
New-MoveRequest -id 'Hans Meiser' -TargetDatabase 'Mailbox Database 1314687767'

Move in die Queue stellen ohne sofort zu starten
New-MoveRequest -id 'Hans Meiser' -Suspend -TargetDatabase 'Mailbox Database 1314687767'

Move aus der Queue loslaufen lassen
Resume-MoveRequest -id 'Hans Meiser'

Fortschritt des Move- Vorgangs anzeigen
Get-MoveRequestStatistics -MoveRequestQueue "Mailbox Database 1314687767"

Genauere Move Infos anzeigen
Get-MoveRequestStatistics -id 'Hans Meiser' | Select DisplayName, Status, TotalItemSize, TotalMailboxItemCount, PercentComplete, BytesTransferred, ItemsTransferred

Move-Reports erstellen
$MRep = Get-MailboxStatistics
 -id TR -IncludeMoveReport
$MRep.MoveHistory\[0] |
  Export-CSV 'C:\TEMP\MoveReport.CSV'

Anzahl der simultanen Move- Vorgänge ändern

Mit der Einführung von Exchange 2010 wurden die simultanen Verschiebevorgänge von 5 auf 2 reduziert. Um die ursprüngliche Einstellung wieder zu erhalten oder auch höhere Werte einzutragen muss die Datei MSExchangeMailboxReplication.exe.config, die sich unter <Exchange Installationspfad>\Programme\Microsoft\Exchange Server\V14\Bin findet angepasst werden.
Hierin sind folgende Parameter dafür relevant: MaxActiveMovesPerSourceMDB
MaxActiveMovesPerTargetMDB
MaxActiveMovesPerSourceServer
MaxActiveMovesPerTargetServer
MaxTotalMovesPerMRS Die Namen der Parameter sind denke ich selbsterklärend. Nach erfolgter Anpassung der Werte ist der Dienst "Mailbox Replication Service" neu zu starten. Die Änderungen müssen selbstverständlich an allen CAS Servern durchgeführt werden. Nach der Parameteränderung müssen unbedingt die Systemparameter des Systems überwacht werden! Durch "übertriebene" Werte kann man jederzeit das Mailsystem unbrauchbar machen! Also Vorsicht und die Performancecounter von den CPUs und den Festplatten im Auge behalten! Genaue Informationen zu den Begrenzungen finden sich im Technet unter http://technet.microsoft.com/en-us/library/ff963524.aspx

Defragmentierung

Exchange- Datenbanken können z.B. durch das Verschieben von Mailboxen oder Migrationen stark fragmentiert werden. Konkret bedeutet das, dass die effektive Datenmenge und die Dateigrösse der Datenbank sehr stark variieren. Dies kann unter ungünstigen Umständen sogar dazu führen, dass eine Festplatte bis zum Rand volläuft obwohl eigentlich nur ein Bruchteil an Daten vorhanden sind. Spätestens dann wird es Zeit die betroffene Datenbank zu defragmentieren. Um festzustellen wieviel freier Platz in einer Exchange- Datenbank eigentlich noch zur Verfügung steht kann man sich diesen in der Powershell mit folgendem Kommando anzeigen lassen:  
Get-MailboxDatabase -Status | Select Servername, Name, DatabaseSize, AvailableNewMailboxSpace
  Um nun die eigentliche Defragmentierung starten zu können muss man noch berechnen wie gross die Nutzdaten eigentlich sind:
Nutzdaten = DatabaseSize - AvailableNewMailboxSpace Für die Defragmentierung benötigt man dann 110% des Platzes der Nutzdaten. Sind also 800 GB Mails in der Datenbank wird freier Platz von mindestens 880 GB benötigt.
Nun gilt es die Datenbank zu dismounten, da der Vorgang nur offline durchgeführt werden kann. Sind alle Vorarbeiten erledigt gibt man am DOS- Prompt folgendes ein:  
eseutil /d DATENBANK
  Angenommen die Datenbank liegt auf Laufwerk D: im Verzeichnis db und nennt sich ExDB17 sieht der Befehl so aus:  
eseutil /d D:\db\ExDB17.edb
  Vorsicht! Der oben erwähnte benötigte Platz wird ohne Angabe eines Parameters standardmässig auf Laufwerk C: gesucht.
Will man den temporären Platz auf Laufwerk F: im Verzeichnis defrag nutzen so ist der Befehl folgendermassen zu erweitern:  
eseutil /d D:\db\ExDB17.edb /tF:\defrag\TempDBName.edb
  Nun gilt es nur noch viel Zeit mitzubringen!
Die Daten werden aus der eigentlichen Datenbank gelesen und, sofern das Programm auf Nutzdaten stösst, in die temporäre Datenbank geschrieben. Nachdem dies zu Ende ist wird die temporäre Datenbank an den Ort der eigentlichen Datenbank kopiert. Beides dauert einfach eine Weile. Nach Abschluss des gesamten Durchlaufs muss die Datenbank nur wieder gemountet werden.