Oktatóanyag: Rendelkezésre állási csoport figyelőjének konfigurálása Linux rendszerű virtuális gépeken

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

Ez az oktatóanyag bemutatja, hogyan hozhat létre rendelkezésre állási csoport (AG) figyelőt linuxos virtuális gépeken (VM-eken) az Azure-ban, Red Hat Enterprise Linuxhoz (RHEL), SU Standard kiadás Linux Enterprise Serverhez (SLES) és Ubuntuhoz.

A következőket fogja megtanulni:

  • Terheléselosztó létrehozása az Azure Portalon
  • 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
  • Az AG-figyelő létrehozása
  • A figyelőhöz való csatlakozás tesztelése
  • Feladatátvétel tesztelése

Megjegyzés:

Torzításmentes kommunikáció

Ez a cikk a rabszolga kifejezésre mutató hivatkozásokat tartalmaz, amely a Microsoft által sértőnek ítélt kifejezés, ha ebben a kontextusban használják. A kifejezés azért jelenik meg ebben a cikkben, mert jelenleg a szoftverben jelenik meg. Ha a kifejezés el lesz távolítva a szoftverből, eltávolítjuk a cikkből.

Előfeltételek

A terheléselosztó létrehozása az Azure Portalon

Az alábbi utasítások végigvezetik a terheléselosztó létrehozása és konfigurálása 1–4. lépésén a Terheléselosztó és rendelkezésre állási csoport figyelőjének konfigurálása (Azure-beli virtuális gépeken futó SQL Server) című cikk Azure Portal-szakaszában.

A terheléselosztó létrehozása

  1. Az Azure Portalon nyissa meg az SQL Server virtuális gépeket tartalmazó erőforráscsoportot.

  2. Az erőforráscsoportban válassza a Hozzáadás lehetőséget.

  3. Keresse meg a terheléselosztót, majd a keresési eredmények között válassza a Microsoft által közzétett Load Balancer elemet.

  4. A Load Balancer panelen válassza a Létrehozás lehetőséget.

  5. A Terheléselosztó létrehozása párbeszédpanelen konfigurálja a terheléselosztót az alábbiak szerint:

    Setting Érték
    Név A terheléselosztót jelképező szövegnév. For example, sqlLB.
    Típus Belső
    Virtuális hálózat A létrehozott alapértelmezett virtuális hálózatot el kell nevezni VM1VNET.
    Alhálózat Válassza ki azt az alhálózatot, amelyben az SQL Server-példányok találhatók. Az alapértelmezett értéknek a következőnek kell lennie 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 az SQL Server-példányok találhatók.
    Helyen Válassza ki azt az Azure-helyet, ahol az 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 az AG három SQL Server-példányának címe.

  1. Az erőforráscsoportban válassza ki a létrehozott terheléselosztót.

  2. A Gépház válassza a Háttérkészletek lehetőséget.

  3. Háttérkészleteken válassza a Hozzáadás lehetőséget háttércímkészlet létrehozásához.

  4. A Háttérkészlet hozzáadása csoportban í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 az egyes kijelöléshez.

    Screenshot showing how to add a backend pool.

  7. Válassza a Hozzáadás lehetőséget.

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 melyik jelenleg az AG-figyelő tulajdonosa. Az Azure a mintavétel létrehozásakor definiált port IP-címe alapján szondázja a szolgáltatást.

  1. A terheléselosztó Gépház panelen válassza az Állapotminták lehetőséget.

  2. Az Állapotadat-mintavételek panelen válassza a Hozzáadás lehetőséget.

  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:

    Setting Érték
    Név A mintavételt jelképező szövegnév. For example, SQLAlwaysOnEndPointProbe.
    Protokoll TCP
    Port Bármilyen elérhető portot használhat. For example, 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 az AG figyelőjével.

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 az SQL Server-példányokhoz. 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 az AG-figyelő erőforrásával.

  1. A terheléselosztó Gépház panelen válassza a Terheléselosztási szabályok lehetőséget.

  2. A Terheléselosztási szabályok panelen válassza a Hozzáadás lehetőséget.

  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:

    Setting Érték
    Név A terheléselosztási szabályokat jelképező szövegnév. For example, SQLAlwaysOnEndPointListener.
    Protokoll TCP
    Port 1433
    Háttérport 1433. Ez az érték figyelmen kívül lesz hagyva, mert ez a szabály lebegő IP-címet (közvetlen kiszolgálói visszatérést) használ.
    Szonda Használja a terheléselosztóhoz létrehozott mintavétel nevét.
    Munkamenet-állandóság Nincs
    Tétlen időtúllépés (perc) 4
    Lebegő IP-cím (közvetlen kiszolgáló visszatérése) Engedélyezve

    Screenshot showing how to add a load balancing rule.

  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 átirányítsa a forgalmat az AG figyelőt üzemeltető SQL Server-példányra.

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 az SQL Server Always On AG-figyelőhöz, így bármely gép válaszolhat az AG-k kéréseire.

