Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Eine Verfügbarkeitsdatenbank können Sie in Always On-Verfügbarkeitsgruppen mithilfe von SQL Server Management Studio, Transact-SQL oder PowerShell in SQL Server anhalten. Beachten Sie, dass der Befehl zum Anhalten auf der Serverinstanz ausgegeben werden muss, die die anzuhaltende oder fortzusetzende Datenbank hostet.
Die Auswirkung eines Anhaltebefehls ist davon abhängig, ob Sie eine sekundäre Datenbank oder eine primäre Datenbank anhalten:
| Angehaltene Datenbank | Auswirkung des Suspend-Befehls |
|---|---|
| Sekundäre Datenbank | Nur die lokale sekundäre Datenbank wird ausgesetzt, und ihr Synchronisierungsstatus wechselt in den Status NOT SYNCHRONIZING. Andere sekundäre Datenbanken sind nicht betroffen. Die angehaltene Datenbank empfängt keine Daten (Protokolldatensätze) mehr und wendet keine Daten mehr an und beginnt, hinter die primäre Datenbank zu fallen. Vorhandene Verbindungen zum lesbaren sekundären Replikat bleiben weiterhin nutzbar. Neue Verbindungen zur angehaltenen Datenbank auf dem lesbaren Sekundärreplikat sind erst zulässig, wenn die Datenverschiebung wieder aufgenommen wird. Dieses Verhalten gilt nur, wenn Verbindungen mit einem Listener und schreibgeschütztem Routing geöffnet werden. Die primäre Datenbank bleibt verfügbar. Wenn Sie jede der entsprechenden sekundären Datenbanken anhalten, ist die primäre Datenbank ungeschützt. ** Wichtig ** Während eine sekundäre Datenbank angehalten ist, sammelt die Sendewarteschlange der entsprechenden primären Datenbank nicht gesendete Transaktionsprotokoll-Datensätze. Verbindungen zum sekundären Replikat geben Daten zurück, die zu dem Zeitpunkt verfügbar waren, als die Datenübertragung angehalten wurde. |
| Primäre Datenbank | Die primäre Datenbank stoppt die Datenübertragung an alle verbundenen sekundären Datenbanken. Die primäre Datenbank wird weiterhin in einem ungeschützten Modus ausgeführt. Die primäre Datenbank bleibt für Clients verfügbar, und vorhandene Verbindungen in einer lesbaren sekundären Datenbank bleiben verwendbar, und neue Verbindungen können hergestellt werden. |
Hinweis
Das Anhalten einer sekundären Datenbank in Always On wirkt sich nicht direkt auf die Verfügbarkeit der primären Datenbank aus. Das Anhalten einer sekundären Datenbank kann jedoch sich auf Redundanz- und Failoverfunktionen für die primäre Datenbank auswirken. Dies steht im Gegensatz zur Datenbankspiegelung, bei der der Spiegelungsstatus sowohl in der Spiegeldatenbank als auch in der Prinzipaldatenbank angehalten wird. Durch das Anhalten einer primären Always On-Datenbank wird die Datenbewegung auf allen entsprechenden sekundären Datenbanken angehalten, und die Redundanz- und Failoverfunktionen für diese Datenbank stehen nicht mehr zur Verfügung, bis die primäre Datenbank wieder aufgenommen wird.
Vorbereitungen:
Zum Anhalten einer Datenbank Folgendes verwenden:
Nachverfolgung:Vermeiden eines vollen Transaktionsprotokolls
Bevor Sie beginnen
Beschränkungen und Einschränkungen
Ein SUSPEND-Befehl kehrt zurück, sobald er von dem Replikat akzeptiert wurde, das die Zieldatenbank beherbergt; das tatsächliche Anhalten der Datenbank erfolgt jedoch asynchron.
Voraussetzungen
Sie müssen mit der Serverinstanz verbunden sein, die die Datenbank hostet, die angehalten werden soll. Um eine primäre Datenbank und die entsprechenden sekundären Datenbanken anzuhalten, stellen Sie eine Verbindung mit der Serverinstanz her, die das primäre Replikat hostet. Um eine sekundäre Datenbank anzuhalten und die primäre Datenbank verfügbar zu lassen, stellen Sie eine Verbindung mit dem sekundären Replikat her.
Empfehlungen
Bei Engpässen ist das Anhalten einer oder mehrerer sekundärer Datenbanken möglicherweise kurz nützlich, um die Leistung auf dem primären Replikat vorübergehend zu verbessern. Solange eine sekundäre Datenbank ausgesetzt bleibt, kann das Transaktionsprotokoll der entsprechenden primären Datenbank nicht gekürzt werden. Dies führt dazu, dass sich Protokolldatensätze auf der primären Datenbank ansammeln. Daher wird empfohlen, dass Sie eine angehaltene sekundäre Datenbank schnell fortsetzen oder entfernen. Weitere Informationen finden Sie in diesem Artikel unter Nachverfolgung: Vermeiden eines vollen Transaktionsprotokolls.
Sicherheit
Berechtigungen
Erfordert die ALTER-Berechtigung für die Datenbank.
Erfordert die Berechtigung ALTER AVAILABILITY GROUP für die Verfügbarkeitsgruppe, die CONTROL-Berechtigung AVAILABILITY GROUP, die ALTER ANY-Berechtigung AVAILABILITY GROUP oder die CONTROL SERVER-Berechtigung.
Verwendung von SQL Server Management Studio
Eine Datenbank anhalten
Stellen Sie im Objekt-Explorer eine Verbindung mit der Serverinstanz mit dem Verfügbarkeitsreplikat her, auf der eine Datenbank angehalten werden soll, und erweitern Sie die Serverstruktur. Weitere Informationen finden Sie weiter oben in diesem Thema unter Voraussetzungen.
Erweitern Sie den Knoten Hohe Verfügbarkeit (immer aktiviert) und den Knoten Verfügbarkeitsgruppen .
Erweitern Sie die Verfügbarkeitsgruppe.
Erweitern Sie den Knoten Verfügbarkeitsdatenbanken, klicken Sie mit der rechten Maustaste auf die Datenbank, und klicken Sie auf Datenbewegung anhalten.
Klicken Sie im Dialogfeld Datenverschiebung anhalten auf OK.
Der Objekt-Explorer zeigt an, dass die Datenbank ausgesetzt ist, indem das Datenbanksymbol mit einem Pausensymbol versehen wird.
Hinweis
Wiederholen Sie zum Anhalten weiterer Datenbanken in diesem Replikatspeicherort Schritt 4 und 5 für jede Datenbank.
Verwenden von Transact-SQL
Eine Datenbank anhalten
Stellen Sie eine Verbindung mit der Serverinstanz her, die das Replikat hostet, dessen Datenbank Sie anhalten möchten. Weitere Informationen finden Sie weiter oben in diesem Thema unter Voraussetzungen.
Anhalten der Datenbank mithilfe der folgenden ALTER DATABASE Anweisung:
ALTER DATABASE database_nameSET HADR SUSPEND;
Verwenden von PowerShell
Eine Datenbank aussetzen
Wechseln Sie mit cd in das Verzeichnis der Serverinstanz, die das Replikat beherbergt, dessen Datenbank Sie aussetzen möchten. Weitere Informationen finden Sie weiter oben in diesem Thema unter Voraussetzungen.
Verwenden Sie das Cmdlet Suspend-SqlAvailabilityDatabase, um die Verfügbarkeitsgruppe anzuhalten.
Beispielsweise setzt der folgende Befehl die Datensynchronisierung für die Verfügbarkeitsdatenbank
MyDb3in der VerfügbarkeitsgruppeMyAgauf der Serverinstanz mit dem NamenComputer\Instanceaus.Suspend-SqlAvailabilityDatabase ` -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg\AvailabilityDatabases\MyDb3Hinweis
Um die Syntax eines Cmdlets anzuzeigen, verwenden Sie das Get-Help -Cmdlet in der SQL Server PowerShell-Umgebung. Weitere Informationen finden Sie unter Get Help SQL Server PowerShell.
Einrichten und Verwenden des SQL Server PowerShell-Anbieters
Nachverfolgung: Vermeiden eines vollen Transaktionsprotokolls
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. Wenn jedoch eine sekundäre Datenbank angehalten wird, bleiben alle aktuellen Protokolldatensätze auf der primären Datenbank aktiv. Wenn das Transaktionsprotokoll 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.
Führen Sie eine der folgenden Aktionen aus, um dieses Problem zu umgehen:
Fügen Sie mehr Protokollspeicherplatz für die primäre Datenbank hinzu.
Setzen Sie die sekundäre Datenbank fort, bevor das Protokoll voll ist. Weitere Informationen finden Sie weiter unten in diesem Thema unter Fortsetzen einer Verfügbarkeitsdatenbank (SQL Server).
Entfernen Sie die sekundäre Datenbank. Weitere Informationen finden Sie unter Entfernen einer sekundären Datenbank aus einer Verfügbarkeitsgruppe (SQL Server).
So beheben Sie die Fehler eines vollständigen Transaktionsprotokolls
Verwandte Aufgaben
Siehe auch
Übersicht über Always On-Verfügbarkeitsgruppen (SQL Server)
Fortsetzen einer Verfügbarkeitsdatenbank (SQL Server)