Megosztás a következőn keresztül:


Írásvédett útválasztás konfigurálása egy Always On rendelkezésre állási csoporthoz

A következőkre vonatkozik:SQL Server

Ha egy Always On elérhetőségi csoportot úgy szeretne konfigurálni, hogy támogassa az írásvédett útvonalat az SQL Serveren, használhatja a Transact-SQL-t vagy a PowerShellt. Az írásvédett útválasztás azt jelenti, hogy az SQL Server képes a megfelelő írásvédett kapcsolati kérelmeket egy elérhető Always On olvasható másodlagos replikára irányítani (vagyis egy olyan replikára, amely úgy van konfigurálva, hogy engedélyezze a csak olvasható számítási feladatokat a másodlagos szerepkörben való futtatáskor). Az írásvédett útválasztás támogatásához a rendelkezésre állási csoportnak rendelkeznie kell egy rendelkezésre állási csoport figyelőjével. Azoknak az ügyfeleknek, akik csak olvasnak, a kapcsolati kéréseiket ennek a figyelőnek kell irányítaniuk, és az ügyfél kapcsolati sztringjeiben az alkalmazás szándékát "olvasási szándékként" kell megadniuk. Vagyis olvasási szándékú kapcsolatkéréseknek kell lenniük.

Az írásvédett útválasztás az SQL Server 2016-ban (13.x) és újabb verzióiban érhető el.

Megjegyzés:

Az olvasható másodlagos replikák konfigurálásáról további információt az Read-Only hozzáférés konfigurálása rendelkezésre állási replikán (SQL Server) című témakörben talál.

Előfeltételek

Milyen replikatulajdonságokat kell konfigurálnia az Read-Only útválasztás támogatásához?

  • Minden olvasható másodlagos replikához, amely támogatja a csak olvasási útválasztást, meg kell adnia egy csak olvasási útválasztási URL-címet. Ez az URL-cím csak akkor lép érvénybe, ha a helyi replika a másodlagos szerepkör alatt fut. Az írásvédett útválasztási URL-címet szükség szerint egyenként, replikánként kell megadni. Minden egyes írásvédett útválasztási URL-címet az olvasási szándékú kapcsolatkérések adott olvasható másodlagos replikához történő irányításhoz használják. Általában minden olvasható másodlagos replikához írásvédett útválasztási URL-cím tartozik.

    A rendelkezésre állási replika írásvédett útválasztási URL-címének kiszámításáról további információt az Always On read_only_routing_url kiszámítása című témakörben talál.

  • Minden olyan rendelkezésre állási replikához, amely esetén az elsődleges replika csak olvasható útválasztással támogatott, meg kell adnia egy csak olvasható útválasztási listát. Egy adott írhatatlan útválasztási lista csak akkor lép érvénybe, ha a helyi replika elsődleges szerepben fut. Ezt a listát szükség szerint replika alapján kell megadni. Általában minden csak olvasható útválasztási lista minden csak olvasható útválasztási URL-címet tartalmaz, a helyi replika URL-címét pedig a lista végén.

    Megjegyzés:

    Az olvasási szándékú kapcsolatkéréseket az aktuális elsődleges replika olvasási útválasztási listájának első elérhető bejegyzésére irányítják. Az olvasásra szánt replikák terheléselosztása mindazonáltal támogatott. További információ: Terheléselosztás konfigurálása írásvédett replikák között.

Megjegyzés:

A rendelkezésre állási csoport figyelőiről és a csak olvasható útválasztásról további információt a Rendelkezésre állási csoport figyelők, ügyfélkapcsolatok és alkalmazás-feladatátvitel (SQL Server) című témakörben talál.

Engedélyek

Feladatok Engedélyek
Replikák konfigurálása rendelkezésre állási csoport létrehozásakor A sysadmin rögzített kiszolgálói szerepkörben való tagság, és a következő engedélyek valamelyike szükséges: a CREATE AVAILABILITY GROUP kiszolgálói engedély létrehozása, az ALTER ANY AVAILABILITY GROUP engedély módosítása, vagy a CONTROL SERVER engedély.
A rendelkezésre állási replika módosítása ALTER AVAILABILITY GROUP engedély szükséges a rendelkezésre állási csoporthoz, CONTROL AVAILABILITY GROUP engedély, ALTER ANY AVAILABILITY GROUP engedély vagy CONTROL SERVER engedély.

