DNN-figyelő konfigurálása rendelkezésre állási csoporthoz
A következőre vonatkozik:SQL Server azure-beli virtuális gépen
Tipp
Egy rendelkezésre állási csoport üzembe helyezésének számos módja van. Egyszerűsítse az üzembe helyezést, és szükségtelenné teszi az Azure Load Balancer vagy az elosztott hálózatnév (DNN) használatát az Always On rendelkezésre állási csoport számára azáltal, hogy sql serveres virtuális gépeket (VM-eket) hoz létre több alhálózatban ugyanazon az Azure-beli virtuális hálózaton belül. Ha már létrehozta a rendelkezésre állási csoportot egyetlen alhálózatban, migrálhatja azt egy több alhálózatos környezetbe.
Az Azure-beli virtuális gépeken futó SQL Server egyetlen alhálózatban történő használatával az elosztott hálózatnév (DNN) irányítja a forgalmat a megfelelő fürtözött erőforráshoz. Egyszerűbb módot kínál az Always On rendelkezésre állási csoporthoz (AG) való csatlakozáshoz, mint a virtuális hálózat neve (VNN) figyelője, anélkül, hogy Azure Load Balancerre lenne szükség.
Ez a cikk bemutatja, hogyan konfigurálhat egy DNN-figyelőt a VNN-figyelő lecserélésére, és átirányíthatja a forgalmat a rendelkezésre állási csoporthoz az Azure-beli virtuális gépeken futó SQL Serverrel a magas rendelkezésre állás és vészhelyreállítás (HADR) érdekében.
Alternatív kapcsolati lehetőségként inkább egy VNN-figyelőt és az Azure Load Balancert érdemes figyelembe venni.
Áttekintés
Az elosztott hálózati név (DNN) figyelő lecseréli a hagyományos virtuális hálózati név (VNN) rendelkezésre állási csoport figyelőt, ha az SQL Server virtuális gépeken az Always On rendelkezésre állási csoportokkal van használatban. Ez nem teszi lehetővé, hogy az Azure Load Balancer irányítsa a forgalmat, egyszerűsítse az üzembe helyezést, a karbantartást és a feladatátvételt.
A DNN-figyelővel lecserélhet egy meglévő VNN-figyelőt, vagy másik lehetőségként használhatja azt egy meglévő VNN-figyelővel együtt, hogy a rendelkezésre állási csoport két különböző kapcsolati ponttal rendelkezik : az egyik a VNN figyelő nevét használja (és a portot, ha nem alapértelmezett), a másik pedig a DNN figyelő nevét és portját használja.
Vigyázat!
A DNN használata esetén az útválasztási viselkedés különbözik a VNN használatakor. Ne használja az 1433-at. További információkért tekintse meg a cikk későbbi, Port megfontolások című szakaszát.
Előfeltételek
A cikk lépéseinek végrehajtása előtt a következőkkel kell rendelkeznie:
- Az SQL Server az SQL Server 2019 CU8 és újabb verzióival, az SQL Server 2017 CU25-ös és újabb verzióival, illetve az SQL Server 2016 SP3-val és újabb verzióival indul a Windows Server 2016-os és újabb verzióiban.
- Úgy döntött, hogy az elosztott hálózat neve a HADR-megoldás megfelelő csatlakozási lehetősége.
- Konfigurálta az Always On rendelkezésre állási csoportot.
- Telepítette a PowerShell legújabb verzióját.
- Azonosította a DNN-figyelőhöz használni kívánt egyedi portot. A DNN-figyelőhöz használt portnak egyedinek kell lennie a rendelkezésre állási csoport vagy a feladatátvevő fürtpéldány összes replikájában. Egyetlen másik kapcsolat sem oszthatja meg ugyanazt a portot.
Szkript létrehozása
A PowerShell használatával hozza létre az elosztott hálózati névvel (DNN) rendelkező erőforrást, és társítsa azt a rendelkezésre állási csoporthoz.
Ehhez kövesse az alábbi lépéseket:
Nyisson meg egy szövegszerkesztőt, például a Jegyzettömbet.
Másolja és illessze be a következő szkriptet:
param ( [Parameter(Mandatory=$true)][string]$Ag, [Parameter(Mandatory=$true)][string]$Dns, [Parameter(Mandatory=$true)][string]$Port ) Write-Host "Add a DNN listener for availability group $Ag with DNS name $Dns and port $Port" $ErrorActionPreference = "Stop" # create the DNN resource with the port as the resource name Add-ClusterResource -Name $Port -ResourceType "Distributed Network Name" -Group $Ag # set the DNS name of the DNN resource Get-ClusterResource -Name $Port | Set-ClusterParameter -Name DnsName -Value $Dns # start the DNN resource Start-ClusterResource -Name $Port $Dep = Get-ClusterResourceDependency -Resource $Ag if ( $Dep.DependencyExpression -match '\s*\((.*)\)\s*' ) { $DepStr = "$($Matches.1) or [$Port]" } else { $DepStr = "[$Port]" } Write-Host "$DepStr" # add the Dependency from availability group resource to the DNN resource Set-ClusterResourceDependency -Resource $Ag -Dependency "$DepStr" #bounce the AG resource Stop-ClusterResource -Name $Ag Start-ClusterResource -Name $Ag
Mentse a szkriptet fájlként
.ps1
, példáuladd_dnn_listener.ps1
.
Szkript végrehajtása
A DNN-figyelő létrehozásához hajtsa végre a rendelkezésre állási csoport, a figyelő neve és a port nevének paramétereiben átadott szkriptet.
Tegyük fel például, hogy a rendelkezésre állási csoport neve ag1
, a figyelő neve dnnlsnr
és a figyelőport neve, kövesse 6789
az alábbi lépéseket:
Nyisson meg egy parancssori felületi eszközt, például parancssort vagy PowerShellt.
Keresse meg a szkript mentési
.ps1
helyét, például a c:\Documents parancsot.Hajtsa végre a szkriptet:
add_dnn_listener.ps1 <ag name> <listener-name> <listener port>
. Például:c:\Documents> .\add_dnn_listener.ps1 ag1 dnnlsnr 6789
Figyelő ellenőrzése
Az SQL Server Management Studio vagy a Transact-SQL használatával győződjön meg arról, hogy a DNN-figyelő sikeresen létrejött.
SQL Server Management Studio
Bontsa ki a rendelkezésre állási csoport figyelőit az SQL Server Management Studióban (SSMS) a DNN-figyelő megtekintéséhez:
Transact-SQL
A Transact-SQL használatával megtekintheti a DNN-figyelő állapotát:
SELECT * FROM SYS.AVAILABILITY_GROUP_LISTENERS
A figyelő értéke 1
is_distributed_network_name
egy elosztott hálózati név (DNN) figyelő:
Kapcsolati sztring frissítése
Frissítse a kapcsolati sztringet minden olyan alkalmazáshoz, amelyhez csatlakoznia kell a DNN-figyelőhöz. A DNN-figyelő kapcsolati sztringjének meg kell adnia a DNN-port számát, és meg kell adnia MultiSubnetFailover=True
a kapcsolati sztringet. Ha az SQL-ügyfél nem támogatja a MultiSubnetFailover=True
paramétert, akkor nem kompatibilis egy DNN-figyelővel.
Az alábbi példa egy kapcsolati sztringre a figyelő nevének DNN_Listener és a 6789-s port esetében:
DataSource=DNN_Listener,6789;MultiSubnetFailover=True
Feladatátvétel tesztelése
Tesztelje a rendelkezésre állási csoport feladatátvételét a funkciók biztosításához.
A feladatátvétel teszteléséhez kövesse az alábbi lépéseket:
- Csatlakozzon a DNN-figyelőhöz vagy valamelyik replikához az SQL Server Management Studio (SSMS) használatával.
- Bontsa ki az Always On rendelkezésre állási csoportot az Object Explorerben.
- Kattintson a jobb gombbal a rendelkezésre állási csoportra, és válassza a Feladatátvétel lehetőséget a Feladatátvétel varázsló megnyitásához.
- Az utasításokat követve válasszon ki egy feladatátvételi célt, és a rendelkezésre állási csoportot egy másodlagos replikára helyezze át.
- Ellenőrizze, hogy az adatbázis szinkronizált állapotban van-e az új elsődleges replikán.
- (Nem kötelező) Feladat visszavétele az eredeti elsődleges vagy egy másik másodlagos replikára.
Kapcsolat tesztelése
Tesztelje a DNN-figyelőhöz való kapcsolatot az alábbi lépésekkel:
- Nyissa meg az SQL Server Management Studiót.
- Csatlakozzon a DNN-figyelőhöz.
- Nyisson meg egy új lekérdezési ablakot, és ellenőrizze, hogy melyik replikához csatlakozik a futtatással
SELECT @@SERVERNAME
. - A rendelkezésre állási csoport feladatátvétele egy másik replikára.
- Ésszerű idő elteltével futtassa
SELECT @@SERVERNAME
, és ellenőrizze, hogy a rendelkezésre állási csoport már egy másik replikán van-e üzemeltetve.
Korlátozások
- A DNN-figyelőket egyedi porttal kell konfigurálni. A port nem osztható meg más kapcsolattal egyetlen replikán sem.
- A DNN-figyelőhöz csatlakozó ügyfélnek támogatnia kell a
MultiSubnetFailover=True
kapcsolati sztring paraméterét. - További szempontokat is figyelembe vehet, ha más SQL Server-szolgáltatásokkal és egy DNN-vel rendelkező rendelkezésre állási csoporttal dolgozik. További információ: AG with DNN interoperability.
Portokkal kapcsolatos szempontok
A DNN-figyelők úgy vannak kialakítva, hogy az összes IP-címen, de egy adott, egyedi porton hallgassák. A figyelő nevének DNS-bejegyzését a rendelkezésre állási csoport összes replikája címére kell feloldani. Ez automatikusan megtörténik a Szkript létrehozása szakaszban megadott PowerShell-szkripttel. Mivel a DNN-figyelők minden IP-címen fogadnak kapcsolatokat, kritikus fontosságú, hogy a figyelőport egyedi legyen, és ne használja a rendelkezésre állási csoport bármely más replikája. Mivel az SQL Server alapértelmezés szerint az 1433-as portot figyeli közvetlenül vagy az SQL Browser szolgáltatáson keresztül, a DNN-figyelő 1433-as portjának használata erősen elriasztja.
Ha a VNN-figyelőhöz választott figyelőport 49 152 és 65 536 között van (a TCP/IP alapértelmezett dinamikus porttartománya, adjon hozzá egy kivételt ehhez. Ez megakadályozza, hogy más rendszerek dinamikusan hozzárendelje ugyanazt a portot.
A portkizárást a következő paranccsal adhatja hozzá: netsh int ipv4 add excludedportrange tcp startport=<Listener Port> numberofports=1 store=persistent
További lépések
A rendelkezésre állási csoport üzembe helyezése után fontolja meg az SQL Server HADR-beállításainak optimalizálását Azure-beli virtuális gépeken.
További tudnivalókért lásd:
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: