ALTER DATABASE (Transact-SQL) SET HADR

Van toepassing op:SQL Server

Dit onderwerp bevat de ALTER DATABASE syntaxis voor het instellen van Always On-beschikbaarheidsgroepen opties op een secundaire database. Er is per statement slechts één SET HADR optie toegestaan ALTER DATABASE . Deze opties worden alleen ondersteund op secundaire replica's.

Transact-SQL syntaxis-conventies

Syntax

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

Arguments

database_name
Is de naam van de secundaire database die aangepast moet worden?

SET HADR
Voert het gespecificeerde Always On availability groups-commando uit op de opgegeven database.

{ AVAILABILITY GROUP=group_name | OFF }
Voegt zich aan of verwijdert de beschikbaarheidsdatabase uit de opgegeven beschikbaarheidsgroep, als volgt:

group_name
Voegt zich bij de gespecificeerde database op de secundaire replica die wordt gehost door de serverinstantie waarop je het commando uitvoert naar de beschikbaarheidsgroep die door group_name is gespecificeerd.

De vereisten voor deze operatie zijn als volgt:

  • De database moet al aan de beschikbaarheidsgroep op de primaire replica zijn toegevoegd.

  • De primaire replica moet actief zijn. Voor informatie over het oplossen van problemen met een inactieve primaire replica, zie Troubleshooting Always On Availability Groups Configuration (SQL Server).

  • De primaire replica moet online zijn, en de secundaire replica moet verbonden zijn met de primaire replica.

  • De secundaire database moet zijn hersteld met WITH NORECOVERY uit recente database en logback-ups van de primaire database, eindigend met een log-backup die recent genoeg is om de secundaire database in staat te stellen de primaire database in te halen.

    Note

    Om een database toe te voegen aan de beschikbaarheidsgroep, verbind je met de serverinstantie die de primaire replica host en gebruik je de ALTER AVAILABILITY GROUPgroup_name ADD DATABASEdatabase_name-instructie .

Zie Een secundaire database toevoegen aan een beschikbaarheidsgroep (SQL Server) voor meer informatie.

OFF
Verwijdert de gespecificeerde secundaire database uit de beschikbaarheidsgroep.

Het verwijderen van een secundaire database kan nuttig zijn als deze ver achterloopt op de primaire database, en je wilt niet wachten tot de secundaire database is bijgelopen. Na het verwijderen van de secundaire database kun je deze bijwerken door een reeks back-ups te herstellen die eindigen met een recente logback-up (met RESTORE ... ZONDER HERSTEL).

Belangrijk

Om een beschikbaarheidsdatabase volledig uit een beschikbaarheidsgroep te verwijderen, maak je verbinding met de serverinstantie die de primaire replica host en gebruik je de ALTER AVAILABILITY GROUPgroup_name REMOVE DATABASEavailability_database_name-instructie . Voor meer informatie, zie Verwijder een primaire database uit een Beschikbaarheidsgroep (SQL Server).

SUSPEND
Schorst de gegevensbeweging op een secundaire database. Een SUSPEND-opdracht wordt geretourneerd zodra deze is geaccepteerd door de replica die als host fungeert voor de doeldatabase, maar de database daadwerkelijk asynchroon onderbreekt.

De reikwijdte van de impact hangt af van waar je de ALTER DATABASE uitspraak uitvoert:

  • Als je een secundaire database op een secundaire replica opschort, wordt alleen de lokale secundaire database opgeschort. Bestaande verbindingen op de leesbare secundaire blijven bruikbaar. Nieuwe verbindingen met de gepauzeerde database op de leesbare secundaire zijn pas toegestaan nadat de gegevensverplaatsing is hervat.

  • Als je een database op de primaire replica opschort, wordt de gegevensbeweging naar de bijbehorende secundaire databases op elke secundaire replica opgeschort. Bestaande verbindingen op een leesbare secundaire blijven bruikbaar, en nieuwe leesintentieverbindingen zullen niet verbinden met leesbare secundaire replica's.

  • Wanneer gegevensbeweging wordt opgeschort door een gedwongen handmatige failover, zijn verbindingen met de nieuwe secundaire replica niet toegestaan terwijl de gegevensoverdracht wordt opgeschort.

Wanneer een database op een secundaire replica wordt opgeschort, worden zowel de database als de replica niet gesynchroniseerd en worden ze als NIET GESYNCHRONISEERD gemarkeerd.

Belangrijk

Terwijl een secundaire database wordt opgeschort, zal de verzendwachtrij van de bijbehorende primaire database niet-verzonden transactielogrecords verzamelen. Verbindingen met de secundaire replica geven gegevens terug die beschikbaar waren toen de gegevensoverdracht werd onderbroken.

Note

Het opschorten en hervatten van een Always On secundaire database beïnvloedt de beschikbaarheid van de primaire database niet direct, hoewel het opschorten van een secundaire database de redundantie en failovercapaciteit voor de primaire database kan beïnvloeden, totdat de onderbroken secundaire database wordt hervat. Dit is in tegenstelling tot databasespiegeling, waarbij de spiegelingsstatus wordt onderbroken voor zowel de gespiegelde database als de hoofd-database totdat de spiegeling wordt hervat. Als u een primaire AlwaysOn-database onderbreekt, wordt de gegevensverplaatsing voor alle bijbehorende secundaire databases onderbroken en worden redundantie- en failovermogelijkheden voor die database stopgezet totdat de primaire database wordt hervat.

Voor meer informatie, zie Suspend an Availability Database (SQL Server).

RESUME
Hervat de onderbroken gegevensbeweging op de gespecificeerde secundaire database. Een RESUME-opdracht wordt geretourneerd zodra deze is geaccepteerd door de replica die als host fungeert voor de doeldatabase, maar het daadwerkelijk hervatten van de database gebeurt asynchroon.

De reikwijdte van de impact hangt af van waar je de ALTER DATABASE uitspraak uitvoert:

  • Als je een secundaire database op een secundaire replica hervat, wordt alleen de lokale secundaire database hervat. De gegevensbeweging wordt hervat tenzij de database ook is onderbroken op de primaire replica.

  • Als je een database op de primaire replica hervat, wordt de gegevensbeweging hervat naar elke secundaire replica waarop de bijbehorende secundaire database niet ook lokaal is opgeschort. Om een secundaire database te hervatten die individueel is onderbroken op een secundaire replica, verbind je je met de serverinstantie die de secundaire replica host en hervat je de database daar.

    In synchronous-commit-modus verandert de databasestatus naar SYNCHRONIZING. Als geen andere database momenteel is onderbroken, verandert de replica-status ook naar SYNCHRONIZING.

    Voor meer informatie, zie Een beschikbaarheidsdatabase (SQL Server) hervatten.

Databasestatussen

Wanneer een secundaire database wordt toegevoegd aan een beschikbaarheidsgroep, verandert de lokale secundaire replica de status van die secundaire database van HERSTELLEN naar ONLINE. Als een secundaire database uit de beschikbaarheidsgroep wordt verwijderd, wordt deze door de lokale secundaire replica teruggezet naar de RESTAURATIE-status. Dit stelt je in staat om daaropvolgende logback-ups van de primaire database op die secundaire database toe te passen.

Beperkingen

Voer ALTER DATABASE statements uit buiten zowel transacties als batches.

Security

Permissions

Vereist ALTER-machtigingen voor de database. Het koppelen van een database aan een beschikbaarheidsgroep vereist lidmaatschap van de db_owner vaste databaserol.

Examples

In het volgende voorbeeld wordt de secundaire database AccountsDb1gekoppeld aan de lokale secundaire replica van de AccountsAG beschikbaarheidsgroep.

ALTER DATABASE AccountsDb1 SET HADR AVAILABILITY GROUP = AccountsAG;  

Note

Zie Een beschikbaarheidsgroep (Transact-SQL) maken om deze Transact-SQL instructie te zien die in context wordt gebruikt.

Zie ook

ALTER DATABASE (Transact-SQL)
ALTER AVAILABILITY GROUP (Transact-SQL)
CREATE AVAILABILITY GROUP (Transact-SQL)
Overzicht van Always On beschikbaarheidsgroepen (SQL Server)Probleemoplossing Always On beschikbaarheidsgroepen configuratie (SQL Server)