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:

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:

  1. Nyisson meg egy szövegszerkesztőt, például a Jegyzettömbet.

  2. 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
    
  3. Mentse a szkriptet fájlként .ps1 , például add_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 6789az alábbi lépéseket:

  1. Nyisson meg egy parancssori felületi eszközt, például parancssort vagy PowerShellt.

  2. Keresse meg a szkript mentési .ps1 helyét, például a c:\Documents parancsot.

  3. 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:

View the DNN listener under availability group listeners in SQL Server Management Studio (SSMS)

Transact-SQL

A Transact-SQL használatával megtekintheti a DNN-figyelő állapotát:

SELECT * FROM SYS.AVAILABILITY_GROUP_LISTENERS

A figyelő értéke 1is_distributed_network_name egy elosztott hálózati név (DNN) figyelő:

Use sys.availability_group_listeners to identify DNN listeners that have a value of 1 in is_distributed_network_name

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:

  1. Csatlakozzon a DNN-figyelőhöz vagy valamelyik replikához az SQL Server Management Studio (SSMS) használatával.
  2. Bontsa ki az Always On rendelkezésre állási csoportot az Object Explorerben.
  3. 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.
  4. 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.
  5. Ellenőrizze, hogy az adatbázis szinkronizált állapotban van-e az új elsődleges replikán.
  6. (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:

  1. Nyissa meg az SQL Server Management Studiót.
  2. Csatlakozzon a DNN-figyelőhöz.
  3. Nyisson meg egy új lekérdezési ablakot, és ellenőrizze, hogy melyik replikához csatlakozik a futtatással SELECT @@SERVERNAME.
  4. A rendelkezésre állási csoport feladatátvétele egy másik replikára.
  5. É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: