Oktatóanyag: Rendelkezésreállási csoport figyelőjének konfigurálása SQL Server rhEL virtuális gépeken az Azure-ban

A következőkre vonatkozik: SQL Server Azure-beli virtuális gépen

Megjegyzés

A bemutatott oktatóanyag nyilvános előzetes verzióban érhető el.

Ebben az oktatóanyagban SQL Server 2017-ben az RHEL 7.6-ot használjuk, de a magas rendelkezésre állás konfigurálásához használhatjuk SQL Server 2019-et az RHEL 7-ben vagy az RHEL 8-ban. A rendelkezésre állási csoport erőforrásainak konfigurálására szolgáló parancsok módosultak az RHEL 8-ban, és a rendelkezésreállási csoport erőforrásának létrehozása és az RHEL 8-erőforrások létrehozása című cikkben talál további információt a megfelelő parancsokról.

Ez az oktatóanyag bemutatja, hogyan hozhat létre rendelkezésreállási csoportfigyelőt az SQL Serverekhez RHEL virtuális gépeken az Azure-ban. Az alábbiakat fogja elsajátítani:

  • Terheléselosztó létrehozása a Azure Portal
  • A terheléselosztó háttérkészletének konfigurálása
  • Mintavétel létrehozása a terheléselosztóhoz
  • A terheléselosztási szabályok beállítása
  • A terheléselosztó erőforrásának létrehozása a fürtben
  • A rendelkezésre állási csoport figyelőjének létrehozása
  • A figyelőhöz való csatlakozás tesztelése
  • Feladatátvétel tesztelése

Előfeltétel

Befejezett oktatóanyag: Rendelkezésre állási csoportok konfigurálása SQL Server RHEL virtuális gépeken az Azure-ban

A terheléselosztó létrehozása a Azure Portal

Az alábbi utasítások végigvezetik a Terheléselosztó – Azure Portal cikk Azure Portal szakaszának A terheléselosztó létrehozása és konfigurálása című szakaszának 1–4. lépésein.

A terheléselosztó létrehozása

  1. A Azure Portal nyissa meg a SQL Server virtuális gépeket tartalmazó erőforráscsoportot.

  2. Az erőforráscsoportban kattintson a Hozzáadás gombra.

  3. Keresse meg a terheléselosztót, majd a keresési eredmények között válassza a Load Balancer lehetőséget, amelyet a Microsoft közzétevője.

  4. A Load Balancer panelen kattintson a Létrehozás gombra.

  5. A Terheléselosztó létrehozása párbeszédpanelen a következőképpen konfigurálja a terheléselosztót:

    Beállítás Érték
    Név A terheléselosztót jelképező szövegnév. Például : sqlLB.
    Típus Belső
    Virtuális hálózat A létrehozott alapértelmezett virtuális hálózatnak VM1VNET-nek kell lennie.
    Alhálózat Válassza ki azt az alhálózatot, amelyben a SQL Server példányok találhatók. Az alapértelmezett érték a VM1Subnet.
    IP-cím hozzárendelése Statikus
    Privát IP-cím Használja a virtualip fürtben létrehozott IP-címet.
    Előfizetés Használja az erőforráscsoporthoz használt előfizetést.
    Erőforráscsoport Válassza ki azt az erőforráscsoportot, amelyben a SQL Server példányok találhatók.
    Hely Válassza ki azt az Azure-helyet, ahol a SQL Server példányok találhatók.

A háttérkészlet konfigurálása

Az Azure meghívja a háttércímkészlet háttérkészletét. Ebben az esetben a háttérkészlet a rendelkezésre állási csoport három SQL Server példányának címe.

  1. Az erőforráscsoportban kattintson a létrehozott terheléselosztóra.

  2. A Beállítások lapon kattintson a Háttérkészletek elemre.

  3. Háttérkészletek esetén kattintson a Hozzáadás gombra egy háttércímkészlet létrehozásához.

  4. A Háttérkészlet hozzáadása területen a Név területen írja be a háttérkészlet nevét.

  5. A Társított területen válassza a Virtuális gép lehetőséget.

  6. Jelölje ki a környezet összes virtuális gépét, és társítsa a megfelelő IP-címet minden kijelöléshez.

    Háttérkészlet hozzáadása

  7. Kattintson a Hozzáadás parancsra.

Mintavétel létrehozása

A mintavétel meghatározza, hogy az Azure hogyan ellenőrzi, hogy az SQL Server példányok közül jelenleg melyik a rendelkezésre állási csoport figyelője. Az Azure a mintavétel létrehozásakor definiált portON található IP-cím alapján mintavételt készít a szolgáltatásról.

  1. A terheléselosztó Beállítások paneljén kattintson az Állapottesztek elemre.

  2. Az Állapottesztek panelen kattintson a Hozzáadás gombra.

  3. Konfigurálja a mintavételt a Mintavétel hozzáadása panelen. A mintavétel konfigurálásához használja az alábbi értékeket:

    Beállítás Érték
    Név A mintavételt jelképező szövegnév. Például : SQLAlwaysOnEndPointProbe.
    Protokoll TCP
    Port Bármilyen elérhető portot használhat. Például : 59999.
    Intervallum 5
    Nem kifogástalan állapot küszöbértéke 2
  4. Kattintson az OK gombra.

  5. Jelentkezzen be az összes virtuális gépre, és nyissa meg a mintavételi portot az alábbi parancsokkal:

    sudo firewall-cmd --zone=public --add-port=59999/tcp --permanent
    sudo firewall-cmd --reload
    

Az Azure létrehozza a mintavételt, majd azt használja annak tesztelésére, hogy melyik SQL Server példány rendelkezik a rendelkezésre állási csoport figyelője.

A terheléselosztási szabályok beállítása

A terheléselosztási szabályok konfigurálják, hogy a terheléselosztó hogyan irányítja a forgalmat a SQL Server példányokra. Ehhez a terheléselosztóhoz engedélyeznie kell a közvetlen kiszolgálói visszatérést, mert egyszerre csak a három SQL Server példány egyike rendelkezik a rendelkezésreállási csoport figyelőjének erőforrásával.

  1. A Terheléselosztó beállításai panelen kattintson a Terheléselosztási szabályok elemre.

  2. A Terheléselosztási szabályok panelen kattintson a Hozzáadás gombra.

  3. A Terheléselosztási szabályok hozzáadása panelen konfigurálja a terheléselosztási szabályt. Használja a következő beállításokat:

    Beállítás Érték
    Név A terheléselosztási szabályokat jelképező szövegnév. Például : SQLAlwaysOnEndPointListener.
    Protokoll TCP
    Port 1433
    Háttérport 1433. Ezt az értéket a rendszer figyelmen kívül hagyja, mert ez a szabály lebegő IP-címet (közvetlen kiszolgálói visszatérést) használ.
    Mintavétel Használja a terheléselosztóhoz létrehozott mintavétel nevét.
    Munkamenet-állandóság Nincs
    Üresjárati időtúllépés (perc) 4
    Lebegő IP-cím (közvetlen kiszolgálóvissza) Engedélyezve

    Terheléselosztási szabály hozzáadása

  4. Kattintson az OK gombra.

  5. Az Azure konfigurálja a terheléselosztási szabályt. Most a terheléselosztó úgy van konfigurálva, hogy a forgalmat a rendelkezésre állási csoport figyelőjének helyet adó SQL Server példányra irányozza.

Ezen a ponton az erőforráscsoport rendelkezik egy terheléselosztóval, amely az összes SQL Server géphez csatlakozik. A terheléselosztó egy IP-címet is tartalmaz a SQL Server Always On rendelkezésre állási csoport figyelőjének, hogy bármely gép válaszoljon a rendelkezésreállási csoportokra vonatkozó kérésekre.

A terheléselosztó erőforrásának létrehozása a fürtben

  1. Jelentkezzen be az elsődleges virtuális gépre. Létre kell hoznunk az erőforrást az Azure Load Balancer mintavételi portjának engedélyezéséhez (a példában az 59999-et használjuk). Futtassa az alábbi parancsot:

    sudo pcs resource create azure_load_balancer azure-lb port=59999
    
  2. Hozzon létre egy csoportot, amely tartalmazza a és azure_load_balancer az erőforrástvirtualip:

    sudo pcs resource group add virtualip_group azure_load_balancer virtualip
    

Korlátozások hozzáadása

  1. Konfigurálni kell egy közös elhelyezési kényszert, hogy az Azure Load Balancer IP-címe és a rendelkezésreállási csoport erőforrása ugyanazon a csomóponton fusson. Futtassa az alábbi parancsot:

    sudo pcs constraint colocation add azure_load_balancer ag_cluster-master INFINITY with-rsc-role=Master
    
  2. Hozzon létre egy rendelési kényszert, amely biztosítja, hogy a rendelkezésreállási csoport erőforrása az Azure Load Balancer IP-címe előtt fusson. Bár a közös elhelyezés kényszere rendezési kényszert jelent, ez kényszeríti azt.

    sudo pcs constraint order promote ag_cluster-master then start azure_load_balancer
    
  3. A kényszerek ellenőrzéséhez futtassa a következő parancsot:

    sudo pcs constraint list --full
    

    A következő kimenetnek kell megjelennie:

    Location Constraints:
    Ordering Constraints:
      promote ag_cluster-master then start virtualip (kind:Mandatory) (id:order-ag_cluster-master-virtualip-mandatory)
      promote ag_cluster-master then start azure_load_balancer (kind:Mandatory) (id:order-ag_cluster-master-azure_load_balancer-mandatory)
    Colocation Constraints:
      virtualip with ag_cluster-master (score:INFINITY) (with-rsc-role:Master) (id:colocation-virtualip-ag_cluster-master-INFINITY)
      azure_load_balancer with ag_cluster-master (score:INFINITY) (with-rsc-role:Master) (id:colocation-azure_load_balancer-ag_cluster-master-INFINITY)
    Ticket Constraints:
    

