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

Ez az oktatóanyag bemutatja, hogyan hozható létre és konfigurálható rendelkezésre állási csoport (AG) linuxos SQL Serverhez. Az SQL Server 2016 -tal (13.x) és korábbi windowsos verzióival ellentétben a mögöttes Pacemaker-fürt létrehozásával vagy anélkül engedélyezheti az AG-t. A fürttel való integrációra, ha szükséges, csak később kerül sor.

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. Linux alatt mssql-conf kell használnia a funkció engedélyezéséhez. 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.

Fontos

Az AG szolgáltatást csak konfigurációs replikákhoz kell engedélyezni, még az SQL Server Expressen is.

Az mssql-conf segédprogram használata

A parancssorban adja ki 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 a következő sorok hozzáadásához:

[hadr]

hadr.hadrenabled = 1

Az SQL Server újraindítása

A rendelkezésre állási csoportok engedélyezését követően – a Windowshoz hasonlóan – újra kell indítania az SQL Servert a következő paranccsal:

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 AG végpontjai csak akkor támogatottak, ha a hitelesítéshez tanúsítványokat használnak. Vissza kell állítania a tanúsítványt az egyik példányból az összes többi példányra, amelyek ugyanabban az elérhetőségi csoportban replikaként vesznek részt. A tanúsítványfolyamatra még egy csak konfigurációs replikához is szükség van.

Végpontok létrehozása és tanúsítványok visszaállítása csak a Transact-SQL-en keresztül végezhető el. 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ő parancsokhoz (beleértve a biztonságot) elérhető lehetőségek teljes szintaxisát a következő témakör ismerteti:

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. A scp vagy egy másik segédprogram használatával másolja a tanúsítvány biztonsági másolatait az AG részét képező csomópontokra.

    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 LinAG2 és LinAGN3 bejelentkezéseit, hogy csatlakozhassanak a LinAGN1végponthoz.

    GRANT CONNECT
        ON ENDPOINT::AGEP TO LinAGN2_Login;
    GO
    
    GRANT CONNECT
        ON ENDPOINT::AGEP TO LinAGN3_Login;
    GO
    
  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 LinAG1 és LinAGN3 bejelentkezéseit, hogy csatlakozhassanak a LinAGN2végponthoz.

    GRANT CONNECT
        ON ENDPOINT::AGEP TO LinAGN1_Login;
    GO
    
    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;
    GO
    
    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 a rendelkezésre állási csoport nevét, és válassza ki a EXTERNAL vagy NONE fürt típusát a legördülő listában. A Pacemaker üzembe helyezésekor külsős eszközt kell használni. Nincs olyan speciális forgatókönyv, mint például az olvasási felskálázás. Az adatbázisszintű állapotészlelés beállításának megadása nem kötelező. Erről a lehetőségről további információt a Rendelkezésre állási csoport adatbázisszintű állapotfelismerési feladatátvételi opcióoldalon 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, amelyek részt vesznek az AG-ben. Minden adatbázisnak teljes biztonsági mentéssel kell rendelkeznie ahhoz, hogy hozzá lehessen adni 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ánynak most listázva kell lennie a Replikák megadása párbeszédpanelen. Ha külső típusú klasztert használ, a másodlagos, amely valódi másodlagos lesz, ellenőrizze, hogy a rendelkezésre állási mód megegyezik az elsődlegeséval, és a feladatátvételi mód „Külső” legyen. 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 elérhetőségi csoportok (AG-k) biztonsági mentési beállításairól további információt az Always On elérhetőségi csoport másodlagos replikáincí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. A figyelő később 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. Ne feledje, hogy a Nincs fürttípusú AG esetén az IP-címnek statikusnak kell lennie, és az elsődleges IP-címére kell állítania.

    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 a rendszer hallgatót hoz létre olvasási forgatókönyvekhez, az SSMS 17.3 vagy újabb verziója 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áadható. 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.

    3. Jelölje ki az egyes URL-címeket, és alulról válassza ki az olvasható replikákat. Többszörös kijelöléshez tartsa lenyomva a SHIFT billentyűt, vagy húzza az egérrel kijelölés közben.

  12. Válassza Következőlehetőséget.

  13. Adja meg 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); csatlakoztatni, ha manuálisan biztonsági másolatot készített, másolt és visszaállított az adatbázist a replikákon (harmadik lehetőség); vagy adja hozzá később 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, a biztonsági mentési fájlok engedélyeit a többi replikán kell beállítani. Válassza Következőlehetőséget.

  14. Az Érvényesítés párbeszédpanelen, ha nem minden jelenik meg „Sikeres” státusszal, vizsgálja meg. 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 érzékelő és a csak olvasható útválasztás az AG létrehozása után konfigurálható. Maga az AG módosítható ALTER AVAILABILITY GROUP, de a fürttípus módosítása nem végezhető el az SQL Server 2017-ben (14.x). 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 és egyéb lehetőségek az alábbi hivatkozásokon találhatók:

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 azon a csomóponton, amely az adatbázisok teljes olvasási/írási másolatát tartalmazó elsődleges replika lesz. 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 az alábbiakat 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 csatlakozzon 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 három teljes replikát mutat be, és azt, hogyan konfigurálható a csak olvasható útválasztás az Elérhetőségi Csoport (AG) kezdeti létrehozásának részeként.

  1. Hajtsa végre azon a csomóponton, amely az adatbázisok teljes olvasási/írási másolatát tartalmazó elsődleges replika lesz. 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 a rendelkezésre állási csoport neve.
    • DBName a rendelkezésre állási csoporthoz használt adatbázis neve. Vesszővel elválasztott nevek listája is lehet.
    • ListenerName olyan név, amely különbözik az alapul szolgáló kiszolgálók/csomópontok bármelyikétől. A IPAddressmellett a DNS-ben is regisztrálva lesz.
    • IPAddress egy IP-cím, amely a ListenerName-hez van társítva. Egyedi is, és nem ugyanaz, mint bármelyik kiszolgáló/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 255.255.255.255. Az SQL Server 2022 (16.x) és újabb verzióiban ez 0.0.0.0.
  2. A másik replikához csatlakoztatott lekérdezési ablakban hajtsa végre az alábbiakat 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. Az olvasási mérési forgatókönyvhöz használatos, ahol nem várható átállás. Ez létrehozza a figyelőt, amely valójában az elsődleges replika, és az írásvédett útválasztást a ciklikus időszeletelés funkcióval.

  1. Hajtsa végre azon a csomóponton, amely az adatbázisok teljes olvasási/írási másolatát tartalmazó elsődleges replika lesz. 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

Hol:

  • AGName a rendelkezésre állási csoport neve.
  • DBName a rendelkezésre állási csoporttal használni kívánt 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 használatos.
  • 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 255.255.255.255. Az SQL Server 2022 (16.x) és újabb verzióiban ez 0.0.0.0.
  1. 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 Linuxon futó SQL Server alapjául szolgáló Pacemaker magas rendelkezésre állású fürtnek hozzá kell férnie az SQL Server-példányhoz, és magának a rendelkezésre állási csoportnak az engedélyeit. 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, hogyan jelentkezzen be az SQL Serverbe.

  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 parancsot

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

    Ekkor megnyílik az Emacs-szerkesztő.

  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. Kivégez

    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 egy rendelkezésre állási csoport létre lett hozva az SQL Serverben, a megfelelő erőforrásokat a Pacemakerben is létre kell hozni, ha külső fürttípust adtak meg. Két erőforrás van társítva egy AG-hez: magához az AG-hez és egy IP-címhez. Az IP-címerőforrás konfigurálása nem kötelező, ha nem használja a figyelő funkciót, de ajánlott.

A létrehozott AG-erőforrás egy klónozottnevű erőforrástípus. Az AG-erőforrás lényegében minden csomóponton rendelkezik másolatokkal, és van egy vezérlő erőforrás, az úgynevezett . 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) üzemeltet, és egy helyreállítási átállás során promotálható a mester szerepkörbe.

Jegyzet

Ebben a cikkben szerepel a slave (alárendelt) kifejezés, amelyet a Microsoft már nem használ. Ha a kifejezés el lesz távolítva a szoftverből, eltávolítjuk a jelen cikkből.

  1. Hozza létre az AG-erőforrást a következő szintaxissal:

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

    Ahol az NameForAGResource az AG számára létrehozott fürterőforrás egyedi neve, és az AGName az AG létrehozásakor adott név.

    Az RHEL 7.7 és az Ubuntu 18.04, illetve későbbi verziókban figyelmeztetés jelenhet meg a --masterhasználatával, vagy egy olyan hibával, mint a sqlag_monitor_0 on ag1 'not configured' (6): call=6, status=complete, exitreason='Resource must be configured with notify=true'. A helyzet elkerülése érdekében használja a következőt:

    sudo pcs resource create <NameForAGResource> ocf:mssql:ag ag_name=<AGName> meta failure-timeout=30s master notify=true
    
  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>
    

    Ahol NameForIPResource az IP-erőforrás egyedi neve, IPAddress pedig az erőforráshoz rendelt statikus IP-cím.

  3. Ahhoz, hogy az IP-cím és az AG-erőforrás ugyanazon a csomóponton fusson, konfigurálni kell a helymegkötést.

    sudo pcs constraint colocation add <NameForIPResource> <NameForAGResource>-master INFINITY with-rsc-role=Master
    

    Ahol NameForIPResource az IP-erőforrás neve, a NameForAGResource pedig 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 helymeghatározási kényszer rendelési kényszert jelent, ez kényszeríti azt.

    sudo pcs constraint order promote <NameForAGResource>-master then start <NameForIPResource>
    

    Ahol NameForIPResource az IP-erőforrás neve, a NameForAGResource pedig az AG-erőforrás neve.

Következő lépés

Ebben az oktatóanyagban megtanulta, hogyan hozhat létre és konfigurálhat rendelkezésre állási csoportot linuxos SQL Serverhez. Megtanulta, hogyan:

  • Rendelkezésre állási csoportok engedélyezése.
  • AG-végpontok és -tanúsítványok létrehozása.
  • Az SQL Server Management Studio (SSMS) vagy Transact-SQL használatával hozzon létre egy AG-t.
  • Hozza létre az SQL Server bejelentkezési adatait és engedélyeit a Pacemakerhez.
  • AG-erőforrások létrehozása Pacemaker klaszterben.

A legtöbb AG-felügyelettel kapcsolatos feladat, beleértve a frissítéseket és a feladatátvételt, lásd: