none
Mirror not synchronizing after Failover RRS feed

  • Allgemeine Diskussion

  • Hello Folks

    I've got a problem with a Database in synchron Mirroring with Witness Modus.

    After the Failover occurs, the mirror can't synchronize with the principal due of high Insert rate from the application.

    Network latency is <1ms.

    2x SQL 2008R2 x64 SP1 Standard on Windows 2008 x64 on VMWare.

    Database is 60 GB.

    Tested this also in a physical Environment, same problem.

    Is this a common bug that the mirror can't synchronize when the database is under heavy load ?

    Montag, 5. März 2012 14:18

Alle Antworten

  • Hallo Jösche,
    da dies eine deutsche Newsgroup ist, antworte ich auch mal auf deutsch.

    Wie kommst Du zu der Einschätzung, dass es an der hohen Zahl der Inserts liegt?
    Was ist hoch?
    Wie ist die allgemeine Auslastung des Systems?
    Was sagt der Datenbank-Spiegelungsmonitor?

    Ich hatte schon mal beobachtet, dass im Falle einer Neu-Synchronisierung (falls also der Partner ausgefallen war) zuerst mal im asynchronen Modus gearbeitet wird, bis beide wieder synchron sind. Erst danach werden auch die Transaktionen wieder synchron verarbeitet.

    Einen schönen Tag noch,
    Christoph
    --
    Microsoft SQL Server MVP
    www.insidesql.org/blogs/cmu

    Montag, 5. März 2012 14:36
    Beantworter
  • Hallo Christoph

    Wollte eigentlich in der englischen Gruppe posten aber irgendwie hat es mich hierher verschlagen :-)

    Der asynchrone Modus ist nur in der Enterprise Edititon vorhanden, könnte das ein Problem sein ?

    Ich teste das ganze momentan mit einem selbstgeschriebenen Powershell, komme auf 6500 Inserts pro Sekunde.

    Die Auslastung ist eigentlich nicht auffällig hoch.

    Der Datenbankspiegelungsmonitor hat folgende Werte:

    Unsent Log: 107kb

    Oldest unsend transaction= 00.00.26

    Current Send Rate 141 kb

    Current Rate of new transaction 142 kb

    Current Restore Rate 147 kb

    Mirror commit overhead 0 milliseconds

    Sobald ich das Powershell script stoppe ist die DB wieder synchronized.

    Sieht so aus als ob der Mirror hinterher rennen würde.


    • Bearbeitet Jösche Montag, 5. März 2012 14:47
    Montag, 5. März 2012 14:46
  • Die asynchrone Spiegelung ist wirklich ein Enterprise Feature. Das Verfahren wird aber trotzdem nach einem Failover verwendet, bis beide Server synchron sind. Danach läuft wieder alles synchron.
    Bei der synchronen Spiegelung sollte auch der Principal-Server soweit ausgebremst werden, bis auf dem Secondary Server die Transaktion angekommen ist.

    Wichtig wären noch die beiden Werte:
    - Unrestored Log
    - Time to restore log (estimated)

    Damit hättest Du das Log, was schon gesendet wurde, aber noch nicht wiederhergestellt. Entweder hast Du also dort einen Engpass, oder bei der Verbindung, so dass Du die Transaktionen nicht schnell genug senden kannst. Das könnte man evtl. auch im Betrieb merken, wenn die Datenbanken synchron sind, werden die Transaktionen langsamer, da Du auf die Übertragung warten musst.
     Einen schönen Tag noch,
    Christoph
    --
    Microsoft SQL Server MVP
    www.insidesql.org/blogs/cmu

    Dienstag, 6. März 2012 13:30
    Beantworter