Exchange-Speicherarchitektur

 

Letztes Änderungsdatum des Themas: 2005-05-23

Auf Exchange-Servern werden Daten in zwei Dateien gespeichert: in einer EDB-Datei und einer STM-Datei. Die EDB-Datei und die STM-Datei ergeben zusammen ein Exchange-Informationsspeicherrepository. Im Standardpostfachspeicher auf einem Exchange-Server werden beispielsweise die Dateien Priv1.edb und Priv1.stm verwendet. Im Standardinformationsspeicher für Öffentliche Ordner werden die Dateien Pub1.edb und Pub1.stm verwendet. Die EDB-Datei enthält zahlreiche Tabellen mit Metadaten für alle E-Mail-Nachrichten und andere Objekte im Exchange-Informationsspeicher, sowie Inhalte von MAPI-Nachrichten. Die EDB-Datei ist eine ESE-Datenbank. Da sie vor allem zum Speichern von MAPI-Nachrichten und -Anlagen verwendet wird, wird sie auch als MAPI-Datenbank bezeichnet. In der STM-Datei wird dagegen der systemeigene Internetinhalt gespeichert. Da der Internetinhalt in einem systemeigenen Format geschrieben ist, müssen Nachrichten und andere Objekte nicht in das Exchange-Format umgewandelt werden, wie das in Exchange 5.5 und früheren Versionen der Fall war. Die STM-Datei ist auch eine ESE-Datenbank und wird als Streamingdatenbank bezeichnet. Die EDB- und die STM-Datei werden als Dateienpaar verwendet. Die Datenbanksignatur (eine 32-Bit-Zufallszahl in Kombination mit dem Erstellungszeitpunkt der Datenbank) wird als Kopfzeile in beiden Dateien gespeichert. Das interne Schema für die STM-Seiten wird in der EDB-Datei gespeichert.

noteAnmerkung:
Sie können die EDB- und STM-Datenbanken umbenennen und sie in andere Verzeichnisse im Exchange-System-Manager verschieben. Da die EDB- und die STM-Datei zusammen ein vollständiges Exchange-Informationsspeicherrepository bilden, sollten diese Dateien zusammen gespeichert und mit einem gemeinsamen Namen mit unterschiedlichen Erweiterungen (d. h. EDB und STM) versehen werden.

In Exchange Server 2003 werden Änderungen in Speichergruppen mit Transaktionen gesteuert. Diese Transaktionen werden in einem Transaktionsprotokoll aufgezeichnet. Dies entspricht in etwa der Weise, wie Transaktionen in herkömmlichen Datenbanken gespeichert werden. Änderungen werden in Abhängigkeit vom Erfolg der Transaktion ausgeführt oder zurückgesetzt. Bei Fehlfunktionen werden Transaktionsprotokolle (zusammen mit den Datenbankdateien und in einigen Fällen mit der Prüfpunktdatei) zum Wiederherstellen einer Datenbank verwendet. Transaktionen werden mit dem Microsoft Exchange-Informationsspeicherdienst (Store.exe) verwaltet. Alle nicht ausgeführten Einträge im Transaktionsprotokoll gelten als Teil einer aktuellen Exchange-Datenbank, wie in der folgenden Abbildung dargestellt.

c236b0b1-1e8b-4f56-9643-4813d0d54acc

In Exchange Server 2003 sind die folgenden beiden Datenbanktypen verfügbar:

  • Datenbanken des Privaten Informationsspeichers   In diesen Datenbanken werden Postfächer und Nachrichtenwarteschlangen für MAPI-basierte Messagingconnectors gespeichert.
  • Datenbanken des Öffentlichen Informationsspeichers   In diesen Datenbanken werden Hierarchien und Inhalte von Öffentlichen Ordnern gespeichert.