A rendelkezésre állási csoport figyelőjének létrehozása

  1. Az elsődleges csomóponton futtassa a következő parancsot az SQLCMD-ben vagy az SSMS-ben:

    • Cserélje le az alább használt IP-címet az virtualip IP-címre.
    ALTER AVAILABILITY
    GROUP [ag1] ADD LISTENER 'ag1-listener' (
            WITH IP(('10.0.0.7'    ,'255.255.255.0'))
                ,PORT = 1433
            );
    GO
    
  2. Jelentkezzen be az egyes virtuálisgép-csomópontokbe. Az alábbi paranccsal nyissa meg a gazdagépfájlt, és állítsa be a gazdagép nevének feloldását az ag1-listener egyes gépeken.

    sudo vi /etc/hosts
    

    A vi szerkesztőben írja be i a szöveget, és egy üres sorba adja hozzá a ip-címét.ag1-listener Ezután adja hozzá ag1-listener az IP-cím melletti szóköz után.

    <IP of ag1-listener> ag1-listener
    

    A vi szerkesztőből való kilépéshez először nyomja le az Esc billentyűt, majd írja be a parancsot :wq a fájl írásához és a kilépéshez. Ezt minden csomóponton végezze el.

A figyelő és a feladatátvétel tesztelése

Bejelentkezés tesztelése SQL Server a rendelkezésre állási csoport figyelőjének használatával

  1. Az SQLCMD használatával jelentkezzen be a SQL Server elsődleges csomópontjára a rendelkezésre állási csoport figyelőjének nevével:

    • Használjon egy korábban létrehozott bejelentkezést, és cserélje le <YourPassword> a megfelelő jelszóra. Az alábbi példa a sa SQL Server létrehozott bejelentkezést használja.
    sqlcmd -S ag1-listener -U sa -P <YourPassword>
    
  2. Ellenőrizze annak a kiszolgálónak a nevét, amelyhez csatlakozik. Futtassa a következő parancsot az SQLCMD-ben:

    SELECT @@SERVERNAME
    

    A kimenetnek az aktuális elsődleges csomópontot kell megjelenítenie. Ennek akkor kell lennie VM1 , ha még soha nem tesztelt feladatátvételt.

    A parancs beírásával lépjen ki a SQL Server munkamenetbőlexit.

Feladatátvétel tesztelése

  1. Futtassa a következő parancsot az elsődleges replika vagy egy másik replika manuális feladatátvételéhez <VM2> . Cserélje le <VM2> a elemet a kiszolgálónév értékére.

    sudo pcs resource move ag_cluster-master <VM2> --master
    
  2. Ha ellenőrzi a kényszereket, látni fogja, hogy egy másik kényszer lett hozzáadva a manuális feladatátvétel miatt:

    sudo pcs constraint list --full
    

    Látni fogja, hogy egy azonosítóval cli-prefer-ag_cluster-master rendelkező korlátozás lett hozzáadva.

  3. Távolítsa el a kényszert azonosítóval cli-prefer-ag_cluster-master a következő paranccsal:

    sudo pcs constraint remove cli-prefer-ag_cluster-master
    
  4. Ellenőrizze a fürt erőforrásait a paranccsal sudo pcs resource, és látnia kell, hogy az elsődleges példány most már <VM2>.

    Megjegyzés

    Ez a cikk a "slave" kifejezésre hivatkozik, amelyet a Microsoft már nem használ. Ha eltávolítja a kifejezést a szoftverből, eltávolítjuk ebből a cikkből.

    [<username>@<VM1> ~]$ sudo pcs resource
    Master/Slave Set: ag_cluster-master [ag_cluster]
        Masters: [ <VM2> ]
        Slaves: [ <VM1> <VM3> ]
    Resource Group: virtualip_group
        azure_load_balancer        (ocf::heartbeat:azure-lb):      Started <VM2>
        virtualip  (ocf::heartbeat:IPaddr2):       Started <VM2>
    
  5. Az SQLCMD használatával jelentkezzen be az elsődleges replikára a figyelő nevével:

    • Használjon egy korábban létrehozott bejelentkezést, és cserélje le <YourPassword> a megfelelő jelszóra. Az alábbi példa a sa SQL Server létrehozott bejelentkezést használja.
    sqlcmd -S ag1-listener -U sa -P <YourPassword>
    
  6. Ellenőrizze, hogy a kiszolgálóhoz csatlakozik-e. Futtassa a következő parancsot az SQLCMD-ben:

    SELECT @@SERVERNAME
    

    Látnia kell, hogy most már csatlakozik ahhoz a virtuális géphez, amelyhez feladatátvételt kellett végrehajtania.

Következő lépések

Az Azure-beli terheléselosztókkal kapcsolatos további információkért lásd: