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: Deploy a Pacemaker klaster SQL Server on Linux.
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 elérhető csoportot hozol létre, a végponttípus használ FOR DATABASE_MIRRORING, mert a végpont típusa megosztja az alapaspektusokat azzal a most már 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 rész bemutatja, hogyan hozhat létre AG-t egy klaszter típusú External segítségével, SSMS használatával a New Availability Group Wizard-kal.
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 aRead-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 Találatokoldalán a Zárást. 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; GOEgy lekérdezési ablakban, amely a konfigurációs replikához csatlakozik, futtasd a következő utasítást, hogy összekapcsold az AG-vel.
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. DNS-ben regisztrálod aIPAddress. -
IPAddressaz IP-cím .ListenerNameEgyedi, és nem illik a szerverekhez vagy csomópontokhoz. 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 azt a hallgatót, amely az elsődleges replika, és konfigurálja az csak olvasható útvonalakat kör-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 helykiállító név, amely eltér bármelyik mögöttes másolattó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ásnak minden csomóponton vannak másolatok, és egy vezérlő erőforrás, amit előhívnak neveznek. 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) 3. és újabb kumulatív frissítéssel (CU) rendelkező verzióiban a Pacemaker HA agent v2 (előzetes verzió) elérhető a Red Hat Enterprise Linuxhoz (RHEL) és az Ubuntuhoz a mssql-server-ha csomagon keresztül. 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 gyártási telepítésekhez. További információ: Pacemaker HA agent v2 (előzetes verzió).
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.Hozz létre egy sorrendi korlátozást, hogy biztosítsd az AG erőforrás az IP-cím előtt futni. 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ó)
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 vagy a Pacemaker, vagy a mssql-pcsag szolgáltatás leáll, az elérhetőségi csoport failover műveletek nem működnek a vártnak megfelelően.
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-ü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 a hibaállapot-szint és az állapot-ellenőrzési időtúllépés konfigurálását.
Példa: Az alábbi Transact-SQL utasítás az AG1 nevű meglévő rendelkezésre állási csoport hibaállapot-szintjét a 2. szintre módosítja:
ALTER AVAILABILITY GROUP AG1 SET (FAILURE_CONDITION_LEVEL = 2);Példa: Az alábbi Transact-SQL utasítás 60 000 ezredmásodpercre (60 másodpercre) módosítja az AG1 nevű meglévő rendelkezésre állási csoport állapot-ellenőrzési időtúllépési küszöbértékét.
ALTER AVAILABILITY GROUP AG1 SET (HEALTH_CHECK_TIMEOUT = 60000);Példa: A konfiguráció alkalmazása után használja a következő Transact-SQL utasítást a rendelkezésre állási csoportok konfigurált hibaállapot-szintjének és állapot-ellenőrzési időtúllépésének ellenőrzéséhez.
SELECT failure_condition_level, health_check_timeout FROM sys.availability_groups;A TLS 1.3 támogatása a Pacemaker-klaszter és az SQL Server közötti kommunikációhoz.
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.