Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2019 (15.x) en hoger
SQL Server 2019 (15.x) introduceert de omleiding van lees-/schrijfverbindingen van secundaire naar primaire replica's voor Always On-beschikbaarheidsgroepen. Lees-/schrijfverbindingsomleiding is beschikbaar op elk operatief systeemplatform. Hiermee kunnen clienttoepassingsverbindingen worden omgeleid naar de primaire replica, ongeacht de doelserver die is opgegeven in de verbindingsreeks.
De verbindingsreeks kan bijvoorbeeld zijn gericht op een secundaire replica. Afhankelijk van de configuratie van de beschikbaarheidsgroepreplica (AG) en de instellingen in de verbindingsreeks, kan de verbinding automatisch worden omgeleid naar de primaire replica.
Gebruikssituaties
Vóór SQL Server 2019 (15.x) leiden de AG-listener en de bijbehorende clusterresource gebruikersverkeer om naar de primaire replica om na een failover opnieuw verbinding te maken. SQL Server 2019 (15.x) blijft de functionaliteit van de AG-listener ondersteunen en voegt omleiding voor replicaverbindingen toe voor scenario's die geen listener kunnen bevatten. Voorbeeld:
- De clustertechnologie waarmee SQL Server-beschikbaarheidsgroepen zijn geïntegreerd, biedt niet de mogelijkheid van een listener.
- Een configuratie met meerdere subnetten, zoals in de cloud of een zwevend IP-adres met meerdere subnetten met Pacemaker, waarbij configuraties complex, gevoelig voor fouten worden en moeilijk te oplossen zijn vanwege meerdere betrokken onderdelen
- Leesschaaluitbreiding of noodherstel en het clustertype is
NONE, omdat er geen eenvoudig mechanisme beschikbaar is om transparante herconnectie te garanderen tijdens een handmatige failover.
Voorwaarde
Om ervoor te zorgen dat een secundaire replica lees-/schrijfverbindingsaanvragen kan omleiden:
- De secundaire replica moet online zijn.
- De replicaspecificatie
PRIMARY_ROLEmoet bevattenREAD_WRITE_ROUTING_URL. - De verbindingsreeks moet zijn
ReadWritedoor te definiërenApplicationIntentalsReadWriteof niet in te stellenApplicationIntenten de standaardwaarde (ReadWrite) van kracht te laten worden.
Optie READ_WRITE_ROUTING_URL instellen
Als u de omleiding van lees-/schrijfverbindingen wilt configureren, stelt u READ_WRITE_ROUTING_URL in voor de primaire replica wanneer u de beschikbaarheidsgroep (AG) maakt.
In SQL Server 2019 (15.x) READ_WRITE_ROUTING_URL is toegevoegd aan de <add_replica_option> specificatie. Zie de volgende onderwerpen:
PRIMARY_ROLE(READ_WRITE_ROUTING_URL) niet ingesteld (standaard)
Standaard is omleiding van lees-/schrijfreplicaverbindingen niet ingesteld voor een replica. De manier waarop een secundaire replica verbindingsaanvragen verwerkt, is afhankelijk van of de secundaire replica is ingesteld om verbindingen en de ApplicationIntent instelling in de verbindingsreeks toe te staan. In de volgende tabel ziet u hoe een secundaire replica verbindingen verwerkt op basis van SECONDARY_ROLE (ALLOW CONNECTIONS = ) en ApplicationIntent.
ApplicationIntent waarde |
SECONDARY_ROLE (ALLOW CONNECTIONS = NO) |
SECONDARY_ROLE (ALLOW CONNECTIONS = READ_ONLY) |
SECONDARY_ROLE (ALLOW CONNECTIONS = ALL) |
|---|---|---|---|
ApplicationIntent=ReadWriteVerstek |
Verbindingen mislukken | Verbindingen mislukken | Verbindingen zijn geslaagd Leesbewerkingen zijn voltooid Schrijfbewerkingen mislukken |
ApplicationIntent=ReadOnly |
Verbindingen mislukken | Verbindingen zijn geslaagd | Verbindingen zijn geslaagd |
In de voorgaande tabel ziet u het standaardgedrag, dat hetzelfde is als versies van SQL Server vóór SQL Server 2019 (15.x).
PRIMARY_ROLE(READ_WRITE_ROUTING_URL) ingesteld
Nadat u omleiding voor lees-/schrijfverbindingen hebt ingesteld, werkt de replica anders met verbindingsaanvragen. Het verbindingsgedrag is nog steeds afhankelijk van de SECONDARY_ROLE (ALLOW CONNECTIONS = )- en ApplicationIntent-instelling. In de volgende tabel ziet u hoe verbindingen worden verwerkt door een secundaire replica met READ_WRITE_ROUTING, gebaseerd op SECONDARY_ROLE (ALLOW CONNECTIONS = ) en ApplicationIntent.
ApplicationIntent waarde |
SECONDARY_ROLE (ALLOW CONNECTIONS = NO) |
SECONDARY_ROLE (ALLOW CONNECTIONS = READ_ONLY) |
SECONDARY_ROLE (ALLOW CONNECTIONS = ALL) |
|---|---|---|---|
ApplicationIntent=ReadWriteVerstek |
Verbindingen mislukken | Verbindingen mislukken | Verbindingen omleiden naar de primaire bestemming |
ApplicationIntent=ReadOnly |
Verbindingen mislukken | Verbindingen zijn geslaagd | Verbindingen zijn geslaagd |
In de voorgaande tabel ziet u dat wanneer de primaire replica is ingesteld op READ_WRITE_ROUTING_URL, de secundaire replica verbindingen omleidt naar de primaire replica wanneer SECONDARY_ROLE (ALLOW CONNECTIONS = ALL) en de verbinding ReadWrite aangeeft.
Herstel naar de standaard routeringsinstelling
Vanaf SQL Server 2025 (17.x) Preview kunt u NONE opgeven als bestemming voor READ_WRITE_ROUTING_URL om de door READ_ONLY_ROUTING_URL opgegeven routering voor de beschikbaarheidsreplica te herstellen en het verkeer te routeren op basis van het standaardgedrag. Raadpleeg de opdracht ALTER AVAILABILITY GROUP Transact-SQL voor meer informatie.
Voorbeeld
In dit voorbeeld heeft een beschikbaarheidsgroep drie replica's:
- Een primaire replica op COMPUTER01
- Een synchrone secundaire replica op COMPUTER02
- Een asynchrone secundaire replica op COMPUTER03
De volgende afbeelding vertegenwoordigt de beschikbaarheidsgroep.
Het volgende Transact-SQL script maakt deze AG. In dit voorbeeld specificeert elke replica de "READ_WRITE_ROUTING_URL".
CREATE AVAILABILITY GROUP MyAg
WITH ( CLUSTER_TYPE = NONE )
FOR
DATABASE [<Database1>]
REPLICA ON
'COMPUTER01' WITH
(
ENDPOINT_URL = 'TCP://COMPUTER01.<domain>.<tld>:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SECONDARY_ROLE (ALLOW_CONNECTIONS = ALL,
READ_ONLY_ROUTING_URL = 'TCP://COMPUTER01.<domain>.<tld>:1433' ),
PRIMARY_ROLE (ALLOW_CONNECTIONS = READ_WRITE,
READ_ONLY_ROUTING_LIST = ('COMPUTER02', 'COMPUTER03'),
READ_WRITE_ROUTING_URL = 'TCP://COMPUTER01.<domain>.<tld>:1433' ),
SESSION_TIMEOUT = 10
),
'COMPUTER02' WITH
(
ENDPOINT_URL = 'TCP://COMPUTER02.<domain>.<tld>:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SECONDARY_ROLE (ALLOW_CONNECTIONS = ALL,
READ_ONLY_ROUTING_URL = 'TCP://COMPUTER02.<domain>.<tld>:1433' ),
PRIMARY_ROLE (ALLOW_CONNECTIONS = READ_WRITE,
READ_ONLY_ROUTING_LIST = ('COMPUTER01', 'COMPUTER03'),
READ_WRITE_ROUTING_URL = 'TCP://COMPUTER02.<domain>.<tld>:1433' ),
SESSION_TIMEOUT = 10
),
'COMPUTER03' WITH
(
ENDPOINT_URL = 'TCP://COMPUTER03.<domain>.<tld>:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SECONDARY_ROLE (ALLOW_CONNECTIONS = ALL,
READ_ONLY_ROUTING_URL = 'TCP://COMPUTER03.<domain>.<tld>:1433' ),
PRIMARY_ROLE (ALLOW_CONNECTIONS = READ_WRITE,
READ_ONLY_ROUTING_LIST = ('COMPUTER01', 'COMPUTER02'),
READ_WRITE_ROUTING_URL = 'TCP://COMPUTER03.<domain>.<tld>:1433' ),
SESSION_TIMEOUT = 10
);
GO
<domain>.<tld>- Domein en top-level domein van de volledig gekwalificeerde domeinnaam. Bijvoorbeeld:
corporation.com.
- Domein en top-level domein van de volledig gekwalificeerde domeinnaam. Bijvoorbeeld:
Gedragingen van verbindingen
In het volgende diagram maakt een clienttoepassing verbinding met COMPUTER02, met ApplicationIntent=ReadWrite. De verbinding wordt omgeleid naar de primaire replica.
De secundaire replica leidt lees-/schrijfoproepen om naar de primaire replica. Een leesschrijfverbinding met één van de replica's wordt omgeleid naar de primaire replica.
In het volgende diagram is de primaire replica handmatig overgeschakeld naar COMPUTER02. Een clienttoepassing maakt verbinding met COMPUTER01, met ApplicationIntent=ReadWrite. De verbinding wordt omgeleid naar de primaire replica.
Zie ook
overzicht van AlwaysOn-beschikbaarheidsgroepen (SQL Server)
Over Toegang voor Clientverbindingen tot Beschikbaarheidsreplica's (SQL Server)
Listeners voor Beschikbaarheidsgroepen, Clientconnectiviteit en Toepassingsfailover (SQL Server)