Megosztás a következőn keresztül:


Rendelkezésre állási csoport létrehozása és konfigurálása linuxos SQL Serverhez

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.

  1. Hajtsa végre a következő szkriptet a LinAGN1 a 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
    );
    GO
    
  2. Vé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
    );
    GO
    
  3. Vé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
    );
    GO
    
  4. scp vagy 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-t LinAGN2-re és LinAGN3-re.
    • Másolja az LinAGN2_Cert.cer-t LinAGN1-re és LinAGN3-re.
    • Másolja az LinAGN3_Cert.cer-t LinAGN1-re és LinAGN2-re.
  5. 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>
    
  6. Hozza létre az példányszintű bejelentkezéseket és a LinAGN2-val és LinAGN3-gyel társított felhasználókat a LinAGN1-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;
    GO
    

    Figyelem

    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.

  7. Állítsa vissza LinAGN2_Cert és LinAGN3_Cert a LinAGN1. 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';
    GO
    
  8. Engedélyezze a LinAGN2 és LinAGN3 bejelentkezéseit, hogy csatlakozhassanak a LinAGN1végponthoz.

    GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN2_Login;
    GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN3_Login;
    
  9. Hozza létre az példányszintű bejelentkezéseket és a LinAGN1-val és LinAGN3-gyel társított felhasználókat a LinAGN2-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
    
  10. Állítsa vissza LinAGN1_Cert és LinAGN3_Cert a LinAGN2.

    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';
    GO
    
  11. Engedélyezze a LinAGN1 és LinAGN3 bejelentkezéseit, hogy csatlakozhassanak a LinAGN2végponthoz.

    GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN1_Login;
    GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN3_Login;
    GO
    
  12. Hozza létre az példányszintű bejelentkezéseket és a LinAGN1-val és LinAGN2-gyel társított felhasználókat a LinAGN3-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
    
  13. Állítsa vissza LinAGN1_Cert és LinAGN2_Cert a LinAGN3.

    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';
    GO
    
  14. Engedélyezze a LinAG1 és LinAGN2 bejelentkezéseit, hogy csatlakozhassanak a LinAGN3vé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.

  1. 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.

  2. A Bevezetés párbeszédpanelen válassza a Következőlehetőséget.

  3. 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 EXTERNAL vagy NONE a 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.

    Fürttípust ábrázoló képernyőkép a rendelkezésre állási csoport létrehozásáról.

  4. 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.

  5. A Replikák megadása párbeszédpanelen válassza ki a Replika hozzáadásalehetőséget.

  6. 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.

  7. 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.

  8. 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.

    Képernyőkép a Rendelkezésre állási csoport létrehozása ablakról, amely az olvasható másodlagos beállítást mutatja.

    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.

  9. 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.

  10. 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.

    Képernyőkép a Rendelkezésre állási csoport létrehozásáról, amely a figyelő beállítást mutatja.

  11. 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:

    1. Válassza az Read-Only Útválasztás lapot.

    2. 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.

      1. 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.
  12. Válassza Következőlehetőséget.

  13. 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.

  14. 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.

  15. Az Összegzés párbeszédpanelen válassza a Befejezéslehetőséget. Ekkor megkezdődik az AG létrehozásának folyamata.

  16. 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:

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.

  1. 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
    );
    GO
    
  2. 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;
    GO
    
  3. A 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.

  1. 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
        );
    GO
    

    Néhány megjegyzés ehhez a konfigurációhoz:

    • AGName az AG neve.
    • DBName az AG-vel használt adatbázis neve. Vesszővel elválasztott nevek listája is lehet.
    • ListenerName egy olyan név, amely eltér bármely mögöttes kiszolgálótól vagy csomóponttól. A IPAddress és a DNS-ben van regisztrálva.
    • IPAddress egy IP-cím, amely a .-hez ListenerNamevan társítva. Egyedi is, és nem ugyanaz, mint bármelyik kiszolgáló vagy csomópont. Az alkalmazások és a végfelhasználók ListenerName vagy IPAddress használatával csatlakoznak az AG-hez.
      • SubnetMask IPAddressalhálózati maszkja. Az SQL Server 2019 -ben (15.x) és a korábbi verziókban ez az érték .255.255.255.255 Az SQL Server 2022 (16.x) és újabb verzióiban ez az érték .0.0.0.0
  2. 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;
    GO
    
  3. Ismé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.

  1. 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>
        );
    GO
    

    Ebben a példában:

    • AGName az AG neve.
    • DBName az AG-vel használt adatbázis neve. Vesszővel elválasztott nevek listája is lehet.
    • PortOfEndpoint a létrehozott végpont által használt portszám.
      • PortOfInstance az SQL Server példánya által használt portszám.
    • ListenerName egy 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.
    • PrimaryReplicaIPAddress az elsődleges replika IP-címe.
      • SubnetMask IPAddressalhálózati maszkja. Az SQL Server 2019 -ben (15.x) és a korábbi verziókban ez az érték .255.255.255.255 Az SQL Server 2022 (16.x) és újabb verzióiban ez az érték .0.0.0.0
  2. 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.

  1. 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;
    GO
    
  2. Az 1. csomóponton adja meg a következő parancsot:

    sudo emacs /var/opt/mssql/secrets/passwd
    

    Ez a parancs megnyitja az Emacs-szerkesztőt.

  3. Írja be a következő két sort a szerkesztőbe:

    PMLogin
    
    <password>
    
  4. Tartsa lenyomva a Ctrl billentyűt, majd nyomja le a X, majd Cbillentyűt a fájl bezárásához és mentéséhez.

  5. Hajtsa végre a következőt:

    sudo chmod 400 /var/opt/mssql/secrets/passwd
    

    a fájl zárolásához.

  6. 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.

  1. 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=true
    

    Ebben a példában NameForAGResource az AG fürterőforrásának adott egyedi nevet adja, és AGName a létrehozott AG nevét.

    A Pacemaker HA-ügynök v2 használatához hozza létre az AG-erőforrást az agv2 erőforrásügynök használatával:

    sudo pcs resource create <NameForAGResource> ocf:mssql:agv2 ag_name=<AGName> meta failure-timeout=30s promotable notify=true
    

    Az 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 az ag ü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ával agv2:

    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.

  2. 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 NameForIPResource az IP-erőforrás egyedi neve, és IPAddress az erőforráshoz hozzárendelt statikus IP-cím.

  3. 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 INFINITY
    

    Ebben a példában NameForIPResource az IP-erőforrás neve, és NameForAGResource az AG-erőforrás neve.

  4. 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 NameForIPResource az IP-erőforrás neve, és NameForAGResource az AG-erőforrás neve.