In der folgenden Abbildung ist die interne Architektur des Exchange-Informationsspeichers dargestellt. Mit dem Microsoft Exchange-Informationsspeicherdienst (Store.exe) wird über ESE (Extensible Storage Engine) auf die Datenbankdateien im Dateisystem zugegriffen und über verschiedene Schnittstellen, z. B. MAPIsvr, ExPOP, ExIMAP, ExSMTP und ExOLEDB, der Zugriff auf die Daten ermöglicht. In Clientanwendungen und Anwendungsprogrammierschnittstellen (API), z. B. CDOEX (Collaboration Data Objects für Exchange), können diese Schnittstellen verwendet oder eine Verbindung mit dem Messagingdatenbankmodul (MDB) hergestellt werden.

40668745-b91e-4505-a7b9-ab88974a9ad0

Speichergruppen

Jede Speichergruppe setzt sich aus mehreren Protokoll- und zusätzlichen Dateien (interne temporäre Datenbanken, Prüfpunktdatei und reservierte Protokolle) für alle Datenbanken (EDB-Dateien, STM-Dateien) in der Speichergruppe zusammen. In Exchange Server 2003 werden mehrere Speichergruppen und mehrere Datenbanken in jeder Speichergruppe unterstützt. In Exchange Server 2003 können auf einem Server bis zu vier Speichergruppen und in einer Speichergruppe bis zu fünf Datenbanken unterstützt werden. Aufgrund der Unterstützung mehrerer Datenbanken können Sie verschiedene Postfächer und Öffentliche Ordner auf mehrere kleinere Datenbanken verteilen und dadurch die Datenbankverwaltung vereinfachen. In Exchange 2000 Server und Exchange Server 2003 können bis zu 20 Datenbanken für Postfächer und Öffentliche Ordner auf einem Server verwendet werden.

Speichergruppenarchitektur

Wie in der folgenden Abbildung veranschaulicht, werden alle Speichergruppen über den gleichen Store.exe-Prozess verwaltet. Jede Speichergruppe wird durch eine ESE-Instanz dargestellt.

6ff925c2-ec78-489a-b8ed-30891a3d25f2

In jeder Speichergruppe stellt jedes EDB- und STM-Datenbankpaar einen Postfachspeicher oder einen Speicher für Öffentliche Ordner dar. Wie in Abbildung 10.3 gezeigt, wird in allen Postfachspeichern und Informationsspeichern für Öffentliche Ordner in einer bestimmten Speichergruppe ein gemeinsamer Satz von Protokoll- und anderen Systemdateien verwendet. Mit diesen Dateien wird die transaktionsorientierte Verarbeitung ermöglicht.

