Alleen-lezentoegang tot een secundaire replica van een AlwaysOn-beschikbaarheidsgroep configureren

Van toepassing op:SQL Server

Standaard zijn zowel lees-schrijven- als leesintentietoegang toegestaan voor de primaire replica en zijn er geen verbindingen toegestaan voor secundaire replica's van een AlwaysOn-beschikbaarheidsgroep. In dit onderwerp wordt beschreven hoe u verbindingstoegang configureert op een beschikbaarheidsreplica van een AlwaysOn-beschikbaarheidsgroep in SQL Server met behulp van SQL Server Management Studio, Transact-SQL of PowerShell.

Voor informatie over de gevolgen van het inschakelen van alleen-leestoegang voor een secundaire replica en voor een inleiding tot clientverbindingstoegang, zie Over clientverbindingstoegang tot beschikbaarheidsreplica's (SQL Server) en Actieve secundaire replica's: leesbare secundaire replica's (Always On-beschikbaarheidsgroepen).

Vereisten en beperkingen

  • Als u verschillende typen verbindingstoegang wilt configureren, moet u verbonden zijn met het serverexemplaar waarop de primaire replica wordt gehost.

toestemmingen

Taak toestemmingen
Replica's configureren bij het maken van een beschikbaarheidsgroep Vereist lidmaatschap van de vaste serverrol sysadmin en daarnaast een van de volgende machtigingen: servermachtiging CREATE AVAILABILITY GROUP, ALTER ANY-machtiging AVAILABILITY GROUP of CONTROL SERVER-machtiging.
Wijzigen van een beschikbaarheidsreplica Vereist de machtiging ALTER AVAILABILITY GROUP voor de beschikbaarheidsgroep, de machtiging CONTROL AVAILABILITY GROUP, de machtiging ALTER ANY AVAILABILITY GROUP of de machtiging CONTROL SERVER.

SQL Server Management Studio gebruiken

Toegang instellen voor een beschikbaarheidsreplica

  1. Maak in Objectverkenner verbinding met het serverexemplaar dat de primaire replica host en vouw de serverboom uit.

  2. Vouw het knooppunt Always On High Availability en het knooppunt Beschikbaarheidsgroepen uit.

  3. Klik op de beschikbaarheidsgroep waarvan u de replica wilt wijzigen.

  4. Klik met de rechtermuisknop op de beschikbaarheidsreplica en klik op Eigenschappen.

  5. In het dialoogvenster Eigenschappen van beschikbaarheidsreplica kunt u de toegang tot de verbinding voor de primaire rol en voor de secundaire rol als volgt wijzigen:

    • Voor de secundaire rol selecteert u als volgt een nieuwe waarde in de leesbare secundaire vervolgkeuzelijst:

      Nee
      Er zijn geen gebruikersverbindingen toegestaan voor secundaire databases van deze replica. Ze zijn niet beschikbaar voor leestoegang. Dit is de standaardinstelling.

      Alleen-leesintentie
      Alleen alleen-lezenverbindingen naar secundaire databases van deze replica zijn toegestaan. De secundaire database(s) zijn allemaal beschikbaar voor leestoegang.

      Yes
      Alle verbindingen zijn toegestaan voor secundaire databases van deze replica, maar alleen voor leestoegang. De secundaire database(s) zijn allemaal beschikbaar voor leestoegang.

    • Voor de primaire rol selecteert u als volgt een nieuwe waarde in de vervolgkeuzelijst Verbindingen in de vervolgkeuzelijst primaire rol :

      Alle verbindingen toestaan
      Alle verbindingen zijn toegestaan voor de databases in de primaire replica. Dit is de standaardinstelling.

      Lees-/schrijfverbindingen toestaan
      Wanneer de eigenschap Toepassingsintentie is ingesteld op ReadWrite of de eigenschap Application Intent-verbinding niet is ingesteld, is de verbinding toegestaan. Verbindingen waarbij de eigenschap Application Intent Connection is ingesteld op ReadOnly , zijn niet toegestaan. Dit kan helpen voorkomen dat klanten per ongeluk een workload met leesintentie met de primaire replica verbinden. Zie Trefwoorden voor verbindingsreeksen gebruiken met SQL Server Native Client voor meer informatie over de verbindingseigenschap Application Intent.

Transact-SQL gebruiken