A rendelkezésre állási csoport figyelő erőforrásának létrehozása

Mielőtt terheléselosztó-erőforrást hoz létre a Pacemakerben, először hozza létre a figyelőerőforrást:

sudo crm configure primitive virtualip \
ocf:heartbeat:IPaddr2 \
params ip=x.y.z.a

Az előző példában x.y.z.a a terheléselosztó előtérbeli IP-címére hivatkozik.

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

Kövesse a konfigurálni kívánt disztribúcióra vonatkozó utasításokat.

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

    sudo pcs resource create azure_load_balancer azure-lb port=59999
    
  2. Hozzon létre egy csoportot, amely tartalmazza az é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. A helymegkötést úgy kell konfigurálni, hogy az Azure Load Balancer IP-címe és az AG-erőforrás 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, hogy az AG-erőforrás az Azure load balancer IP-címe előtt működjön. Bár a helymeghatározási kényszer rendelési kényszert jelent, ez kényszeríti azt.

    sudo pcs constraint order promote ag_cluster-master then start azure_load_balancer
    
  3. A korlátozások 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 vagy az SSMS-ben. Cserélje le az alább használt IP-címet az virtualip IP-címre.

    • AZ SQL Server 2022 és újabb verziói:

      ALTER AVAILABILITY GROUP [ag1]
      ADD LISTENER 'ag1-listener' (
          WITH IP((
              '10.0.0.7',
              '0.0.0.0'
          )),
          PORT = 1433
      );
      GO
      
    • SQL Server 2017 és SQL Server 2019:

      ALTER AVAILABILITY GROUP [ag1]
      ADD LISTENER 'ag1-listener' (
          WITH IP((
              '10.0.0.7',
              '255.255.255.255'
          )),
          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 az egyes gépek állomásnévfeloldási beállítását ag1-listener .

    sudo vi /etc/hosts
    

    A vi szerkesztőben írja be i a szöveget, és egy üres sorban adja hozzá a 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 megírásához és a kilépéshez. Ezt minden csomóponton végezze el.

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

Ez a szakasz az SQL Server AG-figyelőbe való bejelentkezést és a feladatátvétel tesztelését ismerteti.

Az SQL Serverre való bejelentkezés tesztelése a rendelkezésre állási csoport figyelőjével

  1. Az sqlcmd használatával jelentkezzen be az SQL Server elsődleges csomópontjára az AG-figyelő nevével:

    • Használjon korábban létrehozott bejelentkezést, és cserélje le <YourPassword> a megfelelő jelszóra. Az alábbi példa az sa SQL Serverrel 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 sqlcmdben:

    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.

    Lépjen ki az SQL Server-munkamenetből a exit parancs beírásával.

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 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 a manuális feladatátvétel miatt egy másik kényszer lett hozzáadva:

    sudo pcs constraint list --full
    

    Láthatja, 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ürterőforrásokat a paranccsal sudo pcs resource, és látnia kell, hogy az elsődleges példány most van <VM2>.

    Megjegyzés:

    This article contains references to the term slave, a term that Microsoft no longer uses. Ha a kifejezés el lesz távolítva 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 korábban létrehozott bejelentkezést, és cserélje le <YourPassword> a megfelelő jelszóra. Az alábbi példa az sa SQL Serverrel létrehozott bejelentkezést használja.
    sqlcmd -S ag1-listener -U sa -P <YourPassword>
    
  6. Ellenőrizze a kiszolgálót, amelyhez csatlakozik. Futtassa a következő parancsot az sqlcmdben:

    SELECT @@SERVERNAME;
    

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

Következő lépés

Ahhoz, hogy egy rendelkezésre állási csoport figyelőt használhasson az SQL Server-példányokhoz, létre kell hoznia és konfigurálnia kell egy terheléselosztót.