Die Protokoll- und anderen Systemdateien in jeder Speichergruppe haben folgende Funktionen:

  • <Protokollpräfix>xxx.chk   Dies ist die Prüfpunktdatei (z. B. E00.chk), mit der festgelegt wird, welche Transaktionen verarbeitet werden müssen und damit von den Transaktionsprotokolldateien in die Datenbanken verschoben werden. Prüfpunktdateien werden aktualisiert, wenn durch ESE eine bestimmte Transaktion in eine Datenbankdatei geschrieben wird. Durch diese Aktualisierung verweist die Prüfpunktdatei immer auf die letzte Transaktion, die erfolgreich in die Datenbank übertragen wurde. Dadurch wird ein schnelles Wiederherstellungsverfahren bereitgestellt. Prüfpunktdateien sind jedoch für das Ausführen von Transaktionen in Datenbanken nicht erforderlich. Mit ESE können Transaktionsprotokolldateien direkt verarbeitet werden. Darüber hinaus kann festgestellt werden, welche Transaktionen noch nicht übertragen wurden. Dieses Verfahren nimmt erheblich mehr Zeit in Anspruch als die Verwendung von Prüfpunkten.

    noteAnmerkung:
    Durch Extensible Storage Engine wird gewährleistet, dass Transaktionen nicht mehrfach in eine Datenbank geschrieben werden.
  • Exx.log   Hierbei handelt es sich um die aktuelle Transaktionsprotokolldatei für die Speichergruppe. Durch Transaktionsprotokolldateien kann die Datenspeicherung über ESE effizient und mit einer hohen Geschwindigkeit durchgeführt werden. Mit ESE werden neue Transaktionen, z. B. die Übermittlung einer Nachricht, gleichzeitig in einem Cache im Arbeitsspeicher und im Transaktionsprotokoll gespeichert. Die Daten werden sequentiell geschrieben. Neue Daten werden ohne komplexe Datenbankoperationen zu den vorhandenen Daten hinzugefügt. Die Transaktionen werden zu einem späteren Zeitpunkt gruppenweise vom Cache im Arbeitsspeicher in die Datenbanken verschoben, in denen sie dann aktualisiert werden.
    In der Standardeinstellung wird für die Standardspeichergruppe mit der Bezeichnung Erste Speichergruppe das Präfix E00 verwendet. Die entsprechende Transaktionsprotokolldatei trägt den Namen E00.log. Die Datei E00.log wird für alle Postfachspeicher und Informationsspeicher für Öffentliche Ordner in der Speichergruppe verwendet. Beim Erstellen von weiteren Speichergruppen wird die Nummerierung der Präfixe mit E01, E02 und E03 fortgesetzt.

  • <Protokollpräfix>XXXXX.log   Dies sind Transaktionsprotokolldateien, in denen kein Speicherplatz für weitere Daten vorhanden ist. In der Standardeinstellung beträgt die Größe von Transaktionsprotokolldateien immer genau 5.242.880 Byte (5 Megabyte). Obwohl es theoretisch möglich ist, die Größe der Protokolldatei zu ändern, wird davon abgeraten. Wenn ein Protokoll die maximale Größe erreicht, wird es umbenannt, damit eine neue leere Transaktionsprotokolldatei erstellt werden kann. Umbenannte Transaktionsprotokolldateien werden als vorherige Protokolldateien bezeichnet. Das Namensformat von vorherigen Protokolldateien lautet <Protokollpräfix>XXXXX.log (z. B. E00XXXXX.log), wobei XXXXX für eine 5-stellige hexadezimale Zahl von 00000 bis FFFFF steht. Die vorherigen Protokolldateien befinden sich in den gleichen Verzeichnissen wie die aktuelle Transaktionsprotokolldatei.

  • Res1.log und Res2.log   Hierbei handelt es sich um reservierte Transaktionsprotokolldateien für eine Speichergruppe. Reservierte Protokolldateien sind ein Notfallrepository für Transaktionen. Sie verfügen über genügend Festplattenspeicherplatz zum Schreiben einer Transaktion vom Arbeitsspeicher auf Festplatte, selbst wenn auf der Festplatte eines Servers keine neuen Transaktionen in einer Protokolldatei mehr gespeichert werden können. Die reservierten Protokolldateien befinden sich im Transaktionsprotokollverzeichnis. Sie werden bei der Initialisierung der Datenbanken automatisch erstellt. Sie können zu keinem späteren Zeitpunkt erstellt werden.
    Reservierte Transaktionsprotokolldateien werden mit ESE ausschließlich zum Abschließen eines aktuellen Transaktionsvorgangs verwendet. Anschließend wird eine Fehlerbenachrichtigung an Store.exe gesendet, um die Bereitstellung des Exchange-Informationsspeichers sicher aufzuheben. Das Anwendungsereignisprotokoll enthält einen entsprechenden Eintrag. In diesem Fall sollten Sie vor der erneuten Bereitstellung der Datenbank zusätzlichen freien Festplattenspeicherplatz hinzufügen (z. B. durch Einbauen einer neuen Festplatte).

  • Tmp.edb   Dies ist ein temporärer Arbeitsbereich zum Verarbeiten von Transaktionen. Tmp.edb enthält temporäre Informationen, die beim Aufheben der Bereitstellung aller Informationsspeicher in der Speichergruppe oder beim Beenden des Exchange-Informationsspeicherdiensts gelöscht werden.

    noteAnmerkung:
    Tmp.edb ist in Onlinesicherungen nicht vorhanden.
  • <Dateiname>.edb   Hierbei handelt es sich um Datenbankdateien im Rich-Text-Format für einzelne Private oder Öffentliche Informationsspeicher. Die Datenbankdatei im Rich-Text-Format für den Privaten Standardinformationsspeicher trägt den Namen Priv1.edb. Der Dateiname des Öffentlichen Standardinformationsspeichers lautet Pub1.edb.

  • <Dateiname>.stm   Dies sind die Streaming-Internetinhaltdateien für einzelne Datenbanken. Die Streamingdatenbankdatei für den Privaten Standardinformationsspeicher trägt den Namen Priv1.stm. Der Dateiname des Öffentlichen Standardinformationsspeichers lautet Pub1.stm.

