Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server Linux rendszeren
Ez az oktatóanyag bemutatja, hogyan hozhat létre és konfigurálhat rendelkezésre állási csoportot (AG) linuxos SQL Serverhez. A Windows rendszeren futó SQL Server 2016 (13.x) és a korábbi verziókkal ellentétben engedélyezheti az AG-t a mögöttes Pacemaker-fürt létrehozása nélkül vagy annak létrehozásával is. A fürttel való integráció, ha szükséges, később történik.
Az oktatóanyag a következő feladatokat tartalmazza:
- Rendelkezésre állási csoportok engedélyezése.
- Rendelkezésre állási csoport végpontjai és tanúsítványai létrehozása.
- Az SQL Server Management Studio (SSMS) vagy Transact-SQL használatával hozzon létre egy rendelkezésre állási csoportot.
- Hozza létre az SQL Server bejelentkezési adatait és engedélyeit a Pacemakerhez.
- Készítsen rendelkezésre állási csoport erőforrásokat egy Pacemaker-klaszterben (csak külső típusú esetén).
Prerequisites
Telepítsd a Pacemaker magas rendelkezésre állási klaszterét. További információért lásd a következőt: Pacemaker-fürt üzembe helyezése SQL Serverhez Linuxon.
A rendelkezésre állási csoportok funkció engedélyezése
A Windowstól eltérően a PowerShell vagy az SQL Server Konfigurációkezelő nem használható a rendelkezésre állási csoportok (AG) funkció engedélyezésére. Linuxon kétféleképpen engedélyezheti a rendelkezésre állási csoportok funkciót: használhatja a mssql-conf segédprogramot, vagy manuálisan szerkesztheti a mssql.conf fájlt.
Important
Az AG szolgáltatást csak konfigurációs replikákhoz kell engedélyeznie, még az SQL Server Expressen is.
Használd a segédeszközt mssql-conf
Egy parancssorban futtassa a következő parancsot:
sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled 1
Az mssql.conf fájl szerkesztése
A mssql.conf mappában található /var/opt/mssql fájlt is módosíthatja. Adja hozzá a következő sorokat:
[hadr]
hadr.hadrenabled = 1
Az SQL Server újraindítása
A rendelkezésre állási csoportok engedélyezése után újra kell indítania az SQL Servert. Használja a következő parancsot:
sudo systemctl restart mssql-server
A rendelkezésre állási csoport végpontjai és tanúsítványai létrehozása
A rendelkezésre állási csoportok TCP-végpontokat használnak a kommunikációhoz. Linux alatt az SQL Server csak akkor támogatja az AG végpontjait, ha hitelesítéshez tanúsítványokat használ. Vissza kell állítania a tanúsítványt arról az egyetlen példányról, amely a többi, ugyanazon AG-ben replikaként részt vevő példány számára szolgál. A tanúsítványfolyamatra még egy csak konfigurációs replikához is szükség van.
Végpontokat csak a Transact-SQL használatával lehet létrehozni és tanúsítványokat visszaállítani. Nem SQL Server által létrehozott tanúsítványokat is használhat. Egy folyamatra is szüksége van a lejárt tanúsítványok kezeléséhez és cseréjéhez.
Important
Ha az SQL Server Management Studio varázslóval szeretné létrehozni az AG-t, akkor is létre kell hoznia és vissza kell állítania a tanúsítványokat a Linuxon futó Transact-SQL használatával.
A különböző parancsok (beleértve a biztonsági beállításokat) teljes szintaxisát lásd:
Note
Bár rendelkezésre állási csoportot hoz létre, a végpont típusa a(z) FOR DATABASE_MIRRORING elemet használja, mert a végpont típusa közös alapokra épül azzal a mára elavult funkcióval.
Ez a példa három csomópontos konfigurációhoz hoz létre tanúsítványokat. A példányok neve LinAGN1, LinAGN2és LinAGN3.
Hajtsa végre a következő szkriptet a
LinAGN1a főkulcs, a tanúsítvány és a végpont létrehozásához, valamint a tanúsítvány biztonsági mentéséhez. Ebben a példában a végpont a tipikus TCP 5022-es portot használja.CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master-key-password>'; GO CREATE CERTIFICATE LinAGN1_Cert WITH SUBJECT = 'LinAGN1 AG Certificate'; GO BACKUP CERTIFICATE LinAGN1_Cert TO FILE = '/var/opt/mssql/data/LinAGN1_Cert.cer'; GO CREATE ENDPOINT AGEP STATE = STARTED AS TCP ( LISTENER_PORT = 5022, LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE LinAGN1_Cert, ROLE = ALL ); GOVégezze el ugyanezt a
LinAGN2-n.CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master-key-password>'; GO CREATE CERTIFICATE LinAGN2_Cert WITH SUBJECT = 'LinAGN2 AG Certificate'; GO BACKUP CERTIFICATE LinAGN2_Cert TO FILE = '/var/opt/mssql/data/LinAGN2_Cert.cer'; GO CREATE ENDPOINT AGEP STATE = STARTED AS TCP ( LISTENER_PORT = 5022, LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE LinAGN2_Cert, ROLE = ALL ); GOVégül hajtsa végre ugyanezt a sorozatot
LinAGN3:CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master-key-password>'; GO CREATE CERTIFICATE LinAGN3_Cert WITH SUBJECT = 'LinAGN3 AG Certificate'; GO BACKUP CERTIFICATE LinAGN3_Cert TO FILE = '/var/opt/mssql/data/LinAGN3_Cert.cer'; GO CREATE ENDPOINT AGEP STATE = STARTED AS TCP ( LISTENER_PORT = 5022, LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE LinAGN3_Cert, ROLE = ALL ); GOHasználj
scpvagy más segédeszközt, hogy a tanúsítvány biztonsági mentéseit másold minden olyan csomópontra, amelynek tagja szeretnél az AG-nek.Ebben a példában:
- Másolja az
LinAGN1_Cert.cer-tLinAGN2-re ésLinAGN3-re. - Másolja az
LinAGN2_Cert.cer-tLinAGN1-re ésLinAGN3-re. - Másolja az
LinAGN3_Cert.cer-tLinAGN1-re ésLinAGN2-re.
- Másolja az
Módosítsa a másolt tanúsítványfájlokhoz társított csoport és tulajdonos beállításait
mssql-ra.sudo chown mssql:mssql <CertFileName>Hozza létre az példányszintű bejelentkezéseket és a
LinAGN2-val ésLinAGN3-gyel társított felhasználókat aLinAGN1-n.CREATE LOGIN LinAGN2_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN2_User FOR LOGIN LinAGN2_Login; GO CREATE LOGIN LinAGN3_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN3_User FOR LOGIN LinAGN3_Login; GOCaution
A jelszónak az SQL Server alapértelmezett password szabályzatot kell követnie. Alapértelmezés szerint a jelszónak legalább nyolc karakter hosszúnak kell lennie, és a következő négy készletből három karakterből kell állnia: nagybetűk, kisbetűk, 10 számjegyből és szimbólumokból. A jelszavak legfeljebb 128 karakter hosszúak lehetnek. Használjon olyan jelszavakat, amelyek a lehető legkomplexebbek és hosszúak.
Állítsa vissza
LinAGN2_CertésLinAGN3_CertaLinAGN1. A többi replika tanúsítványai elengedhetetlenek az AG kommunikációjához és biztonságához.CREATE CERTIFICATE LinAGN2_Cert AUTHORIZATION LinAGN2_User FROM FILE = '/var/opt/mssql/data/LinAGN2_Cert.cer'; GO CREATE CERTIFICATE LinAGN3_Cert AUTHORIZATION LinAGN3_User FROM FILE = '/var/opt/mssql/data/LinAGN3_Cert.cer'; GOEngedélyezze a
LinAGN2ésLinAGN3bejelentkezéseit, hogy csatlakozhassanak aLinAGN1végponthoz.GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN2_Login; GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN3_Login;Hozza létre az példányszintű bejelentkezéseket és a
LinAGN1-val ésLinAGN3-gyel társított felhasználókat aLinAGN2-n.CREATE LOGIN LinAGN1_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN1_User FOR LOGIN LinAGN1_Login; GO CREATE LOGIN LinAGN3_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN3_User FOR LOGIN LinAGN3_Login; GOÁllítsa vissza
LinAGN1_CertésLinAGN3_CertaLinAGN2.CREATE CERTIFICATE LinAGN1_Cert AUTHORIZATION LinAGN1_User FROM FILE = '/var/opt/mssql/data/LinAGN1_Cert.cer'; GO CREATE CERTIFICATE LinAGN3_Cert AUTHORIZATION LinAGN3_User FROM FILE = '/var/opt/mssql/data/LinAGN3_Cert.cer'; GOEngedélyezze a
LinAGN1ésLinAGN3bejelentkezéseit, hogy csatlakozhassanak aLinAGN2végponthoz.GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN1_Login; GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN3_Login; GOHozza létre az példányszintű bejelentkezéseket és a
LinAGN1-val ésLinAGN2-gyel társított felhasználókat aLinAGN3-n.CREATE LOGIN LinAGN1_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN1_User FOR LOGIN LinAGN1_Login; GO CREATE LOGIN LinAGN2_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN2_User FOR LOGIN LinAGN2_Login; GOÁllítsa vissza
LinAGN1_CertésLinAGN2_CertaLinAGN3.CREATE CERTIFICATE LinAGN1_Cert AUTHORIZATION LinAGN1_User FROM FILE = '/var/opt/mssql/data/LinAGN1_Cert.cer'; GO CREATE CERTIFICATE LinAGN2_Cert AUTHORIZATION LinAGN2_User FROM FILE = '/var/opt/mssql/data/LinAGN2_Cert.cer'; GOEngedélyezze a
LinAGN1ésLinAGN2bejelentkezéseit, hogy csatlakozhassanak aLinAGN3végponthoz.GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN1_Login; GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN2_Login; GO
A rendelkezésre állási csoport létrehozása
Ez a szakasz bemutatja, hogyan használható az SQL Server Management Studio (SSMS) vagy Transact-SQL az SQL Server rendelkezésre állási csoportjának létrehozásához.
Az SQL Server Management Studio használata
Ez a szakasz bemutatja, hogyan hozhat létre Külső klasztertípusú AG-t az SSMS Új rendelkezésre állási csoport varázslójával.
Az SSMS-ben bontsa ki Mindig magas rendelkezésre állásúelemet, kattintson a jobb gombbal a Rendelkezésre állási csoportokelemre, és válassza Új rendelkezésreállási csoport varázslólehetőséget.
A Bevezetés párbeszédben válaszd a Következőt.
A Rendelkezésre állási csoport beállításainak megadása párbeszédpanelen adja meg az AG nevét, és válasszon egy fürt típusát
EXTERNALvagyNONEa legördülő listából. A Pacemaker üzembe helyezésekor használhatóEXTERNAL. Speciális forgatókönyvekhez, például olvasási felskálázáshoz használhatóNONE. Az adatbázisszintű állapotészlelés beállításának megadása nem kötelező. Erről a beállításról további információt a Rendelkezésre állási csoport adatbázisszintű állapotészlelési feladatátvételi lehetőségében talál. Válassza a Tovább gombot.Az Adatbázisok kiválasztása párbeszédben válaszd ki azokat az adatbázisokat, amelyekben részt szeretnél venni az AG-ben. Minden adatbázisnak teljes biztonsági mentéssel kell rendelkeznie ahhoz, hogy hozzáadhassa azt egy AG-hez. Válassza a Tovább gombot.
A Replikák megadása párbeszédben válaszd a Replika hozzáadását.
A Csatlakozás a szerverhez párbeszédben írja be a SQL Server Linux példányának nevét a másodlagos replikához, valamint a csatlakozáshoz szükséges hitelesítő adatokat. Válassza a Csatlakozás lehetőséget.
Ismételje meg az előző két lépést azon példány esetében, amely csak konfigurációs replikát vagy egy másik másodlagos replikát fog tartalmazni.
Mindhárom példány megjelenik a Replikák megadása párbeszédben. Ha klaszter típusú külső rendszert használsz, akkor a valódi másodlagos replika esetén győződj meg róla, hogy a rendelkezésre állási mód egyezik az elsődleges replikáéval, és állítsd be a failover módot Külső formátumra. A csak konfigurációs replika esetében válassza ki a konfiguráció rendelkezésre állási módját.
Az alábbi példa egy AG-t mutat be két replikával, egy külső fürttípussal és egy csak konfigurációs replikával.
Az alábbi példa egy AG-t mutat be két replikával, fürt nélküli típusú, és egy konfigurációs célú replikával.
Ha meg akarod változtatni a biztonsági mentési beállításokat, válaszd a Biztonsági beállítások fület. További információért az AG-k biztonsági mentési beállításairól lásd: Konfigurálni a mentéseket egy Always On elérhetőségi csoport másodlagos replikáin.
Ha olvasható másodfokokat használ, vagy olyan AG-t hoz létre, amelynek fürttípusa Nincs az olvasási skálázáshoz, a Figyelő lap kiválasztásával létrehozhat egy figyelőt. Később figyelőt is hozzáadhat. Hallgató létrehozásához válassza ki a Elérhetőségi csoport hallgató létrehozása opciót, és adja meg a nevet, egy TCP/IP portot, valamint hogy statikus vagy automatikusan hozzárendelt DHCP IP-címet használjon. Egy AG esetén, amelynek klaszter típusa Nincs, használjunk egy statikus IP-címet, amely megegyezik az elsődleges IP-címmel.
Ha olvasható forgatókönyvekhez hozol létre hallgatót, az SSMS lehetővé teszi a varázslóban csak olvasható útválasztás létrehozását. Később hozzáadhatod SSMS vagy Transact-SQL használatával is. Az írásvédett útválasztás most hozzáadása:
Válaszd ki a Read-Only Routing fület.
Adja meg az írásvédett replikák URL-címeit. Ezek az URL-címek hasonlóak a végpontokhoz, kivéve, hogy a példány portját használják, nem a végpontot.
- Jelölje ki az egyes URL-címeket, és alulról válassza ki az olvasható replikákat. Több kijelöléséhez tartsa lenyomva a Shift billentyűt, vagy kattintás után húzással jelölje ki a kívánt elemeket.
Válassza a Tovább gombot.
Válassza ki a másodlagos replikák inicializálásának módját. Az alapértelmezett beállítás az automatikus vetéshasználata, amelyhez az AG-ben részt vevő összes kiszolgálón ugyanazt az elérési utat kell használni. A varázsló biztonsági mentést, másolást és visszaállítást is végezhet (a második lehetőség); vagy csatlakozhat, ha manuálisan készített biztonsági másolatot, másolta és állította vissza az adatbázist a replikákon (harmadik lehetőség); vagy később is hozzáadhatja az adatbázist (utolsó lehetőség). A tanúsítványokhoz hasonlóan, ha manuálisan készít biztonsági másolatot és másolja őket, állítsa be a többi replika biztonsági mentési fájljaira vonatkozó engedélyeket. Válassza a Tovább gombot.
Az Validáció párbeszédben, ha a varázsló nem adja vissza a Sikert minden próbára, utánanézz tovább. Egyes figyelmeztetések elfogadhatóak és nem végzetesek, például ha nem hoz létre figyelőt. Válassza a Tovább gombot.
Az Összefoglaló párbeszédben válaszd a Befejezést. Ekkor megkezdődik az AG létrehozásának folyamata.
Amikor az AG létrehozása befejeződött, válaszd a Eredmények oldalon a Bezárás lehetőséget. Mostantól a dinamikus felügyeleti nézetek replikáin, valamint az SSMS Always On Magas rendelkezésre állású mappájában láthatja az AG-t.
Használd a Transact-SQL-t
Ez a rész példákat mutat arra, hogyan hozhat létre AG-t Transact-SQL használatával. Az AG létrehozása után konfigurálhatja a „listenert” és az írásvédett útvonalvezetést. Az AG-t a ALTER AVAILABILITY GROUP használatával módosíthatja, de az SQL Server 2017-ben (14.x) nem módosíthatja a fürt típusát. Ha nem külső fürttípusú AG-t akart létrehozni, akkor törölnie kell, és újra létre kell hoznia egy Nincs típusú fürttel.
További információkért és egyéb lehetőségekért lásd:
- CREATE AVAILABILITY GROUP
- ALTER AVAILABILITY GROUP
- Csak olvasási útválasztás konfigurálása Always On rendelkezésreállási csoporthoz
- Always On rendelkezésre állási csoport figyelőjének konfigurálása
Példa A: Két replika csak konfigurációs replikával (külső fürttípus)
Ez a példa bemutatja, hogyan hozhat létre két replika AG-t, amely csak konfigurációs replikát használ.
Hajtsd végre a következő utasítást a fő replika csomóponton, amely tartalmazza az adatbázisok olvasási/írási másolatát. Ez a példa automatikus vetést használ.
CREATE AVAILABILITY GROUP [<AGName>] WITH (CLUSTER_TYPE = EXTERNAL) FOR DATABASE <DBName> REPLICA ON N'LinAGN1' WITH ( ENDPOINT_URL = N' TCP://LinAGN1.FullyQualified.Name:5022', FAILOVER_MODE = EXTERNAL, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT ), N'LinAGN2' WITH ( ENDPOINT_URL = N'TCP://LinAGN2.FullyQualified.Name:5022', FAILOVER_MODE = EXTERNAL, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, SEEDING_MODE = AUTOMATIC ), N'LinAGN3' WITH ( ENDPOINT_URL = N'TCP://LinAGN3.FullyQualified.Name:5022', AVAILABILITY_MODE = CONFIGURATION_ONLY ); GOEgy lekérdezési ablakban, amely a másik replikához csatlakozik, hajtsd végre a következő utasítást, hogy a replikát összekapcsoljuk az AG-vel, és elkezdjük a vetősítést az elsődleges replikáról a másodlagos replikára.
ALTER AVAILABILITY GROUP [<AGName>] JOIN WITH (CLUSTER_TYPE = EXTERNAL); GO ALTER AVAILABILITY GROUP [<AGName>] GRANT CREATE ANY DATABASE; GOA csak konfigurációs replikához kapcsolódó lekérdezési ablakban futtasd a következő utasítást, hogy a replikát csatlakoztasd az AG-hez.
ALTER AVAILABILITY GROUP [<AGName>] JOIN WITH (CLUSTER_TYPE = EXTERNAL); GO
B: Példa: Három replika írásvédett útválasztással (külső klasztertípus)
Ez a példa megmutatja, hogyan lehet csak olvasható útmutatást konfigurálni az eredeti AG létrehozásának részeként három teljes replika esetén.
Hajtsa végre a következő utasítást az elsődleges replikaként működő csomóponton, és tartalmazza az adatbázisok teljes olvasási/írási másolatát. Ez a példa automatikus vetést használ.
CREATE AVAILABILITY GROUP [<AGName>] WITH (CLUSTER_TYPE = EXTERNAL) FOR DATABASE < DBName > REPLICA ON N'LinAGN1' WITH ( ENDPOINT_URL = N'TCP://LinAGN1.FullyQualified.Name:5022', FAILOVER_MODE = EXTERNAL, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, PRIMARY_ROLE(ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = ( ( 'LinAGN2.FullyQualified.Name', 'LinAGN3.FullyQualified.Name' ) )), SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL, READ_ONLY_ROUTING_URL = N'TCP://LinAGN1.FullyQualified.Name:1433') ), N'LinAGN2' WITH ( ENDPOINT_URL = N'TCP://LinAGN2.FullyQualified.Name:5022', FAILOVER_MODE = EXTERNAL, SEEDING_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, PRIMARY_ROLE(ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = ( ( 'LinAGN1.FullyQualified.Name', 'LinAGN3.FullyQualified.Name' ) )), SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL, READ_ONLY_ROUTING_URL = N'TCP://LinAGN2.FullyQualified.Name:1433') ), N'LinAGN3' WITH ( ENDPOINT_URL = N'TCP://LinAGN3.FullyQualified.Name:5022', FAILOVER_MODE = EXTERNAL, SEEDING_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, PRIMARY_ROLE(ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = ( ( 'LinAGN1.FullyQualified.Name', 'LinAGN2.FullyQualified.Name' ) )), SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL, READ_ONLY_ROUTING_URL = N'TCP://LinAGN3.FullyQualified.Name:1433') ) LISTENER '<ListenerName>' ( WITH IP = ('<IPAddress>', '<SubnetMask>'), Port = 1433 ); GONéhány megjegyzés ehhez a konfigurációhoz:
-
AGNameaz AG neve. -
DBNameaz AG-vel használt adatbázis neve. Ez lehet egy vesszővel elválasztott névlista is. -
ListenerNameegy olyan név, amely eltér bármely szervertől vagy csomóponttól. Azt a(z)IPAddresselemmel együtt regisztrálod a DNS-ben. -
IPAddressa(z)ListenerNameIP-címe. Ez is egyedi, és egyetlen kiszolgálóval vagy csomóponttal sem egyezik meg. Az alkalmazások és a végfelhasználókListenerNamevagyIPAddresshasználatával csatlakoznak az AG-hez.-
SubnetMaskIPAddressalhálózati maszkja. Az SQL Server 2019 -ben (15.x) és a korábbi verziókban ez az érték .255.255.255.255Az SQL Server 2022 (16.x) és újabb verzióiban ez az érték .0.0.0.0
-
-
A másik replikához csatlakoztatott lekérdezési ablakban hajtsa végre a következő utasítást a replika AG-hez való csatlakoztatásához, és indítsa el a vetés folyamatát az elsődlegesről a másodlagos replikára.
ALTER AVAILABILITY GROUP [<AGName>] JOIN WITH (CLUSTER_TYPE = EXTERNAL); GO ALTER AVAILABILITY GROUP [<AGName>] GRANT CREATE ANY DATABASE; GOIsmételje meg a 2. lépést a harmadik replikához.
Példa C: Két replika írásvédett útválasztással (nincs klaszter típus)
Ez a példa egy két-replika konfigurációt hoz létre, amely egy klaszter típusú None rendszert használ. Használd ezt a konfigurációt olvasási skálázás esetén, ahol nem számíthatsz a failoverre. Ez a lépés létrehozza az elsődleges replikaként működő figyelőt, és beállítja a csak olvasható útválasztást round-robin funkcióval.
Hajtsa végre a következő utasítást az elsődleges replikaként működő csomóponton, és tartalmazza az adatbázisok teljes olvasási/írási másolatát. Ez a példa automatikus vetést használ.
CREATE AVAILABILITY GROUP [<AGName>] WITH (CLUSTER_TYPE = NONE) FOR DATABASE <DBName> REPLICA ON N'LinAGN1' WITH ( ENDPOINT_URL = N'TCP://LinAGN1.FullyQualified.Name: <PortOfEndpoint>', FAILOVER_MODE = MANUAL, AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT, PRIMARY_ROLE( ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = (('LinAGN1.FullyQualified.Name'.'LinAGN2.FullyQualified.Name')) ), SECONDARY_ROLE( ALLOW_CONNECTIONS = ALL, READ_ONLY_ROUTING_URL = N'TCP://LinAGN1.FullyQualified.Name:<PortOfInstance>' ) ), N'LinAGN2' WITH ( ENDPOINT_URL = N'TCP://LinAGN2.FullyQualified.Name:<PortOfEndpoint>', FAILOVER_MODE = MANUAL, SEEDING_MODE = AUTOMATIC, AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT, PRIMARY_ROLE(ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = ( ('LinAGN1.FullyQualified.Name', 'LinAGN2.FullyQualified.Name') )), SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL, READ_ONLY_ROUTING_URL = N'TCP://LinAGN2.FullyQualified.Name:<PortOfInstance>') ), LISTENER '<ListenerName>' (WITH IP = ( '<PrimaryReplicaIPAddress>', '<SubnetMask>'), Port = <PortOfListener> ); GOEbben a példában:
-
AGNameaz AG neve. -
DBNameaz AG-vel használt adatbázis neve. Ez lehet egy vesszővel elválasztott névlista is. -
PortOfEndpointez a portszám a létrehozott végponthoz.-
PortOfInstanceaz SQL Server példányának portszáma.
-
-
ListenerNameegy helyőrző név, amely eltér az alapul szolgáló replikák bármelyikétől. -
PrimaryReplicaIPAddressaz elsődleges replika IP-címe.-
SubnetMaskIPAddressalhálózati maszkja. Az SQL Server 2019 -ben (15.x) és a korábbi verziókban ez az érték .255.255.255.255Az SQL Server 2022 (16.x) és újabb verzióiban ez az érték .0.0.0.0
-
-
Csatlakoztassa a másodlagos replikát az AG-hez, és indítsa el az automatikus vetést.
ALTER AVAILABILITY GROUP [<AGName>] JOIN WITH (CLUSTER_TYPE = NONE); GO ALTER AVAILABILITY GROUP [<AGName>] GRANT CREATE ANY DATABASE; GO
Az SQL Server bejelentkezési és engedélyeinek létrehozása a Pacemakerhez
A Pacemaker magas rendelkezésre állású fürt, amely SQL Servert használ Linuxon, hozzáférést igényel az SQL Server-példányhoz, valamint engedélyeket magára az elérési csoportra. Ezek a lépések létrehozzák a bejelentkezést és a kapcsolódó engedélyeket, valamint egy fájlt, amely tájékoztatja a Pacemakert az SQL Serveren való hitelesítésről.
Az első replikához csatlakoztatott lekérdezési ablakban hajtsa végre a következő szkriptet:
CREATE LOGIN PMLogin WITH PASSWORD = '<password>'; GO GRANT VIEW SERVER STATE TO PMLogin; GO GRANT ALTER, CONTROL, VIEW DEFINITION ON AVAILABILITY GROUP::<AGThatWasCreated> TO PMLogin; GOAz 1-es csomóponton adjuk hozzá a következő két sort a
/var/opt/mssql/secrets/passwdfájlhoz:PMLogin <password>Lehet, hogy a jogosultságokat meg kell emelned a
sudofájl szerkesztéséhez.Zárold le a fájlt:
sudo chmod 400 /var/opt/mssql/secrets/passwdIsmételje meg az 1–5. lépést a replikaként szolgáló többi kiszolgálón.
Az elérhetőségi csoport erőforrásainak létrehozása a Pacemaker klaszterben (csak külső)
Miután létrehoz egy hozzáférhetőségi csoportot az SQL Serverben, az externális fürttípus megadásakor létre kell hoznia a megfelelő erőforrásokat a Pacemakerben. Az AG-nek két erőforrásra van szüksége: a rendelkezésre állási csoport erőforrására és egy IP-címerőforrásra. Az IP-címerőforrás konfigurálása nem kötelező, ha nem használ figyelőt. Azonban akkor ajánlott, ha figyelőfunkciókra van szüksége.
A létrehozott AG-erőforrás egy klónnak nevezett erőforrástípus. Az AG-erőforrás minden csomóponton rendelkezik másolattal, valamint egy előléptetett nevű vezérlő erőforrással. A promóciós erőforrás megfelel annak a szervernek, amely az elsődleges replikát üzemelteti. A többi erőforrás másodlagos replikákat (normál vagy csak konfigurációs szinten) üzemeltet, és ezeket előre lehet léptetni egy failoverben.
Note
Az SQL Server 2025 (17.x) verzióban a Cumulative Update (CU) 3 és újabb verziókkal a Pacemaker HA Agent v2 (előzetes) elérhető Red Hat Enterprise Linux (RHEL) és Ubuntu verzióihoz a csomagon keresztülmssql-server-ha. A Pacemaker HA ügynök v2-t nem gyártási telepítésekben is értékelheted. A meglévő Pacemaker HA-ügynök (v1) továbbra is teljes mértékben támogatott a produkciós telepítésekhez. További információért lásd: Pacemaker HA agent v2 (előzetes).
Pacemaker HA-ügynök v1
Hozza létre az AG-erőforrást a Pacemaker HA-ügynök (v1) használatával: (
ocf:mssql:ag)sudo pcs resource create <NameForAGResource> ocf:mssql:ag ag_name=<AGName> meta failure-timeout=30s promotable notify=trueEbben a példában
NameForAGResourceaz AG fürterőforrásának adott egyedi nevet adja, ésAGNamea létrehozott AG nevét.Hozza létre a figyelő funkcióhoz társított AG IP-címerőforrását.
sudo pcs resource create <NameForIPResource> ocf:heartbeat:IPaddr2 ip=<IPAddress> cidr_netmask=<Netmask>Ebben a példában
NameForIPResourceaz IP-erőforrás egyedi neve, ésIPAddressaz erőforráshoz hozzárendelt statikus IP-cím.Annak érdekében, hogy az IP-cím és az AG-erőforrás ugyanazon a csomóponton fusson, konfiguráljon egy közös elhelyezési korlátozást.
sudo pcs constraint colocation add <NameForIPResource> with promoted <NameForAGResource>-clone INFINITYEbben a példában
NameForIPResourceaz IP-erőforrás neve, ésNameForAGResourceaz AG-erőforrás neve.Hozzon létre egy sorrendiségi megkötést annak biztosítására, hogy az AG-erőforrás az IP-cím előtt fusson. Bár a helymegkötés rendelési kényszert jelent, ez a lépés kényszeríti azt.
sudo pcs constraint order promote <NameForAGResource>-clone then start <NameForIPResource>Ebben a példában
NameForIPResourceaz IP-erőforrás neve, ésNameForAGResourceaz AG-erőforrás neve.
Pacemaker HA-ügynök v2 (előzetes verzió)
Az SQL Server 2025 (17.x) verzióban a Cumulative Update (CU) 3 és újabb verziókkal egy új Pacemaker HA agent v2 érhető el Red Hat Enterprise Linux (RHEL) és Ubuntu számára a mssql-server-ha csomagban.
A Pacemaker HA-ügynök v2-ben megbízhatósági és teljesítménybeli fejlesztések történtek az előző ügynökkel szemben, beleértve a következőket:
Továbbfejlesztett feladatátvételi teljesítmény a tervezett és a nem tervezett feladatátvételi idő csökkentése érdekében.
Rugalmas automatikus feladatátvételi szabályzatok támogatása, beleértve az állapot-ellenőrzési időtúllépés és a hibaállapot-szint konfigurálását.
A TLS 1.3 támogatása a Pacemaker-klaszter és az SQL Server közötti kommunikációhoz.
A Pacemaker HA-ügynök v2 jelenleg előzetes verzióban érhető el. A meglévő Pacemaker HA-ügynök (v1) továbbra is teljes mértékben támogatott a produkciós telepítésekhez.
A Pacemaker HA ügynök v2 szolgáltatásalapú architektúrát használ. Az ügynök egy dedikált rendszerszolgáltatásként fut, amelynek neve mssql-pcsag, amely felelős az SQL Server-specifikus, magas rendelkezésre állási műveletekért és a Pacemakerrel való kommunikációért.
A mssql-pcsag szolgáltatást szabványos rendszervezérléssel kezeled. Indíts, állítsd meg, indítsd újra, és szükség szerint ellenőrizd a szolgáltatás állapotát a következő parancsokkal:
sudo systemctl start mssql-pcsag # Start the Pacemaker HA agent v2 (mssql-pcsag) service
sudo systemctl stop mssql-pcsag # Stop the Pacemaker HA agent v2 (mssql-pcsag) service
sudo systemctl restart mssql-pcsag # Restart the Pacemaker HA agent v2 (mssql-pcsag) service
sudo systemctl status mssql-pcsag # Check the status of the Pacemaker HA agent v2 (mssql-pcsag) service
A Pacemaker a szolgáltatáson keresztül kommunikál az SQL Server rendelkezésre állási csoportjaival mssql-pcsag . A rendelkezésre állási csoport monitorozásának és feladatátvételének megfelelő működéséhez:
- A Pacemaker-fürtnek futnia kell.
- A
mssql-pcsagszolgáltatásnak futnia kell.
Bár a Pacemaker és mssql-pcsag különálló komponensek, működés közben együtt működnek. Ha a Pacemaker vagy a mssql-pcsag szolgáltatás leáll, az elérhetőségi csoport feladatátvételi műveletei nem a várt módon működnek.
Note
A szolgáltatás újraindítása nem indítja újra az mssql-pcsag SQL Servert. Hasonlóképpen, az SQL Server újraindítása nem indítja újra automatikusan a Pacemaker HA-ügynököt. Ellenőrizze, hogy mindkét szolgáltatás fut-e a hibaelhárítás során.
A Pacemaker HA agent v2 támogatja a rugalmas automatikus failover szabályzatokat is, beleértve a hiba-állapot szintjének és az egészségellenőrzési időkorlát konfigurálását.
Példa: A következő Transact-SQL utasítás megváltoztatja egy AG1 nevű elérhetőségi csoport hiba-állapot szintjét 2-es szintre:
ALTER AVAILABILITY GROUP AG1 SET (FAILURE_CONDITION_LEVEL = 2);Példa: Az alábbi Transact-SQL állítás megváltoztatja egy AG1 nevű elérhetőségi csoport egészségügyi ellenőrzési időtúllépési küszöbértékét 60 000 milliszekundumra (60 másodpercre).
ALTER AVAILABILITY GROUP AG1 SET (HEALTH_CHECK_TIMEOUT = 60000);Példa: A konfiguráció alkalmazása után a következő Transact-SQL utasítást használd a konfigurált hibafeltétel szint és az elérhetőségi csoportok egészségügyi ellenőrzési időkorlátjának ellenőrzésére.
SELECT failure_condition_level, health_check_timeout FROM sys.availability_groups;
Hozza létre az AG-erőforrást a Pacemakerben a Pacemaker HA ügynök v2 használatával: (
ocf:mssql:agv2)sudo pcs resource create <NameForAGResource> ocf:mssql:agv2 ag_name=<AGName> meta failure-timeout=30s promotable notify=trueHa a Pacemaker HA agent verzió 1-ről verzió 2-re frissít, távolítsa el a meglévő AG-erőforrást az
agv2erőforrás létrehozása előtt.sudo pcs resource delete <NameForAGResource>Ez a művelet ideiglenesen leállítja az AG-szinkronizálást az erőforrás újbóli létrehozása közben. A Pacemaker AG-erőforrás törlése és újrakészítése nem törli az AG-t. Az erőforrás újbóli létrehozása után a Pacemaker automatikusan folytatja a felügyeletet és az AG-szinkronizálást.
Hozza létre a figyelő funkcióhoz társított AG IP-címerőforrását.
sudo pcs resource create <NameForIPResource> ocf:heartbeat:IPaddr2 ip=<IPAddress> cidr_netmask=<Netmask>Ebben a példában
NameForIPResourceaz IP-erőforrás egyedi neve, ésIPAddressaz erőforráshoz hozzárendelt statikus IP-cím.Annak érdekében, hogy az IP-cím és az AG-erőforrás ugyanazon a csomóponton fusson, konfiguráljon egy közös elhelyezési korlátozást.
sudo pcs constraint colocation add <NameForIPResource> with promoted <NameForAGResource>-clone INFINITYEbben a példában
NameForIPResourceaz IP-erőforrás neve, ésNameForAGResourceaz AG-erőforrás neve.Hozzon létre egy rendelési kényszert, hogy az AG-erőforrás az IP-cím előtt működjön. Bár a helymegkötés rendelési kényszert jelent, ez a lépés kényszeríti azt.
sudo pcs constraint order promote <NameForAGResource>-clone then start <NameForIPResource>Ebben a példában
NameForIPResourceaz IP-erőforrás neve, ésNameForAGResourceaz AG-erőforrás neve.