Transact-SQL használata

Írásvédett irányítási lista konfigurálása

Az alábbi lépésekkel konfigurálhatja az írásvédett útválasztást Transact-SQL segítségével. Egy példakódért lásd a jelen szakasz későbbi, Példa (Transact-SQL) című szakaszát.

  1. Csatlakozzon az elsődleges replikát üzemeltető kiszolgálópéldányhoz.

  2. Ha replikát ad meg egy új rendelkezésre állási csoporthoz, használja a CREATE AVAILABILITY GROUP Transact-SQL utasítást. Ha egy meglévő rendelkezésre állási csoport replikáját ad hozzá vagy módosítja, használja az ALTER RENDELKEZÉSRE ÁLLÁSI CSOPORT Transact-SQL utasítást.

    • A másodlagos szerepkör írásvédett útválasztásának konfigurálásához az ADD REPLICA vagy MODIFY REPLICA WITH záradékban adja meg a SECONDARY_ROLE beállítást a következőképpen:

      SECONDARY_ROLE ( READ_ONLY_ROUTING_URL ='TCP://rendszer-cím:port')

      Az írásvédett útválasztási URL-cím paraméterei a következők:

      rendszercím
      Olyan sztring, például rendszernév, teljes tartománynév vagy IP-cím, amely egyértelműen azonosítja a célszámítógép-rendszert.

      kikötő
      Az SQL Server-példány adatbázismotorja által használt portszám.

      Például: SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://COMPUTER01.contoso.com:1433')

      A MODIFY REPLICA záradékban az ALLOW_CONNECTIONS nem kötelező, ha a replika már konfigurálva van csak olvasható kapcsolatok engedélyezésére.

      További információ: Always On read_only_routing_url kiszámítása.

    • Az elsődleges szerepkör írásvédett útválasztásának konfigurálásához az ADD REPLICA vagy MODIFY REPLICA WITH záradékban az alábbiak szerint adja meg a PRIMARY_ROLE lehetőséget:

      PRIMARY_ROLE ( READ_ONLY_ROUTING_LIST =('kiszolgáló' [ ,... n ] ))

      ahol a kiszolgáló azonosít egy kiszolgálópéldányt, amely írásvédett másodlagos replikát üzemeltet a rendelkezésre állási csoportban.

      Például: PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('Server1','Server2'))

      Megjegyzés:

      Az írásvédett útválasztási lista konfigurálása előtt be kell állítania az írásvédett útválasztási URL-címet.

Csak olvasható replikák közötti terheléselosztás konfigurálása

Az SQL Server 2016 -tól kezdve (13.x) konfigurálhatja a terheléselosztást több írásvédett replika között. Korábban az írásvédett útválasztás mindig az útválasztási lista első elérhető replikájára irányította a forgalmat. A funkció előnyeinek kihasználásához használjon egyszintű beágyazott zárójelet a READ_ONLY_ROUTING_LIST kiszolgálópéldányok köré a RENDELKEZÉSRE ÁLLÁSI CSOPORT LÉTREHOZÁSA vagy az ALTER RENDELKEZÉSRE ÁLLÁSI CSOPORT parancsokban.

Például az alábbi útválasztási lista megosztja az olvasási szándékú kapcsolati kérelmet két csak olvasható replika között: Server1 és Server2. A kiszolgálókat körülvevő beágyazott zárójelek azonosítják a terheléselosztási csoportot. Ha egyik replika sem érhető el ebben a készletben, a többi replikához Server3 , illetve Server4az írásvédett útválasztási listához próbál meg egymás után csatlakozni.

READ_ONLY_ROUTING_LIST = (('Server1','Server2'), 'Server3', 'Server4')  

Vegye figyelembe, hogy az útválasztási lista minden egyes bejegyzése maga is lehet egy terheléselosztott, írásvédett replikákból álló csoport. Az alábbi példa ezt mutatja be.

READ_ONLY_ROUTING_LIST = (('Server1','Server2'), ('Server3', 'Server4', 'Server5'), 'Server6')  

Csak egy szintű beágyazott zárójelek engedélyezettek.

Példa (Transact-SQL)

Az alábbi példa módosítja egy meglévő rendelkezésre állási csoport két replikáját, hogy támogassa a csak olvasási útválasztást, ha az egyik replika jelenleg az elsődleges szerepkört látja el. A rendelkezésre állási replikát üzemeltető kiszolgálópéldányok azonosításához ez a példa a következő példányneveket adja meg:COMPUTER01 és COMPUTER02.

ALTER AVAILABILITY GROUP [AG1]  
 MODIFY REPLICA ON  
N'COMPUTER01' WITH   
(SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY));  
ALTER AVAILABILITY GROUP [AG1]  
 MODIFY REPLICA ON  
N'COMPUTER01' WITH   
(SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://COMPUTER01.contoso.com:1433'));  
  
ALTER AVAILABILITY GROUP [AG1]  
 MODIFY REPLICA ON  
N'COMPUTER02' WITH   
(SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY));  
ALTER AVAILABILITY GROUP [AG1]  
 MODIFY REPLICA ON  
N'COMPUTER02' WITH   
(SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://COMPUTER02.contoso.com:1433'));  
  
ALTER AVAILABILITY GROUP [AG1]   
MODIFY REPLICA ON  
N'COMPUTER01' WITH   
(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('COMPUTER02','COMPUTER01')));  
  
ALTER AVAILABILITY GROUP [AG1]   
MODIFY REPLICA ON  
N'COMPUTER02' WITH   
(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('COMPUTER01','COMPUTER02')));  
GO  
  

PowerShell használata

Írásvédett irányítási lista konfigurálása

Az alábbi lépésekkel konfigurálhatja az írásvédett útválasztást a PowerShell használatával. Példakódért lásd a jelen szakasz későbbi, Példa (PowerShell) című szakaszát.

  1. Állítsa be az alapértelmezett (cd) beállítást az elsődleges replikát üzemeltető kiszolgálópéldányra.

  2. Amikor rendelkezésre állási replikát ad hozzá egy rendelkezésre állási csoporthoz, használja a New-SqlAvailabilityReplica parancsmagot. Meglévő rendelkezésre állási replika módosításakor használja a Set-SqlAvailabilityReplica parancsmagot. A vonatkozó paraméterek a következők:

    • A másodlagos szerepkör írásvédett útválasztásának konfigurálásához adja meg a ReadonlyRoutingConnectionUrl"url" paramétert.

      ahol az URL a kapcsolat teljes tartományneve (FQDN) és a port, amelyet a replikához való útválasztás során csak olvasható kapcsolatokhoz használnak. Például: -ReadonlyRoutingConnectionUrl "TCP://DBSERVER8.manufacturing.Adventure-Works.com:7024"

      További információ: Always On read_only_routing_url kiszámítása.

    • Az elsődleges szerepkör kapcsolati hozzáférésének konfigurálásához adja meg a ReadonlyRoutingList"kiszolgáló" [ ,... n ], ahol a kiszolgáló azonosít egy kiszolgálópéldányt, amely írásvédett másodlagos replikát üzemeltet a rendelkezésre állási csoportban. Például: -ReadOnlyRoutingList "SecondaryServer","PrimaryServer"

      Megjegyzés:

      Az írásvédett útválasztási lista konfigurálása előtt be kell állítania egy replika írásvédett útválasztási URL-címét.

    Megjegyzés:

    A parancsmag szintaxisának megtekintéséhez használja a Get-Help parancsmagot az SQL Server PowerShell-környezetben. További információért lásd: Segítség SQL Server PowerShell használatához.

Az SQL Server PowerShell-szolgáltató beállítása és használata

Példa (PowerShell)

Az alábbi példa bemutatja, hogyan konfigurálható az elsődleges replikát és egy másodlagos replikát egy rendelkezésre állási csoportban, a csak olvasásra történő útvonalra állítás érdekében. Először is a példa egy írásvédett útválasztási URL-címet rendel az egyes replikákhoz. Ezután beállítja a csak olvasható útválasztási listát az elsődleges replikán. A kapcsolati sztringben beállított "ReadOnly" tulajdonsággal rendelkező kapcsolatokat a rendszer átirányítja a másodlagos replikára. Ha ez a másodlagos replika nem olvasható (a ConnectionModeInSecondaryRole beállítás alapján), a rendszer visszairányítja a kapcsolatot az elsődleges replikához.

Set-Location SQLSERVER:\SQL\PrimaryServer\default\AvailabilityGroups\MyAg  
$primaryReplica = Get-Item "AvailabilityReplicas\PrimaryServer"  
$secondaryReplica = Get-Item "AvailabilityReplicas\SecondaryServer"  
  
Set-SqlAvailabilityReplica -ReadOnlyRoutingConnectionUrl "TCP://PrimaryServer.domain.com:1433" -InputObject $primaryReplica  
Set-SqlAvailabilityReplica -ReadOnlyRoutingConnectionUrl "TCP://SecondaryServer.domain.com:1433" -InputObject $secondaryReplica  
Set-SqlAvailabilityReplica -ReadOnlyRoutingList "SecondaryServer","PrimaryServer" -InputObject $primaryReplica  

Nyomon követés: Read-Only útválasztás konfigurálása utáni teendők

Ha az aktuális elsődleges replika és az olvasható másodlagos replikák úgy vannak konfigurálva, hogy mindkét szerepkörben támogassák a csak olvasási útválasztást, az olvasható másodlagos replikák olvasási szándékú kapcsolatok kéréseit fogadhatják a rendelkezésre állási csoport hallgatójával csatlakozó ügyfelektől.

Jótanács

A bcp segédprogram vagy az sqlcmd segédprogram használatakor a -K ReadOnly kapcsoló megadásával megadhatja az írásvédett hozzáférésre engedélyezett másodlagos replikák írásvédett hozzáférését.

Connection-Strings ügyfél követelményei és ajánlásai

Ahhoz, hogy egy ügyfélalkalmazás csak olvasható útválasztást használjon, a kapcsolati sztringnek meg kell felelnie a következő követelményeknek:

  • Használja a TCP protokollt.

  • Állítsa be az alkalmazás szándékattribútumát/tulajdonságát olvashatóra.

  • Hivatkozzon egy olyan rendelkezésre állási csoport figyelőjére, amely a csak olvasható útválasztás támogatására van konfigurálva.

  • Hivatkozzon egy adatbázisra az adott rendelkezésre állási csoportban.

Emellett azt is javasoljuk, hogy a kapcsolati sztringek engedélyezhessék a több alhálózatos feladatátvételt, amely támogatja az egyes alhálózatokon lévő replikák párhuzamos ügyfélszálát. Ez minimalizálja az ügyfél újracsatlakozási idejét a feladatátvétel után.

A kapcsolati sztring szintaxisa attól függ, hogy az alkalmazás milyen SQL Server-szolgáltatót használ. Az SQL Serverhez készült .NET-keretrendszer 4.0.2-es verziójának adatszolgáltatójához tartozó alábbi példakapcsolati sztring bemutatja azokat a részeket, amelyek szükségesek és ajánlottak a csak olvasási útválasztáshoz.

Server=tcp:MyAgListener,1433;Database=Db1;IntegratedSecurity=SSPI;ApplicationIntent=ReadOnly;MultiSubnetFailover=True  

Az írásvédett alkalmazási szándékról és az írásvédett útválasztásról további információt az Elérhetőségi csoporthallgatók, az ügyfélkapcsolatok és az alkalmazás-feladatátvétel (SQL Server) című témakörben talál.

Ha Read-Only útválasztás nem működik megfelelően

Az írásvédett útválasztási konfiguráció hibaelhárításával kapcsolatos információért lásd: Read-Only Az útválasztás nem működik megfelelően.

Visszaállítás alapértelmezett útválasztási viselkedésre

Az SQL Server 2025 (17.x) verziójától kezdve megadhatja a NONE vagy a READ_ONLY_ROUTING_URL célállomást a rendelkezésre állási replika adott útvonalának visszaállításához, és az alapértelmezett viselkedés alapján irányíthatja a forgalmat. További információért tekintse át az ALTER AVAILABILITY GROUP Transact-SQL parancsot.

Következő lépések

Írásvédett útválasztási konfigurációkat megtekinteni

Ügyfélkapcsolat-hozzáférés konfigurálása

Karakterláncok használata alkalmazásokban

Blogok:

További tartalom