Exchange Server Datanbank löschen

Aus bknowledgebase
Zur Navigation springen Zur Suche springen

Einleitung[Bearbeiten]

Um eine Datenbank komplett im Exchange Server zu löschen, müssen einige Schritte gemacht werden die man Anfangs ggf. nicht bedenkt.


Beim Versuch die Datenbank zu löschen kommt höchstwahrscheinlich diese Meldung:

This mailbox database contains one or more mailboxes, mailbox plans, archive mailboxes, public folder mailboxes or arbitration mailboxes, Audit mailboxes. 
To get a list of all mailboxes in this database, run the command Get-Mailbox -Database <Database ID>.
To get a list of all mailbox plans in this database, run the command Get-MailboxPlan. 
To get a list of archive mailboxes in this database, run the command Get-Mailbox -Database <Database ID> -Archive. 
To get a list of all public folder mailboxes in this database, run the command Get-Mailbox -Database <Database ID> -PublicFolder.
To get a list of all arbitration mailboxes in this database, run the command Get-Mailbox -Database <Database ID> -Arbitration.
To get a list of all Audit mailboxes in this database, run the command Get-Mailbox -Database <Database ID> -AuditLog
To disable a non-arbitration mailbox so that you can delete the mailbox database, run the command Disable-Mailbox Mailbox ID.
To disable an archive mailbox so you can delete the mailbox database, run the command Disable-Mailbox Mailbox ID -Archive.
To disable a public folder mailbox so that you can delete the mailbox database, run the command Disable-Mailbox Mailbox ID -PublicFolder. 

Arbitration mailboxes should be moved to another server; to do this, run the command New-MoveRequest Parameters.
If this is the last server in the organization, run the command Disable-Mailbox Mailbox ID -Arbitration -DisableLastArbitrationMailboxAllowed to disable the arbitration mailbox.

Mailbox plans should be moved to another server; to do this, run the command Set-MailboxPlan MailboxPlan ID

Ich habe es hier mal ein bisschen auseinandergepflückt damit man es besser lesen kann.

Der beste Tipp ist eigentlich diesen Hinweisen möglichst genau zu folgen.

Kurzanleitung[Bearbeiten]

Hier einige Tipps und das Ganze mal zusammengefasst. Es geht im Prinzip darum, dass diverse Postfächer verschiedener Typen noch in der Datenbank enthalten sein können und entweder gelöscht, deaktiviert oder verschoben werden müssen bevor die DB gelöscht werden kann.

Die verschiedenen Mailboxtypen sieht man so:

get-mailbox -Database <Datenbankname> -Monitoring
get-mailbox -Database <Datenbankname> -PublicFolder
get-mailbox -Database <Datenbankname> -Arbitration
get-mailbox -Database <Datenbankname> -AuxAuditLog
get-mailbox -Database <Datenbankname> -GroupMailbox 
get-mailbox -Database <Datenbankname> -AuditLog
get-mailbox -Database <Datenbankname> -Archive
get-mailbox -Database <Datenbankname> -RemoteArchive


In dem Hinweis steht auch was man mit den jeweiligen Typen anfangen soll.

"Normale" Mailboxen[Bearbeiten]

Um alle Benutzerpostfächer dieser DB zu verschieben:

Get-Mailbox -Database <Datenbankname> | New-MoveRequest -TargetDatabase "<Zieldatenbankname>"}

Ebenso sollte man natürlich seine PublicFolders umziehen.

Monitoring Mailboxen[Bearbeiten]

Diese sollten laut Microsoft "verschoben" werden in eine der anderen DAtenbanken. Und wenn man das nicht für jedes Postfach einzeln machen will dann macht man das ab besten so:


Get-Mailbox -Database <Datembankname> -monitoring | Select-Object -Property Name | foreach { New-MoveRequest -Identity $_.Name -TargetDatabase "<Zieldatenbankname>"}


Arbitration Mailboxen[Bearbeiten]

Diese sollten laut Microsoft ebenfalls "verschoben" werden in eine der anderen DAtenbanken. Und wenn man das nicht für jedes Postfach einzeln machen will dann macht man das ab besten so:

Get-Mailbox -Database "<Datenbankname>" -Arbitration | Select-Object -Property Name | foreach { New-MoveRequest -Identity $_.Name -TargetDatabase "<Zieldatenbankname>"}


Schon hat man Verschiebeanforderungen für alle diese Postfächer erstellt

Das löschen von "Health Mailboxen" ist allerdings auch nicht besonders gefährlich. Laut verschiedener Quellen werden diese ohnehin im Fehlerfall neu angelegt wenn man den Dienst "Exchange Health Manager" neu startet.


So geht man weiter vor bis man alle Hinweise befolgt hat.


Verschiebeanforderungen "überwachen"[Bearbeiten]

Wenn man keinen Bock hat immer neu zu Prüfen ob das jetzt endlich fertig ist gehts auch so:

while(1){
 sleep 5
 echo "------"
 Get-MoveRequest | ft
}

oder

while(1){
 sleep 5
 echo "------"
 Get-MoveRequest | Get-MoveRequestStatistics | ft
}

bei letzterer Version wird angezeigt zu wie viel Prozent es schon fortgeschritten ist.


Datenbank entfernen[Bearbeiten]

Remove-MailboxDatabase -Identity "<Datenbankname>"

H@ppy H@cking