Website-Icon Frankys Web

Exchange 2019: ExchangeStoreDB EventID 171 Datenbank lässt sich nicht mounten

Auf einem Exchange 2019 Server kann es zu Problemen kommen, wenn eine Datenbank größer als 1 TB ist. Auf einem Exchange 2019 Standard Server beträgt die maximale Datenbankgröße 1 TB, ist die Datenbank größer, kommt es zu Problemen beim FailOver innerhalb der DAG. Auch lässt sich Datenbank welche größer als 1 TB ist mehr auf einem Exchange Standard Server mounten. Im Eventlog wird dann folgende Fehlermeldung aus der Quellle ExchangeStoreDB protokolliert:

Quelle: ExchangeStoreDB

Event ID: 171

Meldung:

At ‚16.04.2023 19:38:25‘ database copy ‚DBNAME‘ on this server exceeded the configured maximum database size and service recovery was not attempted. Please increase the value of this registry key on the server hosting the active database copy before attempting to mount this database. For more details about the failure, consult the Event log on the server for other storage and „MSExchangeIS“ events.

Exchange Server 2019 Enterprise Edition hat kein solches Limit. Glücklicherweise muss man nun nicht zwingend auf die Enterprise Edition wechseln, falls eine Datenbank größer wird. Das Limit lässt sich einfach in der Registry anpassen.

Um die maximale Datenbankgröße zu erhöhen, muss man sich zunächst die GUID der Datenbank anzeigen lassen:

Get-MailboxDatabase DATENBANKNAME | select name,guid

In der Regsitry muss nun der folgende Pfad gesucht werden:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\SERVERNAME\Private-DATENBANKGUID

Unter diesem Pfad lässt sich jetzt ein neues DWORD mit dem Namen „Database Size Limit in GB“ und dem gewünschten neuen Limit als Dezimalwert anlegen. In diesem Beispiel sind es 2 TB:

Nachdem das Limit angepasst wurde lässt sich die Datenbank mit dem folgenden Befehl wieder mounten:

Mount-Database DBNAME -Force

Falls man mehrere Datenbanken und mehrere Exchange Server hat, kann man sich die Arbeit auch durch ein kleines PowerShell Script etwas einfacher machen:

#New max database size in GB:
$NewDBMaxSize = 2048

$DBGUIDs = Get-ExchangeServer $env:computername | Get-MailboxDatabase | select guid
foreach ($DBGUID in $DBGUIDs) {
 $RegPath = "HKLM:\SYSTEM\CurrentControlSet\Services\MSExchangeIS\"
 $DatabaseRegPath = "HKLM:\SYSTEM\CurrentControlSet\Services\MSExchangeIS\" + $env:computername + "\Private-" + $DBGUID.Guid
 New-ItemProperty -Path $DatabaseRegPath -Name "Database Size Limit in GB" -Value $NewDBMaxSize -PropertyType DWORD -Force | Out-Null
}

Das Script ermittelt die GUIDs der Datenbanken auf dem Server auf dem es ausgeführt wird und trägt das neue Limit ($NewDBMaxSize) in die Registry ein. Das Script muss in einer Exchange Management Shell mit administrativen Rechten ausgeführt werden. Diese Limits gelten übrigens auch für Exchange Server 2016 in der Standard Edition. Das Script ist auch auf GitHub verfügbar:

Die mobile Version verlassen