Megosztás:


Magas rendelkezésre állás és adatvédelem a rendelkezésre állási csoport konfigurációihoz

A következőkre vonatkozik:SQL Server Linux rendszeren

Ez a cikk a Linux-kiszolgálókon futó SQL Server Always On rendelkezésre állási csoportok támogatott üzembehelyezési konfigurációit ismerteti. A rendelkezésre állási csoport támogatja a magas rendelkezésre állást és az adatvédelem. Az automatikus hibaészlelés, az automatikus feladatátvétel és a feladatátvétel utáni transzparens újracsatlakozás magas rendelkezésre állást biztosít. A szinkronizált replikák adatvédelmet biztosítanak.

Windows Server feladatátvevő fürtön (WSFC) a magas rendelkezésre állás általános konfigurációja két szinkron replikát és egy harmadik kiszolgálót vagy fájlmegosztást használ a kvórum biztosításához. A fájlmegosztási tanúsító ellenőrzi a rendelkezésre állási csoport konfigurációját – például a szinkronizálás állapotát és a replika szerepét. Ez a konfiguráció biztosítja, hogy a feladatátvételi célként kiválasztott másodlagos replika a legújabb adatokkal és rendelkezésre állási csoport konfigurációs módosításokkal rendelkezik.

A WSFC szinkronizálja a konfigurációs metaadatokat a feladatátvételi választottbírósági eljáráshoz a rendelkezésre állási csoport replikái és a fájlmegosztási tanúsító között. Ha egy rendelkezésre állási csoport nincs WSFC-n, az SQL Server-példányok a konfigurációs metaadatokat a master adatbázisban tárolják.

Egy Linux-fürt rendelkezésre állási csoportja például CLUSTER_TYPE = EXTERNAL. Nincs WSFC a feladatátvétel felügyeletére. Ebben az esetben a konfigurációs metaadatokat az SQL Server-példányok kezelik és tartják karban. Mivel ebben a fürtben nincs tanúsító kiszolgáló, egy harmadik SQL Server-példányra van szükség a konfigurációs állapot metaadatainak tárolásához. Mindhárom SQL Server-példány együtt biztosítja a metaadatok elosztott tárolását a klaszter számára.

A fürtkezelő lekérdezheti az SQL Server-példányokat a rendelkezésre állási csoportban, és vezényelheti a feladatátvételt a magas rendelkezésre állás fenntartása érdekében. Linux-clusterekben a Pacemaker a cluster manager.

Az SQL Server 2017 (14.x) CU 1-től kezdve egy rendelkezésre állási csoport CLUSTER_TYPE = EXTERNAL magas rendelkezésre állása két szinkron replikához és egy csak konfigurációs replikához engedélyezve van. A konfigurációs replika az SQL Server 2017 (14.x) CU 1 vagy újabb verzióinak (beleértve az SQL Server Express kiadást) bármely kiadásán üzemeltethető. Csak a konfigurációs replika tartja fenn a rendelkezésre állási csoport konfigurációs adatait az master adatbázisban, de nem tartalmazza a rendelkezésre állási csoportban lévő felhasználói adatbázisokat.

A konfiguráció hatása az alapértelmezett erőforrás-beállításokra

A REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT fürterőforrás-beállítás garantálja, hogy a megadott számú másodlagos replika tranzakcióadatokat ír a naplóba, mielőtt az elsődleges replika véglegesíti az egyes tranzakciókat. Külső fürtkezelő használata esetén ez a beállítás hatással van a magas rendelkezésre állásra és az adatvédelemre is. A beállítás alapértelmezett értéke a fürterőforrás létrehozásakor használt architektúrától függ. Amikor telepíti az SQL Server erőforrásügynökét – mssql-server-ha – és létrehoz egy fürterőforrást a rendelkezésre állási csoport számára, a fürtkezelő észleli a konfigurációt, és REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT-et ehhez igazítja.

Ha a konfiguráció támogatja, az erőforrás-ügynök REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT paramétere a magas rendelkezésre állást és adatvédelemet biztosító értékre van állítva. További információkért lásd: Az SQL Server erőforrásügynökének megértése a Pacemakerhez.

A következő szakaszok a fürterőforrás alapértelmezett viselkedését ismertetik.

Válasszon ki egy rendelkezésre állási csoporttervet, amely megfelel a magas rendelkezésre állás, az adatvédelem és az olvasási skálázás konkrét üzleti követelményeinek.

Az alábbi konfigurációk a rendelkezésre állási csoport tervezési mintáit és az egyes minták képességeit ismertetik. Ezek a tervezési minták a magas rendelkezésre állású megoldásokhoz CLUSTER_TYPE = EXTERNAL rendelkezésre állási csoportokra vonatkoznak.

  • Három szinkron replika
  • két szinkron replika
  • Két szinkron replika és egy csak konfigurációs replika

Három szinkron replika

Ez a konfiguráció három szinkron replikából áll. Alapértelmezés szerint magas rendelkezésre állást és adatvédelmet biztosít. Olvasási skálázhatóságot is biztosít.

diagram három szinkron replikát ábrázol.

A három szinkron replikával rendelkező rendelkezésre állási csoport leolvashatósági skálázhatóságot, magas rendelkezésre állást és adatvédelmet biztosít. Az alábbi táblázat a rendelkezésre állás viselkedését ismerteti.

Rendelkezésre állási viselkedés olvasási kapacitás növelése Magas rendelkezésre állású &
adatvédelem
Adatvédelem
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT= 0 1 1 2
Elsődleges kimaradás Automatikus átkapcsolás. Adatvesztést okozhat. Az új elsődleges az R/W. Automatikus átkapcsolás. Az új elsődleges az R/W. Automatikus átkapcsolás. Az új elsődleges nem érhető el olvasási vagy írási tranzakciókhoz, amíg a korábbi elsődleges nem áll helyre, és mint másodlagos újra csatlakozik a rendelkezésre állási csoporthoz.
Egy másodlagos replika leállása Az elsődleges az R/W. Az olvasási lehetőségekhez elérhető másodlagos opció. Az elsődleges az R/W. Az olvasási lehetőségekhez elérhető másodlagos opció. Az elsődleges nem érhető el olvasási vagy írási tranzakciókhoz, amíg a sikertelen másodlagos helyreáll és újra csatlakozik a rendelkezésre állási csoporthoz.
Két másodlagos replika leállása Az elsődleges csak olvasáshoz érhető el, íráshoz nem, amíg az egyik másodlagos replika helyre nem áll, és újra csatlakozik a rendelkezésre állási csoporthoz. Az elsődleges csak olvasáshoz érhető el, íráshoz nem, amíg az egyik másodlagos replika helyre nem áll, és újra csatlakozik a rendelkezésre állási csoporthoz. Az elsődleges nem érhető el olvasási vagy írási tranzakciókhoz, amíg az összes sikertelen másodlagos replika helyre nem áll, és újra csatlakozik a rendelkezésre állási csoporthoz.
Elsődleges és egy másodlagos replika leállása Automatikus átkapcsolás. Adatvesztést okozhat. Az új elsődleges csak olvasáshoz érhető el, íráshoz nem, amíg az egyik másodlagos replika helyre nem áll, és újra csatlakozik a rendelkezésre állási csoporthoz. Automatikus átkapcsolás. Az új elsődleges csak olvasáshoz és íráshoz érhető el, amíg az egyik másodlagos replika helyre nem áll, és újracsatlakozik a rendelkezésre állási csoporthoz. Automatikus átkapcsolás. Az új elsődleges mindaddig nem érhető el olvasási vagy írási tranzakciókhoz, amíg a korábbi elsődleges és másodlagos replika helyre nem áll, és újracsatlakozik a rendelkezésre állási csoporthoz.

1 alapértelmezett

Két szinkron replika

Ez a konfiguráció lehetővé teszi az adatvédelem használatát. A többi rendelkezésre állási csoport konfigurációihoz hasonlóan az olvasási skálázást is engedélyezheti. A két szinkron replika konfigurációja nem biztosít automatikusan magas rendelkezésre állást. A két replikakonfiguráció csak az SQL Server 2017 (14.x) RTM-hez használható, és már nem támogatott az SQL Server 2017 (14.x) magasabb (CU1 és újabb) verzióival.

két szinkron replikát ábrázoló diagram.

A két szinkron replikával rendelkező rendelkezésre állási csoport olvasási skálázást és adatvédelmet biztosít. Az alábbi táblázat a rendelkezésre állás viselkedését ismerteti.

Rendelkezésre állási viselkedés olvasási kapacitás növelése Adatvédelem
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT= 0 1 1
Elsődleges kimaradás Automatikus átkapcsolás. Adatvesztést okozhat. Az új elsődleges az R/W. Automatikus átkapcsolás. Az új elsődleges nem érhető el olvasási vagy írási tranzakciókhoz, amíg a korábbi elsődleges helyre nem áll, és másodlagosként csatlakozik újra a rendelkezésre állási csoporthoz.
Egy másodlagos replika leállása Az elsődleges érték az adatvesztésnek kitett R/W. Az elsődleges nem érhető el olvasási vagy írási tranzakciókhoz, amíg a sikertelen másodlagos helyreáll és újra csatlakozik a rendelkezésre állási csoporthoz.

1 alapértelmezett

Két szinkron replika és csak konfigurációs replika

A két (vagy több) szinkron replikával és csak konfigurációs replikával rendelkező rendelkezésre állási csoport adatvédelemmel és magas rendelkezésre állással is rendelkezhet. Az alábbi ábra ezt az architektúrát mutatja be:

Csak konfigurációs rendelkezésre állási csoportot bemutató diagram.

  1. A felhasználói adatok szinkronizálása a másodlagos replikára. A rendelkezésre állási csoport konfigurációs metaadatait is tartalmazza.
  2. A rendelkezésre állási csoport konfigurációs metaadatainak szinkron replikációja. Nem tartalmazza a felhasználói adatokat.

A rendelkezésre állási csoport diagramjában az elsődleges replika leküldi a konfigurációs adatokat a másodlagos replikára és a csak konfigurációs replikára is. A másodlagos replika felhasználói adatokat is fogad. A csak konfigurációs replika nem fogad felhasználói adatokat. A másodlagos replika szinkron rendelkezésre állási módban van. A csak konfigurációs replika nem tartalmazza a rendelkezésre állási csoportban lévő adatbázisokat – csak a rendelkezésre állási csoport metaadatait. A konfigurációs replikához tartozó konfigurációs adatok szinkron módon vannak véglegesítve.

Jegyzet

Az SQL Server 2017 (14.x) CU 1 esetében új, csak konfigurációs replikával rendelkező rendelkezésre állási csoport. A rendelkezésre állási csoportban lévő SQL Server összes példányának az SQL Server 2017 (14.x) CU 1 vagy újabb verziójának kell lennie.

A REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT alapértelmezett értéke 0. Az alábbi táblázat a rendelkezésre állás viselkedését ismerteti.

Rendelkezésre állási viselkedés Magas rendelkezésre állású &
adatvédelem
Adatvédelem
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT= 0 1 1
Elsődleges kimaradás Automatikus átkapcsolás. Az új elsődleges az R/W. Adatvesztést okozhat. Automatikus átkapcsolás. Az új elsődleges nem érhető el olvasási vagy írási tranzakciókhoz, amíg a korábbi elsődleges helyre nem áll, és másodlagosként csatlakozik újra a rendelkezésre állási csoporthoz.
Másodlagos replika leállása Az elsődleges rendszer olvasási/írási (R/W) műveleteket végez, és ki van téve adatvesztés kockázatának (ha az elsődleges meghibásodik és nem lehet helyreállítani). Nincs automatikus átváltás, ha az elsődleges rendszer is meghibásodik. Az elsődleges nem érhető el olvasási vagy írási tranzakciókhoz, amíg a sikertelen másodlagos helyreáll és újra csatlakozik a rendelkezésre állási csoporthoz. Nincs elérhető replika, amelyre át lehetne állni, ha az elsődleges rendszer is meghibásodik.
Csak a konfigurációs replika leállása Az elsődleges az R/W. Nincs automatikus átváltás, ha az elsődleges rendszer is meghibásodik. Az elsődleges az R/W. Nincs automatikus átváltás, ha az elsődleges rendszer is meghibásodik.
Szinkron másodlagos + csak konfigurációs replika leállása A primer nem érhető el olvasási vagy írási tranzakciókhoz. Nincs automatikus feladatátvétel. A primer nem érhető el olvasási vagy írási tranzakciókhoz. Nincs elérhető replika, amelyre át lehetne állni, ha az elsődleges rendszer is meghibásodik.

1 alapértelmezett

Jegyzet

A konfigurációs replikát üzemeltető SQL Server-példány más adatbázisokat is üzemeltethet. Konfigurációs adatbázisként is részt vehet egynél több rendelkezésre állási csoport számára.

Követelmények

  • A csak konfigurációs replikával rendelkező rendelkezésre állási csoportban lévő összes replikának SQL Server 2017 (14.x) CU 1 vagy újabb verziónak kell lennie.
  • Az SQL Server bármely kiadása csak konfigurációs replikát üzemeltethet, beleértve az SQL Server Expresst is.
  • A rendelkezésre állási csoportnak az elsődleges replikán kívül legalább egy másodlagos replikára van szüksége.
  • Csak a konfigurációs replikák nem számítanak bele az SQL Server példányonkénti replikák maximális számába. Az SQL Server standard kiadása legfeljebb három replikát tesz lehetővé, az SQL Server Enterprise Edition pedig akár 9-et is lehetővé tesz.

Megfontolások

  • Rendelkezésre állási csoportonként legfeljebb egy konfigurációs replika lehet.
  • A csak konfigurációs replika nem lehet elsődleges replika.
  • A konfigurációs replika rendelkezésre állási módját nem módosíthatja. Ha csak a konfigurációs replikáról szinkronizált vagy aszinkron másodlagos replikára szeretne váltani, távolítsa el a csak konfigurációs replikát, és adjon hozzá egy másodlagos replikát a szükséges rendelkezésre állási móddal.
  • A csak konfigurációs replikák szinkronban állnak a rendelkezésre állási csoport metaadataival. Nincsenek felhasználói adatok.
  • Egy elsődleges és egy konfigurációs replikával rendelkező rendelkezésre állási csoport nem érvényes, ha nincs benne másodlagos replika.
  • Az SQL Server Express kiadás egy példányán nem hozhat létre rendelkezésre állási csoportot.

A Pacemaker SQL Server-erőforrásügynökének ismertetése

Az SQL Server 2017 (14.x) bevezetett egy funkciót a sequence_number-ról sys.availability_groups-ra, amely megmutatja, hogy a SYNCHRONOUS_COMMIT-ként megjelölt replikák naprakészek-e. sequence_number egy folytonosan növekvő bigint, amely azt jelzi, mennyire naprakész a helyi rendelkezésre állási csoport replikája a többi replikához viszonyítva a rendelkezésre állási csoportban.

Ez a szám a feladatátvételek, replikák hozzáadása vagy eltávolítása, valamint más rendelkezésreállási csoportműveletek végrehajtásakor frissül.

Az elsődleges replika frissíti a számot, majd leküldi a másodlagos replikákba. Egy naprakész másodlagos replika megegyezik sequence_number az elsődleges replikával.

Amikor a Pacemaker úgy dönt, hogy előléptet egy replikát az elsődlegesre, először értesítést küld az összes replikának a sorszám kinyerése és tárolása érdekében. Ezt az értesítést előléptetés előtti értesítésnek nevezzük. Ezután, amikor a Pacemaker előléptet egy replikát az elsődlegesre, a replika csak akkor lépteti elő magát, ha a sorszáma az összes replikából származó összes sorszám közül a legmagasabb. Ellenkező esetben elutasítja az előléptetési műveletet. Ennek a folyamatnak a használatával csak a legmagasabb sorszámú replika léptethető elő elsődlegesre, ezáltal biztosítva, hogy ne legyen adatvesztés.

Az előléptetés addig működik, amíg az előléptetéshez elérhető legalább egy replika sorszáma megegyezik az előző elsődlegesével. Az alapértelmezett viselkedés az, hogy a Pacemaker erőforrás-ügynöke automatikusan be van állítva REQUIRED_COPIES_TO_COMMIT , hogy legalább egy szinkron véglegesítési másodlagos replika naprakész legyen, és elérhető legyen az automatikus feladatátvétel céljaként. Minden monitorozási műveletnél a REQUIRED_COPIES_TO_COMMIT értékét a rendszer kiszámítja (és szükség esetén frissíti) a ("szinkron véglegesítési replikák száma" / 2) értékként. Ezután az átállás idején az erőforrás-ügynöknek (total number of replicas - required_copies_to_commit replikáknak) válaszolnia kell az előzetes kiemelési értesítésre, hogy kiemelhessen egyet közülük az elsődleges szerepkörbe. A legmagasabb sequence_number értékű replika kerül elsődleges szerepkörbe.

Vegyük például egy rendelkezésre állási csoport esetét három szinkron replikával – egy elsődleges replikával és két szinkron véglegesítési másodlagos replikával.

  • REQUIRED_COPIES_TO_COMMIT 3/2 = 1

  • Az előléptetési műveletre való válaszadáshoz szükséges replikák száma 3 – 1 = 2. Tehát két replikának kell lennie ahhoz, hogy a feladatátvétel aktiválódjon. Ha elsődleges kimaradás történik, és az egyik másodlagos replika nem válaszol, miközben csak egy másodlagos replika reagál az előléptetés előtti műveletre, az erőforrás-ügynök nem tudja garantálni, hogy a válaszoló másodlagos replikának van a legmagasabb sequence_number, és a feladatátvétel nem aktiválódik.