Het configureren van toegang op een beschikbaarheidsreplica

Note

Zie voorbeeld (Transact-SQL)verderop in deze sectie voor een voorbeeld van deze procedure.

  1. Maak verbinding met het serverexemplaar waarop de primaire replica wordt gehost.

  2. Als u een replica voor een nieuwe beschikbaarheidsgroep opgeeft, gebruikt u de CREATE AVAILABILITY GROUP instructieTransact-SQL. Als u een replica van een bestaande beschikbaarheidsgroep toevoegt of wijzigt, gebruikt u de ALTER AVAILABILITY GROUPTransact-SQL-instructie.

    • Als u de verbindingstoegang voor de secundaire rol wilt configureren, geeft u in de component ADD REPLICA of MODIFY REPLICA WITH de SECONDARY_ROLE optie op, als volgt:

      SECONDARY_ROLE ( ALLOW_CONNECTIONS = { NO | READ_ONLY | ALL } )

      waar,

      NEE
      Er zijn geen directe verbindingen toegestaan voor secundaire databases van deze replica. Ze zijn niet beschikbaar voor leestoegang. Dit is de standaardinstelling.

      READ_ONLY
      Alleen alleen-lezenverbindingen zijn toegestaan voor secundaire databases van deze replica. De secundaire database(s) zijn allemaal beschikbaar voor leestoegang.

      ALLE
      Alle verbindingen zijn toegestaan voor secundaire databases van deze replica, maar alleen voor leestoegang. De secundaire database(s) zijn allemaal beschikbaar voor leestoegang.

  3. Als u de verbindingstoegang voor de primaire rol wilt configureren, geeft u in de component ADD REPLICA of MODIFY REPLICA WITH de optie PRIMARY_ROLE op, als volgt:

    PRIMARY_ROLE ( ALLOW_CONNECTIONS = { READ_WRITE | ALL } )

    waar,

    READ_WRITE
    Verbindingen waarbij de verbindingseigenschap Application Intent is ingesteld op ReadOnly, zijn niet toegestaan. Wanneer de eigenschap Toepassingsintentie is ingesteld op ReadWrite of de eigenschap Application Intent-verbinding niet is ingesteld, is de verbinding toegestaan. Zie Trefwoorden voor verbindingsreeksen gebruiken met SQL Server Native Client voor meer informatie over de verbindingseigenschap Application Intent.

    ALLE
    Alle verbindingen zijn toegestaan voor de databases in de primaire replica. Dit is de standaardinstelling.

Voorbeeld (Transact-SQL)

In het volgende voorbeeld wordt een secundaire replica toegevoegd aan een beschikbaarheidsgroep met de naam AG2. Er wordt een zelfstandige serverinstantie, COMPUTER03\HADR_INSTANCE, opgegeven voor het hosten van de nieuwe beschikbaarheidsreplica. Deze replica is geconfigureerd om alleen lees- en schrijfverbindingen toe te staan voor de primaire rol en om alleen verbindingen met leesintentie toe te staan voor de secundaire rol.

ALTER AVAILABILITY GROUP AG2   
   ADD REPLICA ON   
      'COMPUTER03\HADR_INSTANCE' WITH   
         (  
         ENDPOINT_URL = 'TCP://COMPUTER03:7022',  
         PRIMARY_ROLE ( ALLOW_CONNECTIONS = READ_WRITE ),  
         SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY )  
         );   
GO  

PowerShell gebruiken

Het configureren van toegang op een beschikbaarheidsreplica

Note

