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).
Előfeltételek
Telepítse a Pacemaker magas rendelkezésre állású klasztert az Linuxon futó SQL Serverhez készült Pacemaker-klaszter telepítéseszerint.
A rendelkezésre állási csoportok funkció engedélyezése
A Windowstól eltérően a PowerShell vagy az SQL Server Configuration Manager 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 az mssql-conf segédprogramot, vagy manuálisan szerkesztheti a mssql.conf fájlt.
Fontos
Az AG szolgáltatást csak konfigurációs replikákhoz kell engedélyeznie, még az SQL Server Expressen is.
Az mssql-conf segédprogram használata
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 hozhat létre és állíthat vissza tanúsítványokat. 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.
Fontos
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:
Jegyzet
Bár rendelkezésre állási csoportot hoz létre, a végpont típusa a FOR DATABASE_MIRRORING-t használja, mivel néhány mögöttes szempont egykor megosztott volt 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égponthoz az 5022-s tipikus TCP-portot használjuk.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 ); GOscpvagy egy másik segédprogram használatával másolja a tanúsítvány biztonsági másolatait minden olyan csomópontra, amely része lesz az AG-nak.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; GOFigyelem
A jelszónak az SQL Server alapértelmezett jelszóházirendetkell 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ányának birtoklása az AG kommunikációjának és biztonságának fontos eleme.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
LinAG1é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ő fürttípusú elérhetőségi csoportot (AG) az SQL Server Management Studio (SSMS) Új rendelkezésre állási csoport varázslójának segítségével.
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édpanelen válassza a Következőlehetőséget.
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 Következőlehetőséget.Az Adatbázisok kiválasztása párbeszédpanelen válassza ki azokat az adatbázisokat, amelyekben részt kíván venni az AG-ben. Minden adatbázisnak teljes biztonsági mentéssel kell rendelkeznie ahhoz, hogy hozzáadhassa azt egy AG-hez. Válassza Következőlehetőséget.
A Replikák megadása párbeszédpanelen válassza ki a Replika hozzáadásalehetőséget.
A Csatlakozás a kiszolgálóhoz párbeszédpanelen adja meg az SQL Server linuxos példányának nevét, amely a másodlagos replika lesz, és adja meg a csatlakozáshoz szükséges hitelesítő adatokat. Válassza , Csatlakozás.
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 ablakban. Ha külső fürttípust használ, a másodlagos replikára, amelyik valóban másodlagosként működik, ügyeljen arra, hogy a Rendelkezésre állási mód megfeleljen az elsődleges replikáénak, és a feladatátvételi mód Külsőre legyen állítva. 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 módosítani szeretné a biztonsági mentés beállításait, válassza a Biztonsági mentés beállításai lapot. Az AG-k biztonsági mentési beállításairól további információt az Always On rendelkezésre állási csoport másodlagos replikáin végzett biztonsági mentések konfigurálása című témakörben talál.
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. Figyelő létrehozásához válassza a Rendelkezésre állási csoport figyelőjének létrehozása lehetőséget, és adjon meg egy nevet, egy TCP/IP-portot, valamint azt, hogy statikus vagy automatikusan hozzárendelt DHCP IP-címet szeretne-e használni. Az "Nincs" fürttípusú AG esetén az IP-címnek statikusnak kell lennie, és meg kell egyeznie az elsődleges IP-címével.
Ha olvasási figyelőt hoz létre forgatókönyvekhez, az SSMS lehetővé teszi a csak olvasható útválasztás létrehozását a varázslóban. Később SSMS-en vagy Transact-SQL-en keresztül is hozzáadhatja. Az írásvédett útválasztás most hozzáadása:
Válassza az Read-Only Útválasztás lapot.
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 Következőlehetőséget.
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 Következőlehetőséget.
A Validáció párbeszédpanelen, ha a varázsló nem jelez sikert minden ellenőrzéshez, további vizsgálatra van szükség. Egyes figyelmeztetések elfogadhatóak és nem végzetesek, például ha nem hoz létre figyelőt. Válassza Következőlehetőséget.
Az Összegzés párbeszédpanelen válassza a Befejezéslehetőséget. Ekkor megkezdődik az AG létrehozásának folyamata.
Ha az AG létrehozása befejeződött, az Eredmények menüpontnál válassza 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.
Transact-SQL használata
Ez a szakasz példákat mutat be egy AG Transact-SQL használatával történő létrehozására. 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 tekintse meg az alábbi hivatkozásokat:
- HOZZON LÉTRE ELÉRHETŐSÉGI CSOPORTOT (Transact-SQL)
- ALTER ELÉRHETŐSÉGI CSOPORT (Transact-SQL)
- Always On rendelkezésre állási csoport írásvédett útválasztásának konfigurálása
- 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.
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 ), 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 ); GOA 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; GOA csak a konfigurációs replikához csatlakoztatott lekérdezési ablakban futtassa az alábbi utasítást az AG-hez való csatlakozáshoz.
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)
A példa bemutat három teljes replikát, és szemlélteti, hogyan lehet az írásvédett útválasztást konfigurálni az AG első létrehozásakor.
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. Vesszővel elválasztott nevek listája is lehet. -
ListenerNameegy olyan név, amely eltér bármely mögöttes kiszolgálótól vagy csomóponttól. AIPAddressés a DNS-ben van regisztrálva. -
IPAddressegy IP-cím, amely a .-hezListenerNamevan társítva. Egyedi is, és nem ugyanaz, mint bármelyik kiszolgáló vagy csomópont. 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étreplika-konfiguráció létrehozását mutatja be a Nincs fürttípus használatával. Használja ezt a konfigurációt az olvasási skálázási forgatókönyvhöz, ahol nem várható feladatátvétel. Ez a lépés létrehozza a hallgatót, amely az elsődleges replikát valósítja meg, és a csak olvasható útválasztást a körkörös kiosztási 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. Vesszővel elválasztott nevek listája is lehet. -
PortOfEndpointa létrehozott végpont által használt portszám.-
PortOfInstanceaz SQL Server példánya által használt portszám.
-
-
ListenerNameegy olyan név, amely különbözik a mögöttes replikáktól, de valójában nem kerül felhasználásra. -
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. csomóponton adja meg a következő parancsot:
sudo emacs /var/opt/mssql/secrets/passwdEz a parancs megnyitja az Emacs-szerkesztőt.
Írja be a következő két sort a szerkesztőbe:
PMLogin <password>Tartsa lenyomva a
Ctrlbillentyűt, majd nyomja le aX, majdCbillentyűt a fájl bezárásához és mentéséhez.Hajtsa végre a következőt:
sudo chmod 400 /var/opt/mssql/secrets/passwda fájl zárolásához.
Ismé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ásolatokkal, és egy főkiszolgáló nevű vezérlő erőforrással. A főkiszolgáló az elsődleges replikát üzemeltető kiszolgálóhoz van társítva. A többi erőforrás másodlagos replikákat (normál vagy csak konfigurációs replikák) üzemeltet, és előléptethető mester szerepkörbe egy feladatátvétel során.
Pacemaker HA-ügynök v2 (előzetes verzió)
Az SQL Server 2025 (17.x) és a 3. kumulatív frissítés (CU) 3. és újabb verzióiban egy új Pacemaker HA-ügynök 2-es (mssql-server-ha) verziója érhető el a Red Hat Enterprise Linuxhoz (RHEL) és az Ubuntuhoz.
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.
Hozza létre az AG-erőforrást a Pacemakerben a meglévő Pacemaker HA-ügynökkel (v1):
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.A Pacemaker HA-ügynök v2 használatához hozza létre az AG-erőforrást az
agv2erőforrásügynök használatával:sudo pcs resource create <NameForAGResource> ocf:mssql:agv2 ag_name=<AGName> meta failure-timeout=30s promotable notify=trueAz SQL Server 2025 (17.x) új üzembe helyezései kiértékelhetik a Pacemaker HA-ügynök 2-et. A meglévő éles üzembe helyezéseket szükség esetén frissíteni kell.
A Pacemaker HA-ügynök v2-re való frissítéskor vagy üzembe helyezésekor az előző
agv2ügynök helyett azagügynökkel hozza létre az új AG-erőforrást. Ha már konfigurált egy meglévő AG-erőforrást, távolítsa el, és hozzon létre egy új erőforrást a következő használatávalagv2: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.