Speichergruppenattribute in Active Directory

Sie können den Pfad für die Transaktionsprotokolldatei einer Speichergruppe sowie den Namen der Protokolldatei im Exchange-System-Manager festlegen. Klicken Sie mit der rechten Maustaste auf die gewünschte Speichergruppe, wählen Sie Eigenschaften aus, und überprüfen Sie auf der Registerkarte Allgemein die Informationen in den Feldern Pfad des Transaktionsprotokolls und Präfix für Protokolldatei. Über die Schaltfläche Durchsuchen können Sie das Transaktionsprotokoll und die Systemdateien jeweils in einen neuen Speicherort verschieben, z. B. auf ein gesondertes physisches Laufwerk.

Die Konfigurationseinstellungen für eine Speichergruppe sind in Active Directory gespeichert. Wenn Sie das Verzeichnisobjekt für eine Speichergruppe mit der ADSI-Bearbeitung suchen möchten, öffnen Sie die Konfigurationsnamenskontakte, erweitern Sie den Knoten Dienste, dann CN=Microsoft Exchange und anschließend das Objekt der Exchange-Organisation, die administrative Gruppe und den Servercontainer. Darunter befindet sich ein Container mit dem Namen CN=InformationStore, der die Speichergruppen enthält, z. B. CN=First Storage Group. Speichergruppenobjekte haben die Objektklasse msExchStorageGroup. Wenn Sie Ressourcen im Exchange-Informationsspeicher über benutzerdefinierte Skripts verwalten möchten, können Sie über ADSI (Active Directory Service Interfaces) auf msExchStorageGroup-Objekte zugreifen.

Im folgenden Codebeispiel wird der Zugriff auf die Standardspeichergruppe auf dem Server SERVER01 in der Exchange-Organisation Contoso dargestellt. Dabei wird der aktuelle Pfad für die Transaktionsprotokolldateien der Speichergruppe angezeigt.

strStorageGroupDN = "CN=First Storage Group," _
                  & "CN=InformationStore," _
                  & "CN=SERVER01,CN=Servers," _
                  & "CN=First Administrative Group," _
                  & "CN=Administrative Groups," _
                  & "CN=Contoso,CN=Microsoft Exchange," _
                  & "CN=Services,CN=Configuration," _
                  & "DC=Contoso,DC=com"
Set oStorageGroup = GetObject("LDAP://" & strStorageGroupDN)
MsgBox oStorageGroup.Get("msExchESEParamLogFilePath")

Im Folgenden sind wichtige Exchange-Attribute von msExchStorageGroup-Objekten aufgeführt, die in benutzerdefinierten ADSI-Skripts verwendet werden können:

  • msExchESEParamCircularLog   Mit diesem booleschen Kennzeichen wird festgelegt, ob die Umlaufprotokollierung aktiviert oder deaktiviert ist. Der Wert 0 legt fest, dass die Umlaufprotokollierung deaktiviert ist. Der Wert 1 legt fest, dass die Umlaufprotokollierung aktiviert ist.
    Durch die Umlaufprotokollierung werden Transaktionen in ESE entfernt, wenn die übergebenen Änderungen in die Datenbankdatei auf Festplatte übertragen wurden. In der Prüfpunktdatei wird angegeben, welche Protokolldateien und Transaktionseinträge erfolgreich an die Datenbank übergeben wurden. Alle vorhandenen vorherigen Protokolle werden gelöscht. Die Transaktionen in der aktuellen Transaktionsprotokolldatei werden als veraltet gekennzeichnet. Vor der Erstellung einer neuen Protokolldatei werden die veralteten Einträge im aktuellen Transaktionsprotokoll möglicherweise von neuen Transaktionen überschrieben.

    noteAnmerkung:
    Durch Löschen von Transaktionen wird bei der Umlaufprotokollierung die Belegung von Festplattenspeicher verringert. Die Umlaufprotokollierung ist jedoch nicht kompatibel mit hochentwickelten fehlertoleranten Konfigurationen und mehreren Onlinesicherungsarten, die auf vorhandenen Transaktionsprotokollen beruhen. Wenn die Umlaufprotokollierung aktiviert ist, können nur vollständige Sicherungen durchgeführt werden. Sicherungen, die auf Transaktionsprotokolldateien basieren, z. B. differenzielle oder inkrementelle Sicherungen, können nicht durchgeführt werden. Bei der Wiederherstellung von Daten können Transaktionsprotokolldateien nicht wiedergegeben werden, daher können Daten außerhalb der neuesten Sicherung nicht wiederhergestellt werden. Wenn Transaktionen jedoch nicht automatisch durch die Umlaufprotokollierung gelöscht werden, können Sie möglicherweise Daten außerhalb der neuesten Sicherung durch Wiedergabe der noch auf einer Festplatte vorhandenen Transaktionen wiederherstellen. In Exchange Server 5.5 ist die Umlaufprotokollierung in der Standardeinstellung aktiviert, in Exchange 2000 Server und Exchange Server 2003 ist sie dagegen in der Standardeinstellung deaktiviert.
  • msExchESEParamEventSource   Mit dieser sprachenunabhängigen Prozessbeschreibungszeichenfolge wird auf den Dienstschlüssel des Microsoft Exchange-Informationsspeichers (MsExchangeIS) in der Registrierung unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services verwiesen.

  • msExchESEParamLogFilePath   Mit diesem Attribut wird der Pfad für die Transaktionsprotokolldateien einer Speichergruppe festgelegt, z. B. C:\Programme\Exchsrvr\mdbdata.

  • msExchESEParamLogFileSize   Mit diesem Attribut wird die Größe einer Protokolldatei in Kilobyte (KB) angegeben. Der Standardwert ist 5120. Dieser Wert sollte nie geändert werden.

  • msExchESEParamSystemPath   Mit diesem Attribut wird der Pfad für die Prüfpunktdatei angegeben, z. B. C:\Programme\Exchsrvr\mdbdata, sowie der Pfad für eventuell vorhandene temporäre Datenbanken.

  • msExchESEParamZeroDatabaseDuringBackup   Mit diesem booleschen Kennzeichen wird festgelegt, ob gelöschte Datensätze und Langwerte bei Sicherungsvorgängen mit Nullen überschrieben werden. Mit dem Wert 0 wird angegeben, dass die Datensätze nicht überschrieben werden. Durch den Wert 1 wird festgelegt, dass die Datenbanken mit Nullen überschrieben werden.

  • msExchESEParamEnableOnlineDefrag   Mit diesem booleschen Kennzeichen wird festgelegt, ob die Onlinedefragmentierung von Datenbanken mit dem Microsoft Exchange-Informationsspeicherdienst durchgeführt wird. Durch den Wert 0 wird festgelegt, dass keine Onlinedefragmentierung durchgeführt wird. Mit dem Wert 1 wird die Onlinedefragmentierung in zeitlich festgelegten Wartungszyklen durchgeführt.

    noteAnmerkung:
    Durch die Onlinedefragmentierung wird Speicherplatz in den Datenbanken freigegeben, die Größe der Datenbankdateien verringert sich jedoch nicht. Datenbankinkonsistenzen werden bei jedem Start und Herunterfahren des Servers mit einem so genannten Soft Recovery-Vorgang korrigiert.
  • msExchESEParamEnableIndexChecking   Mit diesem booleschen Kennzeichen wird festgelegt, ob die Betriebssystemversion auf Unicode-Indizes überprüft wird. Mit dem Wert 0 wird angegeben, dass die Indexüberprüfung nicht durchgeführt wird. Durch Angabe des Werts 1 wird die Indexüberprüfung durchgeführt. Über diesen Parameter werden Änderungen im Betriebssystem festgestellt, die durch Aktualisieren auf eine neuere Version oder durch Ausführen eines Service Packs vorgenommen wurden. Mit dem Kennzeichen wird überprüft, ob sich die Unicode-Sortierreihenfolge geändert hat. Bei jeder auf diese Weise am Betriebssystem vorgenommenen Änderung wird automatisch eine neue Indizierung ausgeführt.

  • msExchESEParamBaseName   Mit diesem Attribut wird der Basisname für die Protokolldateien in einer Speichergruppe angegeben. Der Basisname E00 beispielsweise führt zu dem Namen E00.log für die Transaktionsprotokolldatei.

  • msExchESEParamDbExtensionSize   Mit diesem Attribut wird die Größe der Datenbankerweiterung in Seiten angegeben. Der Standardwert ist 2 Megabyte (MB).

  • msExchESEParamPageTempDBMin   Mit diesem Attribut wird die Mindestgröße der temporären Datenbank in Seiten festgelegt. Der Standardwert ist 0.

  • msExchESEParamCheckpointDepthMax   Mit diesem Attribut wird die bevorzugte (nicht hartcodierte) maximale Prüfpunkttiefe in Byte angegeben.

Speicherplatzmindestanforderungen für Speichergruppen

Jede Speichergruppe belegt ungefähr 50 MB des verfügbaren Speicherplatzes auf der Festplatte. Die oben aufgeführten für die Speichergruppe erforderlichen Dateien belegen mindestens 11 MB des Speicherplatzes auf der Festplatte. Der Mindestspeicherplatz auf der Festplatte für Private und Öffentliche Informationsspeicher beträgt 5 MB bzw. 8 MB. Obwohl der belegte Gesamtspeicherplatz auf der Festplatte ca. 24 MB beträgt, wird zusätzlicher Speicherplatz für die tatsächliche Erstellung der Speichergruppe sowie für Lese- und Schreibvorgänge benötigt.

Beachten Sie beim Verwenden von Speichergruppen die folgenden Punkte:

  • Auf einem Server, auf dem Exchange Server 2003 ausgeführt wird, können bis zu fünf Speichergruppen vorliegen. Da eine Speichergruppe für Wiederherstellungsvorgänge in der Datenbank reserviert ist, können nur vier Speichergruppen für Datenbanken verwendet werden, auf die Clients zugreifen können. Bei der Erstellung von mehr als vier Speichergruppen wird eine Fehlermeldung ausgegeben.
  • Sie können in einer Speichergruppe maximal fünf Datenbanken erstellen. Beim Erstellen weiterer Datenbanken wird eine Fehlermeldung ausgegeben.

Datenbanken im Exchange-Informationsspeicher

In Exchange Server wird ESE als integriertes Datenbankmodul zum Festlegen der Struktur der Datenbanken sowie zum Verwalten des Arbeitsspeichers verwendet. Mit dem Datenbankmodul werden die Datenbanken im Arbeitsspeicher zwischengespeichert, indem 4-KB-Datenteile (Seiten) in und aus dem Arbeitsspeicher übertragen werden. Die Seiten werden im Arbeitsspeicher aktualisiert. Anschließend werden die neuen oder aktualisierten Seiten wieder auf Festplatte geschrieben. Bei Systemanforderungen können die Daten vom Datenbankmodul im Arbeitsspeicher gepuffert werden, sodass nicht permanent auf die Festplatte zugegriffen werden muss. Dadurch wird eine größere Systemeffizienz erreicht, da Schreibvorgänge im Arbeitsspeicher ungefähr 200.000 Mal schneller als auf der Festplatte durchgeführt werden. Anforderungen von Benutzern werden über das Datenbankmodul in den Arbeitsspeicher geladen. Die entsprechenden Seiten werden als modifiziert gekennzeichnet. Bei einer modifizierten Seite handelt es sich um eine Seite im Arbeitsspeicher, die Daten enthält. Die modifizierten Seiten werden zu einem späteren Zeitpunkt in die Datenbanken des Microsoft Exchange-Informationsspeicherdiensts auf Festplatte geschrieben.

Obwohl Daten über die Zwischenspeicherung im Arbeitsspeicher am schnellsten und effizientesten verarbeitet werden, bedeutet dies jedoch auch, dass die Informationen auf der Festplatte während der Ausführung von Exchange nie vollständig aktuell sind. Die aktuellste Version der Datenbank befindet sich im Arbeitsspeicher. Da viele Änderungen im Arbeitsspeicher noch nicht auf der Festplatte vorhanden sind, sind Datenbank und Arbeitsspeicher nicht synchronisiert. Bei modifizierten Seiten im Arbeitsspeicher, die nicht übertragen und auf Festplatte geschrieben wurden, werden die Datenbanken als inkonsistent gekennzeichnet. Exchange-Datenbanken werden nur synchronisiert, wenn alle modifizierten Seiten im Arbeitsspeicher auf die Festplatte übertragen wurden. Dies erfolgt beim ordnungsgemäßen Beenden des Microsoft Exchange-Informationsspeicherdiensts. Beim Beenden des Microsoft Exchange-Informationsspeicherdiensts werden alle Seiten auf die Festplatte geschrieben.

MAPI-Datenbankdatei

Die MAPI-Datenbankdatei in Exchange Server 2003 enthält Tabellen mit den Metadaten für alle E-Mail-Nachrichten und andere Objekte in der Datenbank sowie den Inhalt der MAPI-Nachrichten. Jeder in Microsoft Office Outlook angezeigte Ordner ist eine einzelne Datenbanktabelle im Exchange-Informationsspeicher. Jede Sortierreihenfolge zum Anzeigen der Ordner wird durch jeweils einen Index in der Tabelle dargestellt. Die Sortierreihenfolgen werden über den Prozess Store.exe verwaltet.

Nachrichten von MAPI-Clients, z. B. Outlook, werden wie in früheren Versionen von Exchange Server in der MAPI-Datenbank gespeichert. Mit auf MAPI basierenden Clients kann dann ohne Konvertierung auf die Nachrichten zugegriffen werden. Beim Lesen einer Nachricht in der Datenbank über einen IP-basierten Client wird die Nachricht jedoch in das erforderliche Format konvertiert.

Die EDB-Datei und die zugehörige STM-Datei bilden eine Einheit. Eine dieser Dateien kann ohne die andere nicht verwendet werden. Beachten Sie also, dass eine Datenbank im Microsoft Exchange Server-Informationsspeicherdienst zwei Dateien enthält, die EDB-Datei und die STM-Datei.

Ein Datensatz in der EDB-Datei enthält eine Spalte (vom Datentyp JET_coltypSLV), die auf eine Liste mit Seiten in der Streamingdatei mit den Rohdaten verweist. Die Speicherplatzverwendung (maximal 4 KB für Seitenzahlen) und die Prüfsummendaten für die Daten in der Streamingdatei werden in der EDB-Datei gespeichert.

Streamingdatenbankdatei

In Exchange Server 5.5 und früheren Versionen werden Nachrichten in MDBEF (Message Database Encapsulated Format) gespeichert. Dies ist das systemeigene Format für Outlook-Clients. Bei der Anforderung einer Nachricht über einen nicht auf MAPI basierten Client wird der Inhalt mit dem Microsoft Exchange-Informationsspeicherdienst von MDBEF in das der Anforderung entsprechende Format konvertiert. Durch die Konvertierung wird Prozessorbandbreite in Anspruch genommen und die Serverleistung verringert.

Bei neueren ESE-Versionen können Rohdaten von Internetmessagingclients im systemeigenen Format gespeichert werden. Das Repository für diese Rohdaten wird als Streamingdatenbank oder einfach als Streamingdatei bezeichnet. Die Streamingdatei weist keine zusätzlichen ausgeglichenen Strukturen (B-Strukturen) auf. Stattdessen enthält sie zwei Seiten mit Kopfzeileninformationen mit einer Größe von jeweils 4 KB und anschließend Rohdaten in 4-KB-Seiten. Diese einfache Datenstruktur wurde für BLOBs (Binary Large Objects) entwickelt, bei denen keine Inhaltskonvertierung durchgeführt wird und so sehr schnell empfangen und übertragen werden können.

Weitergabe von Eigenschaften

Über die Weitergabe von Eigenschaften wird der Speicherort von Daten in einer ESE-Datenbank festgelegt. Gründliche Kenntnisse dieses Konzepts sind daher von großer Bedeutung. Mit dem Microsoft Exchange-Informationsspeicherdienst wird die Weitergabe von Eigenschaften für Daten in der STM-Datei in die EDB-Datei unterstützt. Mit der Weitergabe von Eigenschaften können Ordneransichten und Indizes effizient verwaltet werden. Die Eigenschaften einer per Datenstrom in die STM-Datei übertragenen Nachricht, z. B. Sender, Betreff sowie Sende- und Empfangsdatum, werden beispielsweise an die Datensätze weitergegeben, mit denen die Nachricht in der EDB-Datei dargestellt wird.

Beim Senden einer Nachricht an den Microsoft Exchange-Informationsspeicherdienst über einen MAPI-Client, z. B. Microsoft Outlook, wird der Inhalt der Nachricht in der EDB-Datei gespeichert. Wenn die Nachricht über einen nicht auf MAPI basierten Client geöffnet wird, wird der MAPI-Inhalt mit dem Microsoft Exchange-Informationsspeicherdienst sofort in das Internetformat konvertiert. Dabei wird die Konvertierung teilweise durchgeführt und durch Aufrufen von IMAIL, wodurch wiederum RTFHTML aufgerufen wird, abgeschlossen. Keiner der Konvertierungsvorgänge ist dauerhaft, es werden keine Daten aus der EDB-Datei in die STM-Datei verschoben.

Beim Senden einer Nachricht an den Microsoft Exchange-Informationsspeicherdienst über einen Internetclient wird der Inhalt der Nachricht in der STM-Datei gespeichert. Einige Kopfzeilen der Internetnachricht werden in die EDB-Datei kopiert, sodass die Nachricht mit dem Microsoft Exchange-Informationsspeicherdienst gefunden werden kann. Dies wird als Status 0-Konvertierung bezeichnet.

Wenn ein Client eine Eigenschaft abruft, z. B. PR_Subject oder einen der vielen Aliase, werden alle Kopfzeileninformationen der Internetnachricht mit dem Microsoft Exchange-Informationsspeicherdienst an Eigenschaften weitergegeben. Dies wird als Status 1-Konvertierung bezeichnet.

Wenn ein Client Anlageninformationen abruft, wird mit dem Microsoft Exchange-Informationsspeicherdienst eine fast identische Kopie der Internetnachricht (im MAPI-Format) erstellt. Zunächst ist die Nachricht weiterhin in der STM-Datei gespeichert. Viele der für den MAPI-Zugriff erforderlichen Daten befinden sich jedoch in der EDB-Datei. Wenn ein Client die Nachricht so ändert, dass Änderungen an MIME (Multipurpose Internet Mail Extensions) vorgenommen werden, wird die STM-Dateiversion der Nachricht gelöscht und nur die EDB-Datei der Nachricht beibehalten. Dies wird als Status 2-Konvertierung bezeichnet.

Unabhängig von der Übermittlungsart einer Nachricht an den Microsoft Exchange-Informationsspeicherdienst wird die Nachricht zunächst in der STM-Datei gespeichert, wenn Internetinhalt mit Application/ms-tnef in Exchange Server empfangen wird. Anschließend wird die Nachricht jedoch sofort decodiert und in die EDB-Datei verschoben. Dies gilt auch für Nachrichten mit winmail.dat-Anlagen, die mit UUEncode codiert sind. TNEF (Transport Neutral Encapsulation Format) und Winmail.dat sind Kapselungsverfahren für MAPI-Nachrichten zum Beibehalten von MAPI-Eigenschaften bei Übertragungen, die MAPI nicht unterstützen. Aus diesem Grund gilt das allgemeine Prinzip, dass MAPI-Nachrichten in der EDB-Datei und Internetnachrichten in der STM-Datei gespeichert sind. Mit den aktuellen Funktionen wird TNEF vor dem Lesen aller MAPI-Eigenschaften decodiert.