Freigeben über


Anhalten und Fortsetzen der Datenbankspiegelung (SQL Server)

Gilt für: SQL Server

Der Datenbankbesitzer kann eine Datenbank-Spiegelungssitzung jederzeit anhalten und später fortsetzen. Durch Anhalten bleibt der Sitzungsstatus erhalten, während die Spiegelung unterbrochen wird. Bei Engpässen ist das Anhalten möglicherweise nützlich, um die Leistung auf dem Prinzipalserver zu verbessern.

Wenn eine Sitzung angehalten wird, bleibt die Prinzipaldatenbank weiterhin verfügbar. Durch das Anhalten wird der Status der Spiegelungssitzung auf SUSPENDED festgelegt, und die Spiegeldatenbank hält nicht mehr Schritt mit der Prinzipaldatenbank. Dadurch wird die Prinzipaldatenbank fehleranfällig ausgeführt.

Es empfiehlt sich, eine angehaltene Sitzung rasch fortzusetzen, weil das Transaktionsprotokoll nicht gekürzt werden kann, während eine Datenbank-Spiegelungssitzung angehalten ist. Wenn die Datenbank-Spiegelungssitzung zu lange angehalten wird, kann es somit sein, dass das Transaktionsprotokoll vollständig aufgefüllt wird und die Datenbank nicht mehr verfügbar ist. Eine Erläuterung dazu finden Sie unter "Auswirkung des Anhaltens und Fortsetzens auf die Protokollkürzung" weiter unten in diesem Thema.

Wichtig

Nach einem erzwungenen Dienst, wenn der ursprüngliche Prinzipalserver die Verbindung wiederherstellt, wird die Spiegelung angehalten. Das Fortsetzen der Spiegelung in dieser Situation könnte auf dem ursprünglichen Prinzipalserver zu Datenverlust führen. Weitere Informationen zum Verwalten des potenziellen Datenverlusts finden Sie unter Database Mirroring Operating Modes.

In diesem Thema:

Auswirkung des Anhaltens und Fortsetzens auf die Protokollkürzung

Wenn ein automatischer Prüfpunkt für eine Datenbank ausgeführt wird, wird normalerweise das zugehörige Transaktionsprotokoll nach der nächsten Protokollsicherung auf diesen Prüfpunkt gekürzt. Während eine Datenbank-Spiegelungssitzung angehalten ist, bleiben alle aktuellen Protokolldatensätze aktiv, weil der Prinzipalserver darauf wartet, sie an den Spiegelserver zu senden. Die ungesendeten Protokolldatensätze sammeln sich im Transaktionsprotokoll der Prinzipaldatenbank an, bis die Sitzung fortgesetzt wird und der Prinzipalserver die Protokolldatensätze an den Spiegelserver gesendet hat.

Wenn die Sitzung fortgesetzt wird, beginnt der Prinzipalserver sofort damit, die akkumulierten Protokolldatensätze an den Spiegelserver zu senden. Nachdem der Spiegelserver bestätigt hat, dass der dem ältesten automatischen Prüfpunkt entsprechende Protokolldatensatz in die Warteschlange gestellt wurde, kürzt der Prinzipalserver das Protokoll der Prinzipaldatenbank auf diesen Prüfpunkt. Der Spiegelserver kürzt die Wiederholungswarteschlange auf denselben Protokolldatensatz. Da dieser Prozess für jeden sukzessiven Prüfpunkt wiederholt wird, wird das Protokoll schrittweise, von Prüfpunkt zu Prüfpunkt, gekürzt.

Hinweis

Weitere Informationen zu Prüfpunkten und der Protokollkürzung finden Sie unter Datenbankprüfpunkte (SQL Server).

Vermeiden eines vollen Transaktionsprotokolls

Wenn das Protokoll voll ist (weil die maximale Größe erreicht wurde oder weil für die Serverinstanz der Speicherplatz nicht ausreicht), kann die Datenbank keine Updates mehr ausführen. Es gibt zwei Möglichkeiten, um dieses Problem zu vermeiden:

  • Setzen Sie die Datenbank-Spiegelungssitzung fort, bevor das Protokoll voll ist, oder fügen Sie mehr Protokollspeicher hinzu. Durch das Fortsetzen der Datenbankspiegelung kann der Prinzipalserver das angesammelte aktive Protokoll an den Spiegelserver senden, und die Spiegeldatenbank erhält den Status SYNCHRONIZING. Der Spiegelserver kann dann das Protokoll auf den Datenträger schreiben und damit beginnen, es zu wiederholen.

  • Beenden Sie die Datenbank-Spiegelungssitzung durch Entfernen der Spiegelung.

    Im Gegensatz zum Anhalten einer Sitzung werden beim Entfernen der Spiegelung alle Informationen zur Spiegelungssitzung gelöscht. Jede Partnerserverinstanz behält eine eigene Kopie der Datenbank. Wenn die frühere Spiegelkopie wiederhergestellt wird, weicht sie von der früheren Prinzipalkopie ab und liegt um die Zeitspanne zurück, die seit dem Anhalten der Sitzung vergangen ist. Weitere Informationen finden Sie unter Entfernen der Datenbankspiegelung (SQL Server).

Related Tasks

So halten Sie eine Datenbankspiegelung an bzw. setzen sie fort

So beenden Sie die Datenbankspiegelung

Weitere Informationen

ALTER DATABASE (Transact-SQL)
Datenbankspiegelung (SQL Server)
Entfernen der Datenbankspiegelung (SQL Server)