Anhalten einer Verfügbarkeitsdatenbank (SQL Server)
Eine Verfügbarkeitsdatenbank können Sie in AlwaysOn-Verfügbarkeitsgruppen mithilfe von SQL Server Management Studio, Transact-SQL oder PowerShell in SQL Server 2012 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 Anhaltebefehls |
||
---|---|---|---|
Sekundäre Datenbank |
Nur die lokale sekundäre Datenbank wird angehalten, und ihr Synchronisierungsstatus wird 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 mit dem lesbaren sekundären Replikat können weiter verwendet werden. Neue Verbindungen mit der angehaltenen Datenbank auf dem lesbaren sekundären Replikat werden erst zugelassen, wenn Datenverschiebung fortgesetzt wird. Die primäre Datenbank bleibt verfügbar. Wenn Sie jede der entsprechenden sekundären Datenbanken anhalten, wird die primären Datenbank ungeschützt ausgeführt.
|
||
Primäre Datenbank |
Die primäre Datenbank beendet die Datenverschiebung zu jeder verbundenen sekundären Datenbank. 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 AlwaysOn-Datenbank 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 Anhalten einer primären AlwaysOn-Datenbank wird die Datenverschiebung auf allen entsprechenden sekundären Datenbanken angehalten, und Redundanz- und Failoverfunktionen für diese Datenbank werden deaktiviert, bis die primäre Datenbank fortgesetzt wird. |
Vorbereitungen:
Einschränkungen
Voraussetzungen
Empfehlungen
Sicherheit
Anhalten einer Datenbank mit:
SQL Server Management Studio
Transact-SQL
PowerShell
Nachverfolgung: Vermeiden eines vollen Transaktionsprotokolls
Verwandte Aufgaben
Vorbereitungen
Einschränkungen
Ein SUSPEND-Befehl gibt einen Wert zurück, sobald es vom Replikat akzeptiert wurde, das die Zieldatenbank hostet. Das Anhalten der Datenbank ist jedoch dadurch 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 angehalten bleibt, kann das Transaktionsprotokoll der entsprechenden primären Datenbank nicht abgeschnitten 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 weiter unten in diesem Thema unter Nachverfolgung: Vermeiden eines vollen Transaktionsprotokolls.
Sicherheit
Berechtigungen
Erfordert die ALTER-Berechtigung für die Datenbank.
Erfordert die ALTER AVAILABILITY GROUP-Berechtigung für die Verfügbarkeitsgruppe, die CONTROL AVAILABILITY GROUP-Berechtigung, die ALTER ANY AVAILABILITY GROUP-Berechtigung oder die CONTROL SERVER-Berechtigung.
[Nach oben]
SQL Server Management Studio
So halten Sie eine Datenbank an
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 Datenverschiebung anhalten.
Klicken Sie im Dialogfeld Datenverschiebung anhalten auf OK.
Im Objekt-Explorer wird angegeben, dass die Datenbank angehalten wird, indem das Datenbanksymbol einen Pausenindikator anzeigt.
Hinweis |
---|
Wiederholen Sie zum Anhalten weiterer Datenbanken in diesem Replikatspeicherort Schritt 4 und 5 für jede Datenbank. |
[Nach oben]
Transact-SQL
So halten Sie eine Datenbank an
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.
Halten Sie die Datenbank mithilfe der folgenden ALTER DATABASE-Anweisung an:
ALTER DATABASE database_name SET HADR SUSPEND
[Nach oben]
PowerShell
So halten Sie eine Datenbank an
Ändern Sie das Verzeichnis (cd) zur Serverinstanz, die das Replikat hostet, dessen Datenbank Sie anhalten möchten. Weitere Informationen finden Sie weiter oben in diesem Thema unter Voraussetzungen.
Verwenden Sie das Suspend-SqlAvailabilityDatabase-Cmdlet, um die Verfügbarkeitsgruppe anzuhalten.
Durch den folgenden Befehl wird beispielsweise die Datensynchronisierung für die Verfügbarkeitsdatenbank MyDb3 in der Verfügbarkeitsgruppe MyAg auf der Serverinstanz Computer\Instance angehalten.
Suspend-SqlAvailabilityDatabase ` -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg\Databases\MyDb3
Hinweis Um die Syntax eines Cmdlets anzuzeigen, verwenden Sie das Get-Help-Cmdlet in der SQL Server PowerShell-Umgebung. Weitere Informationen finden Sie unter Aufrufen der SQL Server PowerShell-Hilfe.
Einrichten und Verwenden des SQL Server PowerShell-Anbieters
[Nach oben]
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 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
[Nach oben]