Hallo Community,
ich bin Systemadministrator in einer Firma und wir haben eine Exchange-DAG mit zwei Servern, verteilt in zwei Rechenzentren. Wir haben die DAG so aufgeteilt, dass etwa die Hälfte der Mailboxdatenbanken im Rechenzentrum 1, die andere im Rechenzentrum 2 aktiv
betrieben werden, und im jeweils anderen RZ wird eine Kopie davon gehalten.
Das Phänomen, welches ich beobachte, ist folgendes: Die Datenbanken werden automatisch nach einer Weile stets ins RZ 1 geschoben (als aktive Kopie). Und mir erklärt sich nciht, warum, zumal die Performance des Exchange Servers im RZ 1 beeinträchtigt wird.
Einmal davon abgesehen, dass die Mitarbeiter über langsames Outlook klagen usw.
Die Einstellung steht überall auf GoodAvailability. Aber wonach richtet sich die DAG / Exchange? Wann sieht sich der dienst verpflichtet, die Datenbanken zu schwenken? Wir haben keine Einbrüche im Netzwerk auf den beiden betroffenen Servern feststellen können.
Das einzige, was auffällig ist, dass u. a. dann Datenbanken verschoben werden, wenn ein Backup läuft. (Das ist bei uns Veeam.)
Ich möchte an dieser Stelle einmal die allgemeine Frage beantwortet wissen, wann sich eine DAG dazu bewegt fühlt, Datenbanken zu schwenken, und warum sie dann nicht wieder an ihrem Ursprungsort zurück bewegt werden, wenn der eigentliche server wieder "in
Ordnung" ist.
Um ein paar Daten zu nennen: Es handelt sich um 28 Datenbanken mit á max. 99 Mailboxen. Diese sind wie folgt aufgeteilt:
get-mailbox * -resultsize unlimited | where-object {$_.database -like "MBX-DB-*"} | group-object database | sort-object name | ft count,name -autosize
Count Name
----- ----
99 MBX-DB-021
99 MBX-DB-023
99 MBX-DB-024
99 MBX-DB-025
99 MBX-DB-026
99 MBX-DB-027
99 MBX-DB-028
99 MBX-DB-029
99 MBX-DB-030
99 MBX-DB-031
99 MBX-DB-032
99 MBX-DB-033
99 MBX-DB-034
99 MBX-DB-035
99 MBX-DB-036
99 MBX-DB-037
99 MBX-DB-038
99 MBX-DB-039
99 MBX-DB-040
99 MBX-DB-041
99 MBX-DB-042
99 MBX-DB-043
99 MBX-DB-044
99 MBX-DB-045
83 MBX-DB-046
3 MBX-DB-047
1 MBX-DB-048
16 MBX-DB-049
Und die aktiven Server sind:
get-mailboxdatabasecopystatus * | where-object {$_.status -eq 'mounted' -and $_.databasename -like 'mbx-db-*'} | sort databasename | foreach-object -process {set-variable -name cserver -value $(get-mailboxdatabasecopystatus $_.databasename | where-object {$_.status -eq 'healthy'} | ft mailboxserver -autosize -hidetableheaders | out-string); set-variable -name mailbox -value $_.databasename; set-variable -name wserver -value $_.mailboxserver; $cserver=$cserver -replace "`n|`r",""; write-host $mailbox"`t"$wserver"`t"$cserver} -begin {write-host "Database`tCurrent`t`tSecond"}
Database Current Second
MBX-DB-021 DC01EXC06 DC02EXC02
MBX-DB-023 DC01EXC06 DC02EXC02
MBX-DB-024 DC02EXC02 DC01EXC06
MBX-DB-025 DC01EXC06 DC02EXC02
MBX-DB-026 DC01EXC06 DC02EXC02
MBX-DB-027 DC01EXC06 DC02EXC02
MBX-DB-028 DC01EXC06 DC02EXC02
MBX-DB-029 DC01EXC06 DC02EXC02
MBX-DB-030 DC01EXC06 DC02EXC02
MBX-DB-031 DC01EXC06 DC02EXC02
MBX-DB-032 DC01EXC06 DC02EXC02
MBX-DB-033 DC01EXC06 DC02EXC02
MBX-DB-034 DC01EXC06 DC02EXC02
MBX-DB-035 DC01EXC06 DC02EXC02
MBX-DB-036 DC01EXC06 DC02EXC02
MBX-DB-037 DC01EXC06 DC02EXC02
MBX-DB-038 DC01EXC06 DC02EXC02
MBX-DB-039 DC01EXC06 DC02EXC02
MBX-DB-040 DC01EXC06 DC02EXC02
MBX-DB-041 DC01EXC06 DC02EXC02
MBX-DB-042 DC02EXC02 DC01EXC06
MBX-DB-043 DC01EXC06 DC02EXC02
MBX-DB-044 DC01EXC06 DC02EXC02
MBX-DB-045 DC01EXC06 DC02EXC02
MBX-DB-046 DC01EXC06 DC02EXC02
MBX-DB-047 DC01EXC06 DC02EXC02
MBX-DB-048 DC01EXC06 DC02EXC02
MBX-DB-049 DC01EXC06 DC02EXC02
Es ist schwierig zu erkennen, dass da etwas nicht stimmen kann. Die folgenden sind falsch (nach nur einem Tag):
get-mailboxdatabasecopystatus * | where-object {$_.status -eq 'mounted' -and $_.databasename -like 'mbx-db-*' -and $_.activationpreference -gt 1} | sort databasename | foreach-object -process {set-variable -name cserver -value $(get-mailboxdatabasecopystatus $_.databasename | where-object {$_.status -eq 'healthy' -and $_.activationpreference -lt 2} | ft mailboxserver -autosize -hidetableheaders | out-string); set-variable -name mailbox -value $_.databasename; set-variable -name wserver -value $_.mailboxserver; $cserver=$cserver -replace "`n|`r",""; write-host $mailbox"`t"$wserver"`t"$cserver; $i=$i+1} -begin {set-variable -name i -value 0; write-host "Database`tCurrent`t`tShould be"} -end {write-host "`nTotal records:"$i}
Database Current Should be
MBX-DB-021 DC01EXC06 DC02EXC02
MBX-DB-023 DC01EXC06 DC02EXC02
MBX-DB-030 DC01EXC06 DC02EXC02
MBX-DB-031 DC01EXC06 DC02EXC02
MBX-DB-032 DC01EXC06 DC02EXC02
MBX-DB-033 DC01EXC06 DC02EXC02
MBX-DB-034 DC01EXC06 DC02EXC02
MBX-DB-040 DC01EXC06 DC02EXC02
MBX-DB-041 DC01EXC06 DC02EXC02
MBX-DB-043 DC01EXC06 DC02EXC02
MBX-DB-044 DC01EXC06 DC02EXC02
Total records: 11
Es ist erkennbar, dass die DAG die Mailboxen bei uns stets vom RZ 2 ins RZ 1 bewegt. Mir erklärt sich nur nicht, warum; immerhin betrifft die Sicherung beide Server. Und ich würde gerne wissen, wie ich das unterbinden kann, ohne die Replikation einzuschränken,
was den Sinn einer DAG obsolete machen würde.
Irgendjemand eine Idee?
Vielen Dank und beste Grüße
Nico