Exchange DAG macht kein Switchover
Hallo zusammen,
ich habe gerade einen Switchover von Exchange1 auf Exchange2 durchgeführt und begonnen Exchange1auf die neueste CU upzudaten (Exchange 2016). Als die Installation begann, sieht man den Status, dass die Dienste von Exchange1 beendet werden, trotzdem bekommt Outlook keine Verbindung mehr. Das Webinterface (OWA und ECP) vom Exchange2 sind noch zu sehen, sobald man sich jedoch anmeldet, bleibt es bei einem weissen leeren Bildschirm. Die Dienste von Server2 sind jedoch alle noch gestartet.
Ich dachte Exchange2 sollte übernehmen?!? Wozu dann ein Switchover und eine DAG? Warum läuft das nicht redundant?
Danke Euch in Voraus and keep rockin
Der Mike
ich habe gerade einen Switchover von Exchange1 auf Exchange2 durchgeführt und begonnen Exchange1auf die neueste CU upzudaten (Exchange 2016). Als die Installation begann, sieht man den Status, dass die Dienste von Exchange1 beendet werden, trotzdem bekommt Outlook keine Verbindung mehr. Das Webinterface (OWA und ECP) vom Exchange2 sind noch zu sehen, sobald man sich jedoch anmeldet, bleibt es bei einem weissen leeren Bildschirm. Die Dienste von Server2 sind jedoch alle noch gestartet.
Ich dachte Exchange2 sollte übernehmen?!? Wozu dann ein Switchover und eine DAG? Warum läuft das nicht redundant?
Danke Euch in Voraus and keep rockin
Der Mike
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 666176
Url: https://administrator.de/contentid/666176
Ausgedruckt am: 24.11.2024 um 19:11 Uhr
34 Kommentare
Neuester Kommentar
Guten Morgen,
hast du denn ein NLB davor oder wie steuerst du den Client Zugriff? Die DAG selbst hat ja kein NLB sondert dient ja nur zur Erstellung und Steuerung der Datenbankkopien (ganz einfach gesagt). Auf welchen Server zeigen deinen Urls vom owa, ecp etc? Hast du den A-Record vorher auf den verbleibenden geschwenkt?
Mit freundlichen Grüßen
Micha
hast du denn ein NLB davor oder wie steuerst du den Client Zugriff? Die DAG selbst hat ja kein NLB sondert dient ja nur zur Erstellung und Steuerung der Datenbankkopien (ganz einfach gesagt). Auf welchen Server zeigen deinen Urls vom owa, ecp etc? Hast du den A-Record vorher auf den verbleibenden geschwenkt?
Mit freundlichen Grüßen
Micha
Hallo,
Das klingt schonmal gut. Die Zertifikate stimmen hier aber auch alle oder ? Also auf beiden exchange ist ein Zertifikat installiert und an http gebunden welches die zugriffs url für owa und co enthällt ?
Also wenn du mit deinen clients zum exchange die Verbindung via „owa.domain.local“ aufbaust dann haben beide server sowie natürlich der ha proxy dieses Zertifikat installiert?
Weil eine Blank Page deutet manchmal auf ssl Probleme hin. Kannst du dir mal die iis logs anschauen wenn du die Verbindung aufbaust und die site leer ist, was kommt dort für ein Fehler?
Mit freundlichen Grüßen
Micha
Das klingt schonmal gut. Die Zertifikate stimmen hier aber auch alle oder ? Also auf beiden exchange ist ein Zertifikat installiert und an http gebunden welches die zugriffs url für owa und co enthällt ?
Also wenn du mit deinen clients zum exchange die Verbindung via „owa.domain.local“ aufbaust dann haben beide server sowie natürlich der ha proxy dieses Zertifikat installiert?
Weil eine Blank Page deutet manchmal auf ssl Probleme hin. Kannst du dir mal die iis logs anschauen wenn du die Verbindung aufbaust und die site leer ist, was kommt dort für ein Fehler?
Mit freundlichen Grüßen
Micha
ich habe gerade einen Switchover von Exchange1 auf Exchange2 durchgeführt und begonnen Exchange1auf die neueste CU upzudaten (Exchange 2016). Als die Installation begann, sieht man den Status, dass die Dienste von Exchange1 beendet werden, trotzdem bekommt Outlook keine Verbindung mehr. Das Webinterface (OWA und ECP) vom Exchange2 sind noch zu sehen, sobald man sich jedoch anmeldet, bleibt es bei einem weissen leeren Bildschirm. Die Dienste von Server2 sind jedoch alle noch gestartet.
Ich dachte Exchange2 sollte übernehmen?!? Wozu dann ein Switchover und eine DAG? Warum läuft das nicht redundant?
Ich dachte Exchange2 sollte übernehmen?!? Wozu dann ein Switchover und eine DAG? Warum läuft das nicht redundant?
Der DAG Knoten wurde auch in den Wartungsmodus gesetzt? Der vorgeschaltete LB bekommt das dann in der Regel auch mit und verteilt die Anfragen entsprechend.
Das könnte der Knackpunkt sein. Ich habe wirklich nur den Switchover über ecp angetriggert.
Nur, wenn es notwendig ist diesen Wartungsmodus manuell einzustellen, dann funktioniert ja gar kein Failover, wenn ein Server unbeaufsichtigt stirbt ?!?
Nur, wenn es notwendig ist diesen Wartungsmodus manuell einzustellen, dann funktioniert ja gar kein Failover, wenn ein Server unbeaufsichtigt stirbt ?!?
Es besteht schon ein Unterschied, ob man das ganze geplant oder ungeplant macht.
Wird zum Beispiel den Servern und Clients mitgeteilt, sich jetzt wg. Wartung mit einem anderen System zu verbinden oder die Replikation einzustellen. Zusätzlich muss natürlich der LB auch über passende Mechanismen prüfen, ob die Dienste noch zur Verfügung stehen.
Hallo,
Bei einer DAG kann jeder aktive Knoten den Clientzugriff realisieren .. unabhängig davon wo die Datenbank aktiv liegt. Wenn z.b. der Server1 die aktive DB hostet und der Client aber durch den HAProxy auf Server2 landet dann kann der Client sich ja auch verbinden. Sobald die Datenbank also durch deinen Switchover geschwenkt wurden (alles auf Server1) muss der Zugriff funktionieren.
Dein Argument das es bei einem richtigen Ausfall auch gehen muss stimmt, da dauert es nur etwas länger bis die DAG den Knoten als „offline“ erkennt und die DB schwenkt.
Die angesprochene Maintenance die man per Powershell aktiviert schwenkt unter anderem auch die Datenbanken (neben Knoten offline nehmen) . Du könntest es ja mal damit probieren .. aber ich denke das wird das gleiche Fehlerbild geben.
Siehe z.b hier: https://ehloexchange.com/exchange-maintenance-mode/ (gibt auch viele andere)
Hatte ich es richtig verstanden das jeder deiner Exchange ein eigenes Zertifikat hat, wobei bei jedem der öffentliche Name enthalten ist? Oder ist das ein Zertifikat wo alle Namen aller Server enthalten ist.
Kannst du mal folgendes auf jedem Server ausführen ausführen (nur oben den Namen anpassen) und den Output posten (gern auch per PN).
$servername = "Server1"
Get-OwaVirtualDirectory -Server $servername | fl internalurl, externalurl
Get-EcpVirtualDirectory -server $servername | fl internalurl, externalurl
Get-WebServicesVirtualDirectory -server $servername| fl internalurl, externalurl
Get-ActiveSyncVirtualDirectory -Server $servername | fl internalurl, externalurl
Get-OabVirtualDirectory -Server $servername | fl internalurl, externalurl
Get-MapiVirtualDirectory -Server $servername | fl externalurl, internalurl
Get-ClientAccessService $servername | fl AutoDiscoverServiceInternalUri
Get-Mailboxdatabase | fl Server,AdminDisplayName, rpc*
Mit freundlichen Grüßen
Micha
Bei einer DAG kann jeder aktive Knoten den Clientzugriff realisieren .. unabhängig davon wo die Datenbank aktiv liegt. Wenn z.b. der Server1 die aktive DB hostet und der Client aber durch den HAProxy auf Server2 landet dann kann der Client sich ja auch verbinden. Sobald die Datenbank also durch deinen Switchover geschwenkt wurden (alles auf Server1) muss der Zugriff funktionieren.
Dein Argument das es bei einem richtigen Ausfall auch gehen muss stimmt, da dauert es nur etwas länger bis die DAG den Knoten als „offline“ erkennt und die DB schwenkt.
Die angesprochene Maintenance die man per Powershell aktiviert schwenkt unter anderem auch die Datenbanken (neben Knoten offline nehmen) . Du könntest es ja mal damit probieren .. aber ich denke das wird das gleiche Fehlerbild geben.
Siehe z.b hier: https://ehloexchange.com/exchange-maintenance-mode/ (gibt auch viele andere)
Hatte ich es richtig verstanden das jeder deiner Exchange ein eigenes Zertifikat hat, wobei bei jedem der öffentliche Name enthalten ist? Oder ist das ein Zertifikat wo alle Namen aller Server enthalten ist.
Kannst du mal folgendes auf jedem Server ausführen ausführen (nur oben den Namen anpassen) und den Output posten (gern auch per PN).
$servername = "Server1"
Get-OwaVirtualDirectory -Server $servername | fl internalurl, externalurl
Get-EcpVirtualDirectory -server $servername | fl internalurl, externalurl
Get-WebServicesVirtualDirectory -server $servername| fl internalurl, externalurl
Get-ActiveSyncVirtualDirectory -Server $servername | fl internalurl, externalurl
Get-OabVirtualDirectory -Server $servername | fl internalurl, externalurl
Get-MapiVirtualDirectory -Server $servername | fl externalurl, internalurl
Get-ClientAccessService $servername | fl AutoDiscoverServiceInternalUri
Get-Mailboxdatabase | fl Server,AdminDisplayName, rpc*
Mit freundlichen Grüßen
Micha
Moin NordicMike,
ich kann dich mehr oder weniger beruhigen... du bist nicht alleine.
Wir haben die von dir beschriebene Problematik auf allen DAGs, welche der Kombination Exchange 2016 und Outlook 2016 zu treffen. Allerdings bereits schon mit CU19 und dem letzten Sicherheitsupdate.
Nehmen wir anstatt Outlook 2016 ein Outlook 2010 auf einer Test VM funktioniert alles wie es soll. Outlook 2019 konnten wir bis dato noch nicht testen. Ist das bei dir auch so?
Unabhängig davon sehen wir bei einem Failover eines Knoten der DAG in Verbindungstatus deutlich mehr Einträge für ein Postfach wie im funktionieren Zustand. Als würde Outlook immer und immer wieder neue Verbindungen aufbauen wollen. Ist das bei dir auch so?
Gruß,
Dani
ich kann dich mehr oder weniger beruhigen... du bist nicht alleine.
Wir haben die von dir beschriebene Problematik auf allen DAGs, welche der Kombination Exchange 2016 und Outlook 2016 zu treffen. Allerdings bereits schon mit CU19 und dem letzten Sicherheitsupdate.
Nehmen wir anstatt Outlook 2016 ein Outlook 2010 auf einer Test VM funktioniert alles wie es soll. Outlook 2019 konnten wir bis dato noch nicht testen. Ist das bei dir auch so?
Unabhängig davon sehen wir bei einem Failover eines Knoten der DAG in Verbindungstatus deutlich mehr Einträge für ein Postfach wie im funktionieren Zustand. Als würde Outlook immer und immer wieder neue Verbindungen aufbauen wollen. Ist das bei dir auch so?
Aber ja, der Witness ist ständig online gewesen und im gleichen Netz, wie die zwei Exchange Server. Das Zabbix Monitoring hat auch nicht gemeldet, dass der Wittnes Server offline wäre, also gehe ich davon aus, dass er alles mitbekommen hat.
Wenn der Witness Server bzw. die Freigabe offline gewesen wäre, findet in der Regel die DAG nicht mehr von alleine zusammen. Dem entsprechend ist auch das Ereignisprotokoll voll mit Fehlern.Ich habe einen HA Proxy davor, der Transparent zum Server2 durchlässt, ich habe Server1 am HAproxy deaktiviert.
Sprich Layer 4, NAT oder SNAT?Gruß,
Dani
Moin,
Hast du schon mal die Konfiguration geprüft bzw. prüfen lassen?
Überwachen von Datenbankverfügbarkeitsgruppen
Using Test-ReplicationHealth to Troubleshoot Database Availability Groups
Gruß,
Dani
Für mich ein nicht schlüssiges bzw fehlerhaftes System, wenn ECP und Powershell unterschiedliche Sachen anzeigen.
ich würde eher der Powerhell als em ECP glauben schenken.Hast du schon mal die Konfiguration geprüft bzw. prüfen lassen?
Überwachen von Datenbankverfügbarkeitsgruppen
Using Test-ReplicationHealth to Troubleshoot Database Availability Groups
Gruß,
Dani
Moin,
Wenn das nicht klappt würde ich es über die Wartungstask versuchen:
https://www.der-windows-papst.de/2018/09/19/exchange-2016-wartungsmodus- ...
Gruß,
Dani
Dann habe ich einen Bockmist gebaut. Ich habe die Datenbank auf Server1 gemountet. Das war ein Fehler. Jetzt ist sie auf beiden Servern gemountet, aber die Fehlermeldung kommt trotzdem.
Mit welchen Befehl has du den Zustand erreicht?Wie bekomme ich nun den Mount wieder weg?
Ist der Witness Server online und das Share erreichbar? Denn sollte ein Neustart des Server1 ausreichend sein. Mit dismount-database dismountet er es mir auf beiden Servern. Ein erneuter Mount mountet es mir wieder auf beiden Servern.
Es geht meines Wissens nach nur in Kombination:Get-MailboxDatabase -Server SERVERNAME | Dismount-Database -Confirm:$False
Wenn das nicht klappt würde ich es über die Wartungstask versuchen:
https://www.der-windows-papst.de/2018/09/19/exchange-2016-wartungsmodus- ...
Gruß,
Dani
Die neue Datenbank habe ich noch nicht repliziert. Ich muss einen ruhigen Fenstertag abwarten :c)
Für die Replikation selbst brauchst du eigentlich nicht auf den Fenstertag warten. Das geschieht im Hintergrund ohne, dass der Nutzer etwas von bemerkt. Den geplanten Failover würde ich mir für den Fenstertag aufheben. Gruß,
Dani
Moin,
Gruß,
Dani
Also beide Server hätte ihre eigene Datenbank gemountet und die Datenbank anderen Servers kopiert und "heathy".
Ist das Absicht /Lastverteilung oder nur temporär, da du die Database neu angelegt hast? Kann ich noch was anderes prüfen, bevor ich umschalte?
Ne, Prüfen kannst dies bezüglich nur die Konfiguration der DAG. Ich gehe davon aus, dass z.B. URLs für OWA, ECP, etc. korrekt ist. Sowie auch Sendeconntectoren für die Clients.Gruß,
Dani
Moin,
Vergleich deine Konfiguration mit den Blog Artikeln - sicher ist sicher:
https://www.frankysweb.de/exchange-2016-konfiguration-einer-dag-database ...
https://www.frankysweb.de/exchange-2019-database-availability-group-dag/
Lass parallel dazu noch den Befehl Test-ReplicationHealth | Format-List Check* laufen?
Gruß,
Dani
Das bin ich mir eben nicht. Den Zustand hatte ich auch, bevor ich dann den Bockmist gebaut habe :c)
Ich trau dem Braten nicht mehr.
Wer hat den die DAG eingerichtet, der Azubi im ersten Lehrjahr? Ich trau dem Braten nicht mehr.
Vergleich deine Konfiguration mit den Blog Artikeln - sicher ist sicher:
https://www.frankysweb.de/exchange-2016-konfiguration-einer-dag-database ...
https://www.frankysweb.de/exchange-2019-database-availability-group-dag/
Warum bleibt sie disconnected und connected nicht selbstständig?
Was sagt den das Ereignisprotokoll dazu?Lass parallel dazu noch den Befehl Test-ReplicationHealth | Format-List Check* laufen?
Mal den Witness überprüft:
Sieht gut aus. Wir nutzen bei WitnessServer den FQDN. Aber das sollte hier keine Rolle spielen. Die Berechtigungen für das Verzeichnis passen. Ansonsten würde der Befehl Test-ReplicationHealth | Format-List Check* entsprechend einen Fehler ausgegeben. Warum bleibt sie disconnected und connected nicht selbstständig?
Die Fehlermeldung ist leider abgeschnitten. Kannst du Sagen was in der Spalte "Status" hinter "DisconnectedAnd " steht?Gruß,
Dani
Moin,
Gruß,
Dani
In der Ereignisanzeige sind einen Haufen Fehler dazu gekommen, klar, der Server1 ist ja auch nicht mehr online gewesen. Aber diese zu interpretieren ob sie bei einem Ausfall normal sind oder der Grund für den fehlenden Failover sind, erfordert ein mehrjähriges Studium :c)
ich vermute, dass dort die Ursache zu finden sein wird. Daher empfehle ich dir ein Crash-Studium. Ansonsten darfst du gerne über Pastbin, die aus deiner Sicht relevanten Einträge, anonymsiert mir zu kommen lassen. Meine aktive SE Zeit ist allerdings schon fast zwei Jahre her, aber vllt. sehe ich was. Es ist auch ein FQDN bei mir. Ich habe nur die echten Servernamen aus dem Beitrag raus genommen.
Ok, passt.Die Formatierung hat es nach unten versetzt
DisconnectedAnd
Healthy
Ich würde erst einmal die leere Datenbank auflösen und jeweils löschen. Damit du alles aus dem Füßen hast, was evtl. stören könnte.DisconnectedAnd
Healthy
Beim nächsten Failover Test werde ich mal Test-ReplicationHealth ausführen, im Moment steht ja alles auf "Prüfung bestanden".
Nutzt du evtl Veeam? Dann könntest du über Instant Recovery und dedizierten vSwitches auf den Hosts eine Testumgebung aufbauen. Somit kannst du in Ruhe spielen ohne jedes Mal die Produktiv abhängig zu sein.Gruß,
Dani
Moin,
Die größere Herausforderung sind vermutlich die Load Balancer?!
Gruß,
Dani
Veeam wäre vorhanden, also müsste ich einen der zwei Domain Controller und beide Exchange Server und eine Client VM dahin ziehen. Vermutlich ist dann erst einmal das Domänenvertrauen und die Clustersynchronization im Eimer, da die VMs leicht zeitversetzt gesichert werden. Oder sollte ich die drei Server herunterfahren und dann klonen, damit sie synchron bleiben?
Am Besten alle notwendigen Server aus Veeam über Instant Recovery starten. Wichtig ist, dass die Server sich zu keinem Zeitpunkt im produktiven Netzerk sehen dürfen (nicht mal eine Sekunde). Anderenfalls hast du den nächsten Totalschaden! Da musst du wirklich vorsichtig sind. Den Client installierst du kurzer Hand als Test Maschine mit Outlook hinzu.Die größere Herausforderung sind vermutlich die Load Balancer?!
Gruß,
Dani