Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik:SQL Server Linux rendszeren
Ez az oktatóanyag bemutatja, hogyan konfigurálhatja az SQL Server rendelkezésre állási csoportjait a Linuxhoz készült HPE Serviceguard szolgáltatással, amely helyszíni virtuális gépeken (virtuális gépeken) vagy Azure-alapú virtuális gépeken fut.
A HPE Serviceguard-fürtök áttekintéséhez tekintse meg a HPE Serviceguard-fürtöket.
Megjegyzés:
A Microsoft támogatja az adatáthelyezést, a rendelkezésre állási csoportot és az SQL Server-összetevőket. A HPE Serviceguard-fürt és kvórumkezelés dokumentációjának támogatásáért forduljon a HPE-hez.
Ez az oktatóanyag a következő feladatokból áll:
- Telepítse az SQL Servert mind a három olyan virtuális gépre, amelyet a rendelkezésre állási csoportban szeretne használni.
- Telepítse a HPE Serviceguardot a virtuális gépekre.
- Hozza létre a HPE Serviceguard-fürtöt.
- Hozza létre a terheléselosztót az Azure Portalon.
- Hozza létre a rendelkezésre állási csoportot, és adjon hozzá egy mintaadatbázist a rendelkezésre állási csoporthoz.
- Az SQL Server számítási feladatainak üzembe helyezése a rendelkezésre állási csoportban a Serviceguard fürtkezelőn keresztül.
- Automatikus átkapcsolást hajtson végre, és csatlakoztassa vissza a csomópontot a fürthöz.
Előfeltételek
Azure-ban hozzon létre három Linux-alapú virtuális gépet (VM). Linux-alapú virtuális gépek Azure-beli létrehozásáról a rövid útmutatóban olvashat: Linux rendszerű virtuális gép létrehozása az Azure Portalon. A virtuális gépek telepítésekor mindenképpen használja a HPE Serviceguard által támogatott Linux-disztribúciókat. Igény szerint helyileg is üzembe helyezheti a virtuális gépeket egy helyszíni környezetben.
Egy támogatott disztribúcióra példa: HPE Serviceguard for Linux. A nyilvános felhőkörnyezetek támogatásával kapcsolatos információkért tekintse meg a HPE-t.
Az oktatóanyag utasításait a rendszer a Linuxhoz készült HPE Serviceguard-ban érvényesíti. A HPE-ből letölthető próbaverzió.
Sql Server-adatbázisfájlok logikai kötet csatlakoztatásán (LVM) mindhárom virtuális géphez. Tekintse meg a Serviceguard Linux (HPE) rövid útmutatóját.
Győződjön meg arról, hogy az OpenJDK Java-futtatókörnyezet telepítve van a virtuális gépeken. Az IBM Java SDK nem támogatott.
Az SQL Server telepítése
Mindhárom virtuális gépen kövesse az alábbi szakasz lépéseit az oktatóanyaghoz választott Linux-disztribúció alapján. A lépések az SQL Server és az eszközök telepítését ismertetik.
Red Hat Enterprise Linux (RHEL)
SUSE Linux Enterprise Server (SLES)
Megjegyzés:
Az SQL Server 2025 -től (17.x) kezdődően a SUSE Linux Enterprise Server (SLES) nem támogatott.
A lépés befejezésekor telepítve van az SQL Server szolgáltatás és az eszközök mind a három virtuális gépen, amelyek részt fognak venni a rendelkezésre állási csoportban.
A HPE Serviceguard telepítése a virtuális gépekre
Ebben a lépésben telepítse a HPE Serviceguard for Linuxot mindhárom virtuális gépen. Az alábbi táblázat ismerteti, milyen szerepet töltenek be az egyes kiszolgálók a fürtben.
| Virtuális gépek száma | HPE Serviceguard szerepkör | Microsoft SQL Server rendelkezésre állási csoport replikaszerepköre |
|---|---|---|
| 1 | HPE Serviceguard klasztercsomópontok | Elsődleges replika |
| 1 vagy több | HPE Serviceguard-fürtcsomópont | Másodlagos replika |
| 1 | HPE Serviceguard kvórumkiszolgáló | Csak konfigurációs replika |
Megjegyzés:
Tekintse meg a HPE videóját, amely leírja, hogyan telepíthet és konfigurálhat HPE Serviceguard-fürtöt a felhasználói felületen keresztül.
A Serviceguard telepítéséhez használja a metódust cminstaller . A konkrét utasítások az alábbi hivatkozásokon érhetők el:
- Telepítse a Serviceguard for Linuxot két csomópontra. Tekintse meg a Install_serviceguard_using_cminstaller szakaszt.
- Telepítse a Serviceguard kvórumkiszolgálót a harmadik csomópontra. Tekintse meg a Install_QS_from_the_ISO szakaszt.
A HPE Serviceguard-fürt telepítése után engedélyezheti a fürtfelügyeleti portált az 5522-es TCP-porton az elsődleges replikacsomóponton. Az alábbi lépések egy szabályt adnak hozzá a tűzfalhoz az 5522 engedélyezéséhez. Az alábbi parancs egy Red Hat Enterprise Linux (RHEL) rendszerhez készült. Más disztribúciókhoz hasonló parancsokat kell futtatnia:
sudo firewall-cmd --zone=public --add-port=5522/tcp --permanent
sudo firewall-cmd --reload
HPE Serviceguard-fürt létrehozása
Kövesse ezeket a lépéseket a HPE Serviceguard-fürt konfigurálásához és létrehozásához. Ebben a lépésben a kvórumkiszolgálót is konfigurálja.
- Konfigurálja a Serviceguard kvórumkiszolgálót a harmadik csomóponton. Tekintse meg a Configure_QS szakaszt.
- Serviceguard-klaszter konfigurálása és létrehozása a másik két csomóponton. Tekintse meg a Configure_and_create_Cluster szakaszt.
Megjegyzés:
Megkerülheti a HPE Serviceguard-fürt és kvórum manuális telepítését, ha a virtuális gép létrehozásakor hozzáadja az Azure VM-piacteréből a HPE Serviceguard for Linux (SGLX) bővítményt.
A rendelkezésre állási csoport létrehozása és mintaadatbázis hozzáadása
Ebben a lépésben egy rendelkezésre állási csoportot hoz létre két vagy több szinkron replikával és egy csak konfigurációs replikával, amely védelmet biztosít, és magas rendelkezésre állást is biztosíthat. Az alábbi ábra ezt az architektúrát mutatja be:
A felhasználói adatok szinkronizálása a másodlagos replikára. A rendelkezésre állási csoport konfigurációs metaadatait is tartalmazza.
A rendelkezésre állási csoport konfigurációs metaadatainak szinkron replikációja. Nem tartalmazza a felhasználói adatokat.
További információ: Rendelkezésre állási csoport konfigurációinak magas rendelkezésre állása és adatvédelem.
A rendelkezésre állási csoport létrehozásához kövesse az alábbi lépéseket:
- Engedélyezze a rendelkezésre állási csoportokat, és indítsa újra az mssql-kiszolgálót az összes virtuális gépen, beleértve a csak konfigurációs replikát is.
-
AlwaysOn_healthEsemény-munkamenet engedélyezése (nem kötelező) - Tanúsítvány létrehozása az elsődleges virtuális gépen
- Tanúsítvány létrehozása másodlagos kiszolgálókon
- Adatbázistükrözési végpontok létrehozása a replikákon
- Rendelkezésre állási csoport létrehozása
- A másodlagos replikák csatlakoztatása
- Adatbázis hozzáadása a rendelkezésre állási csoporthoz
Rendelkezésre állási csoportok engedélyezése és az mssql-server újraindítása
Engedélyezze a rendelkezésre állási csoportokat az SQL Server-példányt üzemeltető összes csomóponton. Ezután indítsa újra az mssql-servert. Futtassa a következő szkriptet mindhárom csomóponton:
sudo /opt/mssql/bin/mssql-conf
set hadr.hadrenabled 1 sudo systemctl restart mssql-server
Az AlwaysOn_health eseménymunkamenet engedélyezése (nem kötelező)
Ha szeretné, engedélyezze az Always On rendelkezésre állási csoportok bővített eseményeit, hogy segítsenek a kiváltó okok diagnosztizálásában egy rendelkezésre állási csoport hibaelhárítása során. Futtassa a következő parancsot az SQL Server minden egyes példányán:
ALTER EVENT SESSION AlwaysOn_health ON SERVER
WITH (STARTUP_STATE = ON);
GO
Tanúsítvány létrehozása az elsődleges virtuális gépen
Az alábbi Transact-SQL szkript létrehoz egy főkulcsot és egy tanúsítványt. Ezután biztonsági másolatot készít a tanúsítványról, és titkos kulccsal védi a fájlt. Frissítse a szkriptet erős jelszavakkal. Csatlakozzon az elsődleges SQL Server-példányhoz, és futtassa a következő Transact-SQL szkriptet:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master-key-password>';
CREATE CERTIFICATE dbm_certificate
WITH SUBJECT = 'dbm';
BACKUP CERTIFICATE dbm_certificate TO FILE = '/var/opt/mssql/data/dbm_certificate.cer'
WITH PRIVATE KEY (
FILE = '/var/opt/mssql/data/dbm_certificate.pvk',
ENCRYPTION BY PASSWORD = '<private-key-password>'
);
Ezen a ponton az elsődleges SQL Server-replika rendelkezik egy tanúsítvánnyal /var/opt/mssql/data/dbm_certificate.cer és egy titkos kulccsal a következő helyen var/opt/mssql/data/dbm_certificate.pvk: . Másolja ezt a két fájlt ugyanarra a helyre az összes rendelkezésre állási replikát üzemeltető kiszolgálón. A fájlok eléréséhez használja a felhasználót mssql , vagy adjon engedélyt a mssql felhasználónak.
A forráskiszolgálón például a következő parancs másolja a fájlokat a célgépre. Cserélje le az node2 értékeket a másodlagos SQL Server-példányt futtató gazdagép nevére. Másolja ki a tanúsítványt a konfigurációs replikán is, és futtassa a következő parancsokat a csomóponton.
cd /var/opt/mssql/data
scp dbm_certificate.* root@<node2>:/var/opt/mssql/data/
Most a másodlagos példányt futtató másodlagos virtuális gépeken és az SQL Server konfigurációs replikáján futtassa a következő parancsokat, hogy a mssql felhasználó birtokolhassa a másolt tanúsítványt:
cd /var/opt/mssql/data
chown mssql:mssql dbm_certificate.*
Tanúsítvány létrehozása másodlagos kiszolgálókon
Az alábbi Transact-SQL szkript létrehoz egy főkulcsot és egy tanúsítványt az elsődleges SQL Server-replikán létrehozott biztonsági másolatból. Frissítse a szkriptet erős jelszavakkal. A visszafejtési jelszó ugyanaz a jelszó, amelyet a .pvk fájl korábbi lépésben történő létrehozásához használt. A tanúsítvány létrehozásához futtassa a következő szkriptet az összes másodlagos kiszolgálón a csak konfigurációs replika kivételével:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master-key-password>';
CREATE CERTIFICATE dbm_certificate
FROM FILE = '/var/opt/mssql/data/dbm_certificate.cer'
WITH PRIVATE KEY (
FILE = '/var/opt/mssql/data/dbm_certificate.pvk',
DECRYPTION BY PASSWORD = '<private-key-password>'
);
Az előző példában cserélje le <private-key-password> ugyanazzal a jelszóval, amelyet a tanúsítvány elsődleges replikán való létrehozásakor használt.
Adatbázistükrözési végpontok létrehozása a replikákon
Az elsődleges és a másodlagos replikákon futtassa a következő parancsokat az adatbázistükrözési végpontok létrehozásához:
CREATE ENDPOINT [hadr_endpoint]
AS TCP (LISTENER_PORT = 5022)
FOR DATABASE_MIRRORING
(
ROLE = WITNESS,
AUTHENTICATION = CERTIFICATE dbm_certificate,
ENCRYPTION = REQUIRED ALGORITHM AES
);
ALTER ENDPOINT [hadr_endpoint]
STATE = STARTED;
Megjegyzés:
Az 5022 az adatbázis tükrözési végpontjához használt szabványos port, de bármely elérhető portra módosíthatja.
Az alábbi paranccsal hozza létre a konfigurációs replikációra az adatbázis-tükrözési végpontot. Adja meg a Role értékét úgy, hogy az WITNESS legyen, amely a csak konfigurációs replikához szükséges szerepkör.
CREATE ENDPOINT [hadr_endpoint]
AS TCP (LISTENER_PORT = 5022)
FOR DATABASE_MIRRORING
(
ROLE = WITNESS,
AUTHENTICATION = CERTIFICATE dbm_certificate,
ENCRYPTION = REQUIRED ALGORITHM AES
);
ALTER ENDPOINT [hadr_endpoint]
STATE = STARTED;
Rendelkezésre állási csoport létrehozása
Az elsődleges replikapéldányon futtassa a következő parancsokat. Ezek a parancsok létrehoznak egy ag1 nevű rendelkezésre állási csoportot, amely külső cluster_type, és adatbázis létrehozási engedélyt ad a rendelkezésre állási csoportnak.
A következő szkriptek futtatása előtt cserélje le a <node1>, <node2>és <node3> (csak konfigurációs replika) helyőrzőket az előző lépésekben létrehozott virtuális gépek nevére.
CREATE AVAILABILITY GROUP [ag1]
WITH (CLUSTER_TYPE = EXTERNAL)
FOR REPLICA ON
N'<node1>' WITH (
ENDPOINT_URL = N'tcp://<node1>:<5022>',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = EXTERNAL,
SEEDING_MODE = AUTOMATIC
),
N'<node2>' WITH (
ENDPOINT_URL = N'tcp://<node2>:\<5022>',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = EXTERNAL,
SEEDING_MODE = AUTOMATIC
),
N'<node3>' WITH (
ENDPOINT_URL = N'tcp://<node3>:<5022>',
AVAILABILITY_MODE = CONFIGURATION_ONLY
);
ALTER AVAILABILITY GROUP [ag1]
GRANT CREATE ANY DATABASE;
A másodlagos replikák csatlakoztatása
Futtassa az alábbi parancsokat az összes másodlagos replikán. Ezek a parancsok az elsődleges replikával csatlakoznak a másodlagos replikákhoz a ag1 rendelkezésre állási csoporthoz, és adatbázis-hozzáférést biztosítanak a ag1 rendelkezésre állási csoporthoz.
ALTER AVAILABILITY GROUP [ag1]
JOIN WITH (CLUSTER_TYPE = EXTERNAL);
GO
ALTER AVAILABILITY GROUP [ag1]
GRANT CREATE ANY DATABASE;
GO
Adatbázis hozzáadása a rendelkezésre állási csoporthoz
Csatlakozzon az elsődleges replikához, és futtassa a következő T-SQL-parancsokat:
Hozzon létre egy mintaadatbázist,
db1amelyet hozzá fog adni a rendelkezésre állási csoporthoz.CREATE DATABASE [db1]; GOÁllítsa be az adatbázis helyreállítási modelljét teljesre. A rendelkezésre állási csoport összes adatbázisához teljes helyreállítási modell szükséges.
ALTER DATABASE [db1] SET RECOVERY FULL;Készíts biztonsági másolatot az adatbázisról. Az adatbázisoknak legalább egy teljes biztonsági mentésre van szüksége ahhoz, hogy hozzáadhassa azt egy rendelkezésre állási csoporthoz.
BACKUP DATABASE [db1] TO DISK = N'/var/opt/mssql/data/db1.bak';Állítsa be az adatbázist a teljes helyreállítási modellre.
ALTER DATABASE [db1] SET RECOVERY FULL;Az adatbázis biztonsági mentése lemezre.
BACKUP DATABASE [db1] TO DISK = N'/var/opt/mssql/data/db1.bak';Adja hozzá az adatbázist
db1a rendelkezésre állási csoporthoz.ALTER AVAILABILITY GROUP [ag1] ADD DATABASE [db1];
Az előző lépések elvégzése után megjelenik egy ag1 rendelkezésre állási csoport. A három virtuális gép replikaként lesz hozzáadva egy elsődleges replikával, egy másodlagos replikával és egy csak konfigurációs replikával.
ag1 egy adatbázist tartalmaz.
Az SQL Server rendelkezésre állási csoport számítási feladatainak üzembe helyezése (HPE Cluster Manager)
A HPE Serviceguardban helyezze üzembe az SQL Server számítási feladatát a rendelkezésre állási csoportban a Serviceguard fürtkezelő felhasználói felületén keresztül.
Helyezze üzembe a rendelkezésre állási csoport számítási feladatait, és engedélyezze a magas rendelkezésre állást (HA), a vészhelyreállítást (DR) a Serviceguard-fürtön keresztül a Serviceguard Manager grafikus felhasználói felületén. Tekintse meg a Microsoft SQL Server védelme Linuxon az Always On rendelkezésre állási csoportokhoz című szakaszt.
A terheléselosztó létrehozása az Azure Portalon
Az Azure Cloudban történő üzembe helyezéshez a Linuxhoz készült HPE Serviceguard terheléselosztóra van szükség az ügyfélkapcsolatok elsődleges replikával való engedélyezéséhez, a hagyományos IP-címek helyettesítéséhez.
Az Azure Portalon nyissa meg a Serviceguard-fürtcsomópontokat vagy virtuális gépeket tartalmazó erőforráscsoportot.
Az erőforráscsoportban válassza a Hozzáadás lehetőséget.
Keressen rá a "load balancer" kifejezésre, majd a keresési eredmények között válassza ki a Microsoft által közzétett Load Balancert .
A Load Balancer panelen válassza a Létrehozás lehetőséget.
Konfigurálja a terheléselosztót az alábbiak szerint:
Beállítás Érték Név A terheléselosztó neve. Például: SQLAvailabilityGroupLB.Típus Belső Termékváltozat Alapszintű vagy Standard Virtuális hálózat Virtuálisgép-replikákhoz használt virtuális hálózat Alhálózat Az az alhálózat, amelyben az SQL Server-példányok üzemelnek IP-cím hozzárendelése Statikus Privát IP-cím Privát IP-cím létrehozása az alhálózaton belül Előfizetés Válassza ki az érintett előfizetést Erőforráscsoport Válassza ki az érintett erőforráscsoportot Helyszín Válassza ki ugyanazt a helyet, mint az SQL-csomópontok
A háttérkészlet konfigurálása
A háttérkészlet annak a két példánynak a címe, amelyen a Serviceguard-fürt konfigurálva van.
- Az erőforráscsoportban válassza ki a létrehozott terheléselosztót.
- Nyissa meg a Beállítások>háttérkészleteket, és válassza a Hozzáadás lehetőséget háttércímkészlet létrehozásához.
- A Háttérkészlet hozzáadása oldalon, a Név mezőbe í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.
- Válassza ki a virtuális gépet a környezetben, és társítsa a megfelelő IP-címet az egyes kijelöléshez.
- Válassza a Hozzáadás lehetőséget.
Mintavétel létrehozása
Az ellenőrzés meghatározza, hogy az Azure hogyan ellenőrzi, melyik Serviceguard fürtcsomópont az elsődleges replika. Az Azure a mintavétel létrehozásakor definiált port IP-címe alapján szondázja a szolgáltatást.
A Terheléselosztó beállításai panelen válassza az Állapotminták lehetőséget.
Az Állapotadat-mintavételek panelen válassza a Hozzáadás lehetőséget.
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ő név. Például: SQLAGPrimaryReplicaProbe.Protokoll TCP Kikötő 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 a Serviceguard-csomópontnak a teszteléséhez, amelyen a rendelkezésre állási csoport elsődleges replikapéldánya fut. Jegyezze meg a konfigurált portot (59999), amely az AG Serviceguard-fürtben való üzembe helyezéséhez szükséges.
A terheléselosztási szabályok beállítása
A terheléselosztási szabályok konfigurálják, hogy a terheléselosztó eszköz hogyan irányítja a forgalmat a fürt elsődleges replikájaként működő Serviceguard csomópontra. Ehhez a terheléselosztóhoz engedélyezze a közvetlen kiszolgáló visszatérést, mert egyszerre csak az egyik Serviceguard cluster csomópontja lehet elsődleges.
A Terheléselosztó beállításai között válassza a Terheléselosztási szabályok lehetőséget.
Terheléselosztási szabályok esetén válassza a Hozzáadás lehetőséget.
Konfigurálja a terheléselosztási szabályt a következő beállításokkal:
Beállítás Érték Név A terheléselosztási szabályokat jelképező név. Például: SQLAGPrimaryReplicaListener.Protokoll TCP Kikötő 1433 Backend port 1433. Ez az érték figyelmen kívül lesz hagyva, mert ez a szabály lebegő IP-címet használ. mintavételi Használja az ehhez a terheléselosztóhoz létrehozott szonda nevét. Munkamenet tartóssága Egyik sem Inaktivitási időtúllépés (perc) 4 Lebegő IP-cím Bekapcsolva 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 Serviceguard csomóponthoz irányítsa, amely a fürt elsődleges replikapéldánya.
Jegyezze fel a terheléselosztó LbReadWriteIP nevű előtérbeli IP-címét, amelyet szükség van az AG Serviceguard-fürtben történő üzembe helyezéséhez.
Ezen a ponton az erőforráscsoport rendelkezik egy terheléselosztóval, amely az összes Serviceguard-csomóponthoz csatlakozik. A terheléselosztó egy IP-címet is tartalmaz, amelyen keresztül az ügyfelek csatlakozhatnak a fürt elsődleges példányához, így bármely gép, amely elsődleges replika, válaszolhat a rendelkezésre állási csoportra irányuló kérésekre.
Automatikus feladatátvétel végrehajtása és a csomópont fürthöz való visszacsatlakozása
Az automatikus feladatátvételi teszthez kapcsolja offline állapotba az elsődleges replikát (kikapcsolás). Ez a művelet replikálja az elsődleges csomópont hirtelen elérhetetlenségét. A várt viselkedés a következő:
A fürtkezelő előlépteti a rendelkezésre állási csoport egyik másodlagos replikáját elsődlegesre.
Az újraindítás után a meghibásodott elsődleges replika automatikusan csatlakozik a klaszterhez. A fürtkezelő másodlagos replikává lépteti elő.
A HPE Serviceguard esetében lásd a feladatátvételi készültség beállításának tesztelését.