Zie Voorbeeld (PowerShell) verderop in deze sectie voor een codevoorbeeld.

  1. Verander naar de map (cd) van de serverinstantie die de primaire replica host.

  2. Wanneer u een beschikbaarheidsreplica toevoegt aan een beschikbaarheidsgroep, gebruikt u de cmdlet New-SqlAvailabilityReplica . Wanneer u een bestaande beschikbaarheidsreplica wijzigt, gebruikt u de cmdlet Set-SqlAvailabilityReplica . De relevante parameters zijn als volgt:

    • Als u de verbindingstoegang voor de secundaire rol wilt configureren, geeft u de parameter ConnectionModeInSecondaryRolesecondary_role_keyword op, waarbij secondary_role_keyword gelijk is aan een van de volgende waarden:

      AllowNoConnections
      Er zijn geen directe verbindingen toegestaan voor de databases in de secundaire replica en de databases zijn niet beschikbaar voor leestoegang. Dit is de standaardinstelling.

      AllowReadIntentConnectionsOnly
      Verbindingen zijn alleen toegestaan voor de databases in de secundaire replica waar de eigenschap Application Intent is ingesteld op ReadOnly. Zie Trefwoorden voor verbindingsreeksen gebruiken met SQL Server Native Clientvoor meer informatie over deze eigenschap.

      AllowAllConnections
      Alle verbindingen naar de databases in de secundaire replica zijn toegestaan voor alleen-leestoegang.

    • Als u de toegang tot de verbinding voor de primaire rol wilt configureren, geeft u ConnectionModeInPrimaryRoleprimary_role_keyword op, waarbij primary_role_keyword gelijk is aan een van de volgende waarden:

      AllowReadWriteConnections
      Verbindingen waarbij de eigenschap Application Intent Connection is ingesteld op ReadOnly, zijn niet toegestaan. Wanneer de eigenschap Toepassingsintentie is ingesteld op ReadWrite of de eigenschap Application Intent-verbinding niet is ingesteld, is de verbinding toegestaan. Zie Trefwoorden voor verbindingsreeksen gebruiken met SQL Server Native Client voor meer informatie over de verbindingseigenschap Application Intent.

      AllowAllConnections
      Alle verbindingen zijn toegestaan voor de databases in de primaire replica. Dit is de standaardinstelling.

    Note

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

De SQL Server PowerShell-provider instellen en gebruiken

Voorbeeld (PowerShell)

In het volgende voorbeeld worden de parameters ConnectionModeInSecondaryRole en ConnectionModeInPrimaryRole ingesteld op AllowAllConnections.

Set-Location SQLSERVER:\SQL\PrimaryServer\default\AvailabilityGroups\MyAg  
$primaryReplica = Get-Item "AvailabilityReplicas\PrimaryServer"  
Set-SqlAvailabilityReplica -ConnectionModeInSecondaryRole "AllowAllConnections" `   
-InputObject $primaryReplica  
Set-SqlAvailabilityReplica -ConnectionModeInPrimaryRole "AllowAllConnections" `   
-InputObject $primaryReplica  
  

Vervolg: Na het configureren van alleen-lezen-toegang voor een beschikbaarheidsreplica

Alleen-lezentoegang tot een leesbare secundaire replica

  • Wanneer u het bcp-hulpprogramma of sqlcmd Utility gebruikt, kunt u alleen-lezentoegang opgeven voor een secundaire replica die is ingeschakeld voor alleen-lezentoegang door de schakeloptie -K ReadOnly op te geven.

  • Clienttoepassingen inschakelen om verbinding te maken met leesbare secundaire replica's:

Prerequisite Link
Zorg ervoor dat de beschikbaarheidsgroep een listener heeft. een listener voor een beschikbaarheidsgroep (SQL Server) maken of configureren
Configureer routering voor alleen-lezen voor de beschikbaarheidsgroep. Read-Only routing configureren voor een beschikbaarheidsgroep (SQL Server)

Factoren die invloed kunnen hebben op triggers en taken na een failover

Als u triggers en taken hebt die mislukken wanneer ze worden uitgevoerd op een niet-leesbare secundaire database of in een leesbare secundaire database, moet u de triggers en taken scripten om te controleren op een bepaalde replica om te bepalen of de database een primaire database is of een leesbare secundaire database is. Als u deze informatie wilt verkrijgen, gebruikt u de functie DATABASEPROPERTYEX om de eigenschap Updateability van de database te retourneren. Als u een alleen-lezendatabase wilt identificeren, geeft u als volgt READ_ONLY op als de waarde:

DATABASEPROPERTYEX([db name],'UpdateAbility') = N'READ_ONLY'  

Als u een database voor lezen/schrijven wilt identificeren, geeft u READ_WRITE op als de waarde.

Gerelateerde taken

Verwante inhoud

Zie ook

overzicht van AlwaysOn-beschikbaarheidsgroepen (SQL Server)
Actieve secundaire replica's: leesbare replica's van secundaire (Always On-beschikbaarheidsgroepen)
Over Toegang voor Clientverbindingen tot Beschikbaarheidsreplica's (SQL Server)