Felülbírálhatja az alapértelmezett viselkedést, és beállíthatja, hogy a rendelkezésre állási csoport erőforrása ne legyen automatikusan beállítva REQUIRED_COPIES_TO_COMMIT .

Fontos

Ha REQUIRED_COPIES_TO_COMMIT0 van, adatvesztést kockáztat. Ha az elsődleges szolgáltatás leáll, az erőforrás-ügynök nem indítja el automatikusan a feladatátvételt. Meg kell várnia az elsődleges helyreállítást, vagy manuálisan kell elvégeznie az átállást.

A REQUIRED_COPIES_TO_COMMIT0beállításához futtassa a következőt:

sudo pcs resource update <ag_cluster> required_copies_to_commit=0

A CRM használatával egyenértékű parancs (SUSE Linux Enterprise Serveren) a következő:

sudo crm resource param <ag_cluster> set required_synchronized_secondaries_to_commit 0

Az alapértelmezett számított értékre való visszaállításhoz futtassa a következőt:

sudo pcs resource update <ag_cluster> required_copies_to_commit=

Jegyzet

Az erőforrás tulajdonságainak frissítése miatt az összes replika leáll és újraindul. Ez a módosítás ideiglenesen lefokozza az elsődlegest másodlagosra, majd ismét előlépteti, ami ideiglenes írási elérhetetlenséget okoz. Az új érték REQUIRED_COPIES_TO_COMMIT csak a replikák újraindítása után kerül beállításra, így a pcs parancs futtatásával nem történik meg azonnal.

A magas rendelkezésre állás és az adatvédelem egyensúlya

A korábban ismertetett alapértelmezett viselkedés két szinkron replika (elsődleges és másodlagos) esetében is érvényes. A Pacemaker beállítja a REQUIRED_COPIES_TO_COMMIT értéket 1-ra, hogy a másodlagos replika mindig naprakész legyen a maximális adatvédelem érdekében.

Figyelmeztetés

Az elsődleges replika elérhetetlenségének kockázata megnő a másodlagos replika tervezett vagy nem tervezett leállása esetén. Módosíthatja az erőforrás-ügynök alapértelmezett viselkedését, és felülbírálhatja a REQUIRED_COPIES_TO_COMMIT értéket a következőre: 0

sudo pcs resource update <ag1> required_copies_to_commit=0

Ha felülbírálja ezt az értéket, az erőforrás-ügynök az új beállítást REQUIRED_COPIES_TO_COMMIT használja, és leállítja a számítást. Szükség esetén manuálisan kell frissítenie (például ha növeli a replikák számát).

Az alábbi táblázatok az elsődleges vagy másodlagos replikák leállásának eredményét írják le különböző rendelkezésre állási csoport erőforrás-konfigurációiban:

Rendelkezésre állási csoport – két szinkronizálási replika

Konfiguráció Elsődleges kimaradás Egy másodlagos replika leállása
REQUIRED_COPIES_TO_COMMIT = 0 Manuálisan kell kibocsátania egy FAILOVER.

Adatvesztést okozhat.

Az új elsődleges az R/W.
Az elsődleges érték az adatvesztésnek kitett R/W.
REQUIRED_COPIES_TO_COMMIT = 1 1 A cluster automatikusan kiadja FAILOVER

Nincs adatvesztés.

Az új elsődleges mindaddig elutasít minden kapcsolatot, amíg a korábbi elsődleges vissza nem áll, és másodlagosként nem csatlakozik a rendelkezésre állási csoporthoz.
Az elsődleges elveti az összes kapcsolatot, amíg a másodlagos helyre nem áll.

1 SQL Server-erőforrásügynököt a Pacemaker alapértelmezett viselkedéséhez.

Rendelkezésre állási csoport – három szinkronizálási replika

Konfiguráció Elsődleges kimaradás Egy másodlagos replika leállása
REQUIRED_COPIES_TO_COMMIT = 0 Manuálisan kell kibocsátania egy FAILOVER.

Adatvesztést okozhat.

Az új elsődleges az R/W.
Az elsődleges az R/W.
REQUIRED_COPIES_TO_COMMIT = 1 1 A fürt automatikusan kibocsátja a FAILOVER-t.

Nincs adatvesztés.

Az új elsődleges az R/W.
Az elsődleges az R/W.

1 SQL Server-erőforrásügynököt a Pacemaker alapértelmezett viselkedéséhez.