Delen via


Een beschikbaarheidsdatabase onderbreken (SQL Server)

van toepassing op:SQL Server-

U kunt een beschikbaarheidsdatabase in AlwaysOn-beschikbaarheidsgroepen onderbreken met behulp van SQL Server Management Studio, Transact-SQL of PowerShell in SQL Server. Houd er rekening mee dat er een suspend-opdracht moet worden uitgegeven op het serverexemplaar dat de database host om deze te onderbreken of te hervatten.

Het effect van een opdracht onderbreken is afhankelijk van of u een secundaire database of een primaire database als volgt onderbreekt:

Opgeschorte database Effect van Onderbreken-opdracht
Secundaire database Alleen de lokale secundaire database wordt onderbroken en de synchronisatiestatus wordt NIET SYNCHROON. Andere secundaire databases worden niet beïnvloed. De onderbroken database stopt met het ontvangen en toepassen van gegevens (logboekrecords) en begint achter de primaire database te vallen. 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. Dit gedrag is alleen van toepassing wanneer verbindingen worden geopend met een listener en alleen-lezen-routering.

De primaire database blijft beschikbaar. Als u elk van de bijbehorende secundaire databases onderbreekt, is de primaire database blootgesteld.

** Belangrijk ** Terwijl een secundaire database wordt onderbroken, verzamelt de verzendwachtrij van de bijbehorende primaire database niet-verzonden transactielogboekrecords. Verbindingen met de secundaire replica geven gegevens terug die beschikbaar waren toen de gegevensoverdracht werd onderbroken.
Primaire database De primaire database stopt de gegevensverplaatsing naar elke verbonden secundaire database. De primaire database blijft draaien, in een blootgestelde modus. De primaire database blijft beschikbaar voor clients en bestaande verbindingen op een leesbare secundaire blijven bruikbaar en nieuwe verbindingen kunnen worden gemaakt.

Notitie

Het onderbreken van een secundaire AlwaysOn-database heeft geen rechtstreeks invloed op de beschikbaarheid van de primaire database. Het onderbreken van een secundaire database kan echter van invloed zijn op redundantie- en failovermogelijkheden voor de primaire database. Dit is in tegenstelling tot databasespiegeling, waarbij de mirroringstatus wordt onderbroken voor zowel de gespiegelde database als de hoofddatabase. 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.

Voordat u begint

Beperkingen en beperkingen

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.

Voorwaarden

U moet verbonden zijn met de serverinstantie die de database host die u wilt onderbreken. Als u een primaire database en de bijbehorende secundaire databases wilt onderbreken, maakt u verbinding met het serverexemplaren waarop de primaire replica wordt gehost. Als u een secundaire database wilt onderbreken terwijl u de primaire database beschikbaar laat, maakt u verbinding met de secundaire replica.

Aanbevelingen

Tijdens knelpunten kan het kort nuttig zijn om een of meer secundaire databases tijdelijk te onderbreken om de prestaties op de primaire replica tijdelijk te verbeteren. Zolang een secundaire database onderbroken blijft, kan het transactielogboek van de bijbehorende primaire database niet worden afgekapt. Hierdoor worden logboekrecords verzameld op de primaire database. Daarom raden we u aan om snel een onderbroken secundaire database te hervatten of te verwijderen. Zie voor meer informatie verderop in dit onderwerp : Het vermijden van een volledig transactielogboek.

Veiligheid

Machtigingen

Vereist ALTER-machtigingen voor de database.

Hiervoor is de machtiging ALTER AVAILABILITY GROUP vereist voor de beschikbaarheidsgroep, de machtiging BESCHIKBAARHEIDSGROEP BEHEREN, de machtiging BESCHIKBAARHEIDSGROEP WIJZIGEN of de machtiging CONTROL SERVER.

SQL Server Management Studio gebruiken

Een database onderbreken

  1. Maak in Objectverkenner verbinding met het serverexemplaar waar de beschikbaarheidsreplica wordt gehost waarop u een database wilt onderbreken, en vouw vervolgens de serverstructuur uit. Zie Vereisteneerder in dit onderwerp voor meer informatie.

  2. Vouw het knooppunt Always On hoge beschikbaarheid en het Beschikbaarheidsgroepen knooppunt uit.

  3. Vouw de beschikbaarheidsgroep uit.

  4. Vouw het knooppunt databases voor beschikbaarheid uit, klik met de rechtermuisknop op de database en klik op Gegevensverplaatsing onderbreken.

  5. Klik in het dialoogvenster Suspend Data Movement op OK.

    Objectverkenner geeft aan dat de database is onderbroken door het databasepictogram te wijzigen om een onderbrekingsindicator weer te geven.

Notitie

Als u extra databases op deze replicalocatie wilt onderbreken, herhaalt u stap 4 en 5 voor elke database.

Transact-SQL gebruiken

Een database onderbreken

  1. Maak verbinding met het serverexemplaar die de replica host waarvan u de database wilt opschorten. Zie Vereisteneerder in dit onderwerp voor meer informatie.

  2. Schort de database op door gebruik te maken van de volgende instructie ALTER DATABASE:

    ALTER DATABASE database_name SET HADR SUSPEND;

PowerShell gebruiken

Een database onderbreken

  1. Wijzig de map (cd) naar het serverexemplaar waarop de replica wordt gehost waarvan u de database wilt opschorten. Zie Vereisteneerder in dit onderwerp voor meer informatie.

  2. Gebruik de cmdlet Suspend-SqlAvailabilityDatabase om de beschikbaarheidsgroep op te schorten.

    De volgende opdracht onderbreekt bijvoorbeeld de gegevenssynchronisatie voor de beschikbaarheidsdatabase MyDb3 in de beschikbaarheidsgroep MyAg op het serverexemplaren met de naam Computer\Instance.

    Suspend-SqlAvailabilityDatabase `   
    -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg\AvailabilityDatabases\MyDb3  
    

    Notitie

    Als u de syntaxis van een cmdlet wilt weergeven, gebruikt u de Get-Help--cmdlet in de SQL Server PowerShell-omgeving. Zie Help sql Server PowerShellvoor meer informatie.

De SQL Server PowerShell-provider instellen en gebruiken

Opvolgen: Een volledig transactielogboek vermijden

Wanneer een automatisch controlepunt wordt uitgevoerd op een database, wordt het transactielogboek normaal gesproken afgekapt tot dat controlepunt na de volgende logboekback-up. Hoewel een secundaire database is onderbroken, blijven alle huidige logboekrecords actief op de primaire database. Als het transactielogboek vol raakt (omdat het de maximale grootte bereikt of het serverexemplaren onvoldoende ruimte heeft), kan de database geen updates meer uitvoeren.

U kunt dit probleem voorkomen door een van de volgende handelingen uit te voeren:

Problemen met een volledig transactielogboek oplossen

Gerelateerde taken

Zie ook

overzicht van AlwaysOn-beschikbaarheidsgroepen (SQL Server)
een SQL Server- (Availability Database) hervatten