ALTER DATABASE (Transact-SQL) SET HADRALTER DATABASE (Transact-SQL) SET HADR

DIESES THEMA GILT FÜR: jaSQL Server (ab 2012)neinAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2012)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Dieses Thema enthält die ALTER DATABASE-Syntax für die Einstellung AlwaysOn-VerfügbarkeitsgruppenAlways On availability groups Optionen für eine sekundäre Datenbank.This topic contains the ALTER DATABASE syntax for setting AlwaysOn-VerfügbarkeitsgruppenAlways On availability groups options on a secondary database. Es ist nur eine SET HADR-Option pro ALTER DATABASE-Anweisung zulässig.Only one SET HADR option is permitted per ALTER DATABASE statement. Diese Optionen werden nur auf sekundären Replikaten unterstützt.These options are supported only on secondary replicas.

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax


ALTER DATABASE database_name  
   SET HADR   
   {  
        { AVAILABILITY GROUP = group_name | OFF }  
   | { SUSPEND | RESUME }  
   }  
[;]  

ArgumenteArguments

database_namedatabase_name
Der Name der sekundären Datenbank, die geändert werden soll.Is the name of the secondary database to be modified.

SET HADRSET HADR
Führt den angegebenen Befehl AlwaysOn-VerfügbarkeitsgruppenAlways On availability groups-Befehl in der angegebenen Datenbank aus.Executes the specified AlwaysOn-VerfügbarkeitsgruppenAlways On availability groups command on the specified database.

{AVAILABILITY GROUP = Gruppenname | {OFF}{ AVAILABILITY GROUP =group_name | OFF }
Verknüpft die Verfügbarkeitsdatenbank mit der angegebenen Verfügbarkeitsgruppe oder entfernt sie hieraus.Joins or removes the availability database from the specified availability group, as follows:

Gruppennamegroup_name
Verknüpft die angegebene Datenbank auf dem sekundären Replikat, das von der Serverinstanz gehostet wird, auf der Sie den Befehl ausführen, mit der durch group_name angegebenen Verfügbarkeitsgruppe.Joins the specified database on the secondary replica that is hosted by the server instance on which you execute the command to the availability group specified by group_name.

Für diesen Vorgang müssen folgende Voraussetzungen gegeben sein:The prerequisites for this operation are as follows:

  • Die Datenbank muss der Verfügbarkeitsgruppe auf dem primären Replikat bereits hinzugefügt worden sein.The database must already have been added to the availability group on the primary replica.

  • Das primäre Replikat muss aktiv sein.The primary replica must be active. Informationen zur Problembehandlung für eines inaktiven primären Replikats, finden Sie unter Problembehandlung immer auf Verfügbarkeitsgruppenkonfiguration (SQL Server).For information about how troubleshoot an inactive primary replica, see Troubleshooting Always On Availability Groups Configuration (SQL Server).

  • Das primäre Replikat muss online sein, und das sekundäre Replikat muss mit dem primären Replikat verbunden sein.The primary replica must be online, and the secondary replica must be connected to the primary replica.

  • Die sekundäre Datenbank muss mit WITH NORECOVERY aus einer aktuellen Datenbank und Protokollsicherungen der primären Datenbank wiederhergestellt werden und mit einer Protokollsicherung enden, die so aktuell ist, dass die sekundäre Datenbank den gleichen Stand hat wie die primäre Datenbank.The secondary database must have been restored using WITH NORECOVERY from recent database and log backups of the primary database, ending with a log backup that is recent enough to permit the secondary database to catch up to the primary database.

    Hinweis

    Um eine Datenbank mit der verfügbarkeitsgruppe hinzuzufügen, eine Verbindung mit der Serverinstanz, die das primäre Replikat hostet, und verwenden Sie die ALTER AVAILABILITY GROUPGruppenname Hinzufügen von Datenbanken Database_name Anweisung.To add a database to the availability group, connect to the server instance that hosts the primary replica, and use the ALTER AVAILABILITY GROUPgroup_name ADD DATABASE database_name statement.

    Weitere Informationen finden Sie unter Verknüpfen einer sekundären Datenbank mit einer Verfügbarkeitsgruppe (SQL Server)aktiviert sind, eine Always On-Verfügbarkeitsgruppe zu erstellen.For more information, see Join a Secondary Database to an Availability Group (SQL Server).

    OFFOFF
    Entfernt die angegebene sekundäre Datenbank aus der Verfügbarkeitsgruppe.Removes the specified secondary database from the availability group.

    Das Entfernen einer sekundären Datenbank ist sinnvoll, wenn diese gegenüber der primären Datenbank stark veraltet ist und Sie nicht warten möchten, bis die sekundäre Datenbank wieder auf dem Stand der primären Datenbank ist.Removing a secondary database can be useful if it has fallen far behind the primary database, and you do not want to wait for the secondary database to catch up. Nach dem Entfernen der sekundären Datenbank, können Sie ihn Aktualisieren mit der Wiederherstellung einer Sequenz von Sicherungen endet mit einer aktuellen protokollsicherung (mithilfe von RESTORE...After removing the secondary database, you can update it by restoring a sequence of backups ending with a recent log backup (using RESTORE … MITHILFE VON WITH NORECOVERY).WITH NORECOVERY).

Wichtig

Um eine verfügbarkeitsdatenbank vollständig aus einer verfügbarkeitsgruppe zu entfernen, eine Verbindung mit der Serverinstanz, die das primäre Replikat hostet, und verwenden Sie die ALTER AVAILABILITY GROUPGruppenname entfernen Datenbank verfügbarkeitsdatenbankname Anweisung.To completely remove an availability database from an availability group, connect to the server instance that hosts the primary replica, and use the ALTER AVAILABILITY GROUPgroup_name REMOVE DATABASE availability_database_name statement. Weitere Informationen finden Sie unter Entfernen einer Primärdatenbank aus einer Verfügbarkeitsgruppe ( SQLServer ) .For more information, see Remove a Primary Database from an Availability Group (SQL Server).

SUSPENDSUSPEND
Hält das Verschieben von Daten in einer sekundären Datenbank an.Suspends data movement on a secondary database. 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.A SUSPEND command returns as soon as it has been accepted by the replica that hosts the target database, but actually suspending the database occurs asynchronously.

Der Umfang der Auswirkungen hängt davon ab, wo Sie die ALTER DATABASE-Anweisung ausführen:The scope of the impact depends on where you execute the ALTER DATABASE statement:

  • Wenn Sie eine sekundäre Datenbank auf einem sekundären Replikat anhalten, wird nur die lokale sekundäre Datenbank angehalten.If you suspend a secondary database on a secondary replica, only the local secondary database is suspended. Vorhandene Verbindungen mit dem lesbaren sekundären Replikat können weiter verwendet werden.Existing connections on the readable secondary remain usable. Neue Verbindungen mit der angehaltenen Datenbank auf dem lesbaren sekundären Replikat werden erst zugelassen, wenn Datenverschiebung fortgesetzt wird.New connections to the suspended database on the readable secondary are not allowed until data movement is resumed.

  • Wenn Sie eine Datenbank auf dem primären Replikat anhalten, wird die Datenverschiebung in die entsprechenden sekundären Datenbanken auf jedem sekundären Replikat angehalten.If you suspend a database on the primary replica, data movement is suspended to the corresponding secondary databases on every secondary replica. Vorhandene Verbindungen auf einer lesbaren sekundären Datenbank bleiben verwendbar, und neue Verbindungen für beabsichtigte Lesevorgänge werden nicht mit lesbaren sekundären Replikaten verbinden.Existing connections on a readable secondary remain usable, and new read-intent connections will not connect to readable secondary replicas.

  • Wenn die Datenverschiebung aufgrund eines erzwungenen manuellen Failovers angehalten wird, werden Verbindungen mit dem neuen sekundären Replikat nicht zugelassen, solange die Datenverschiebung angehalten ist.When data movement is suspended due to a forced manual failover, connections to the new secondary replica are not allowed while data movement is suspended.

    Wenn eine Datenbank auf einem sekundären Replikat angehalten ist, werden die Datenbank und das Replikat nicht mehr synchronisiert und als NOT SYNCHRONIZED markiert.When a database on a secondary replica is suspended, both the database and replica become unsynchronized and are marked as NOT SYNCHRONIZED.

Wichtig

Während eine sekundäre Datenbank angehalten ist, sammelt die Sendewarteschlange der entsprechenden primären Datenbank nicht gesendete Transaktionsprotokoll-Datensätze.While a secondary database is suspended, the send queue of the corresponding primary database will accumulate unsent transaction log records. Verbindungen mit dem sekundären Replikat geben Daten zurück, die verfügbar waren, als die Datenverschiebung angehalten wurde.Connections to the secondary replica return data that was available at the time the data movement was suspended.

Hinweis

Das Anhalten und Fortsetzen einer Always On-sekundären Datenbank wirkt direkt die Verfügbarkeit der primären Datenbank sich nicht, obwohl das Anhalten einer sekundären Datenbank Redundanz- und Failoverfunktionen für die primäre Datenbank, bis die angehaltene auswirken kann sekundäre Datenbank fortgesetzt wird.Suspending and resuming an Always On secondary database does not directly affect the availability of the primary database, though suspending a secondary database can impact redundancy and failover capabilities for the primary database, until the suspended secondary database is resumed. Dies steht im Gegensatz zur Datenbankspiegelung, bei der der Spiegelungsstatus sowohl in der Spiegeldatenbank als auch in der Prinzipaldatenbank angehalten wird, bis die Spiegelung fortgesetzt wird.This is in contrast to database mirroring, where the mirroring state is suspended on both the mirror database and the principal database until mirroring is resumed. 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.Suspending an Always On primary database suspends data movement on all the corresponding secondary databases, and redundancy and failover capabilities cease for that database until the primary database is resumed.

Weitere Informationen finden Sie unter Anhalten einer Verfügbarkeitsdatenbank ( SQLServer ) .For more information, see Suspend an Availability Database (SQL Server).

RESUMERESUME
Nimmt eine angehaltene Datenverschiebung in die angegebene sekundäre Datenbank wieder auf.Resumes suspended data movement on the specified secondary database. Ein RESUME-Befehl gibt einen Wert zurück, sobald es vom Replikat akzeptiert wurde, das die Zieldatenbank hostet. Das Fortsetzen der Datenbank ist jedoch dadurch asynchron.A RESUME command returns as soon as it has been accepted by the replica that hosts the target database, but actually resuming the database occurs asynchronously.

Der Umfang der Auswirkungen hängt davon ab, wo Sie die ALTER DATABASE-Anweisung ausführen:The scope of the impact depends on where you execute the ALTER DATABASE statement:

  • Wenn Sie eine sekundäre Datenbank auf einem sekundären Replikat wieder aufnehmen, wird nur die lokale sekundäre Datenbank wieder aufgenommen.If you resume a secondary database on a secondary replica, only the local secondary database is resumed. Die Datenverschiebung wird fortgesetzt, außer die Datenbank wurde auch auf dem primären Replikat angehalten.Data movement is resumed unless the database has also been suspended on the primary replica.

  • Wenn Sie eine Datenbank auf dem primären Replikat wieder aufnehmen, wird Datenverschiebung auf alle sekundären Replikate fortgesetzt, auf denen die entsprechende sekundäre Datenbank nicht ebenfalls lokal angehalten wurde.If you resume a database on the primary replica, data movement is resumed to every secondary replica on which the corresponding secondary database has not also been suspended locally. Um eine sekundäre Datenbank fortzusetzen, die einzeln auf einem sekundären Replikat angehalten wurde, stellen Sie eine Verbindung mit der Serverinstanz her, die das sekundäre Replikat hostet, und setzen Sie die Datenbank dort fort.To resume a secondary database that was individually suspended on a secondary replica, connect to the server instance that hosts the secondary replica and resume the database there.

    Im Modus für synchrone Commits ändert sich der Datenbankstatus in SYNCHRONIZING.Under synchronous-commit mode, the database state changes to SYNCHRONIZING. Wenn zurzeit keine andere Datenbank angehalten ist, ändert sich der Replikatstatus ebenfalls in SYNCHRONIZING.If no other database is currently suspended, the replica state also changes to SYNCHRONIZING.

    Weitere Informationen finden Sie weiter unten in diesem Thema unter Fortsetzen einer Verfügbarkeitsdatenbank (SQL Server)anhalten.For more information, see Resume an Availability Database (SQL Server).

DatenbankstatusDatabase States

Wenn eine sekundäre Datenbank mit einer Verfügbarkeitsgruppe verbunden wird, ändert das lokale sekundäre Replikat den Status dieser sekundären Datenbank von RESTORING in ONLINE.When a secondary database is joined to an availability group, the local secondary replica changes the state of that secondary database from RESTORING to ONLINE. Wenn eine sekundäre Datenbank aus der Verfügbarkeitsgruppe entfernt wird, wird sie vom lokalen sekundären Replikat auf den Status RESTORING zurückgesetzt.If a secondary database is removed from the availability group, it is set back to the RESTORING state by the local secondary replica. Dies ermöglicht Ihnen, nachfolgende Protokollsicherungen aus der primären Datenbank auf diese sekundäre Datenbank anzuwenden.This allows you to apply subsequent log backups from the primary database to that secondary database.

EinschränkungenRestrictions

Führen Sie ALTER DATABASE-Anweisungen außerhalb von Transaktionen und Batches aus.Execute ALTER DATABASE statements outside of both transactions and batches.

SicherheitSecurity

BerechtigungenPermissions

Erfordert die ALTER-Berechtigung für die Datenbank.Requires ALTER permission on the database. Verknüpfen einer Datenbank mit einer verfügbarkeitsgruppe erfordert die Mitgliedschaft in der Db_owner festen Datenbankrolle "".Joining a database to an availability group requires membership in the db_owner fixed database role.

BeispieleExamples

Im folgenden Beispiel wird die sekundäre Datenbank AccountsDb1 mit dem lokalen sekundären Replikat der AccountsAG-Verfügbarkeitsgruppe verknüpft.The following example joins the secondary database, AccountsDb1, to the local secondary replica of the AccountsAG availability group.

ALTER DATABASE AccountsDb1 SET HADR AVAILABILITY GROUP = AccountsAG;  

Hinweis

Unter Erstellen einer Verfügbarkeitsgruppe (Transact-SQL) können Sie die Verwendung dieser Transact-SQLTransact-SQL-Anweisung im Kontext sehen.To see this Transact-SQLTransact-SQL statement used in context, see Create an Availability Group (Transact-SQL).

Siehe auchSee Also

ALTER DATABASE (Transact-SQL) ALTER DATABASE (Transact-SQL)
ALTER AVAILABILITY GROUP (Transact-SQL) ALTER AVAILABILITY GROUP (Transact-SQL)
CREATE AVAILABILITY GROUP (Transact-SQL) CREATE AVAILABILITY GROUP (Transact-SQL)
Übersicht über AlwaysOn-Verfügbarkeitsgruppen ( SQLServer ) Problembehandlung bei AlwaysOn-Verfügbarkeitsgruppenkonfiguration ( SQLServer )Overview of AlwaysOn Availability Groups (SQL Server) Troubleshoot AlwaysOn Availability Groups Configuration (SQL Server)