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
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
A Azure Portal nyissa meg a SQL Server virtuális gépeket tartalmazó erőforráscsoportot.
Az erőforráscsoportban kattintson a Hozzáadás gombra.
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.
A Load Balancer panelen kattintson a Létrehozás gombra.
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.
Az erőforráscsoportban kattintson a létrehozott terheléselosztóra.
A Beállítások lapon kattintson a Háttérkészletek elemre.
Háttérkészletek esetén kattintson a Hozzáadás gombra egy háttércímkészlet létrehozásához.
A Háttérkészlet hozzáadása területen a Név területen írja be a háttérkészlet nevét.
A Társított területen válassza a Virtuális gép lehetőséget.
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.
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.
A terheléselosztó Beállítások paneljén kattintson az Állapottesztek elemre.
Az Állapottesztek panelen kattintson a Hozzáadás gombra.
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 Kattintson az OK gombra.
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.
A Terheléselosztó beállításai panelen kattintson a Terheléselosztási szabályok elemre.
A Terheléselosztási szabályok panelen kattintson a Hozzáadás gombra.
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 Kattintson az OK gombra.
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
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
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
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
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
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
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
- Cserélje le az alább használt IP-címet az
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
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 asa
SQL Server létrehozott bejelentkezést használja.
sqlcmd -S ag1-listener -U sa -P <YourPassword>
- Használjon egy korábban létrehozott bejelentkezést, és cserélje le
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ől
exit
.
Feladatátvétel tesztelése
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
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.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
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>
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 asa
SQL Server létrehozott bejelentkezést használja.
sqlcmd -S ag1-listener -U sa -P <YourPassword>
- Használjon egy korábban létrehozott bejelentkezést, és cserélje le
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: