Elosztott adatbázisok helyreállítása
Az elosztott DBMS-hez az alapvető hibák következő típusai vannak megkülönböztetve, közülük kevesen vannak:
1. Üzenet elvesztése,
2. Kommunikációs vonal hiba, vészhelyzet
3. Állítsa le az egyik csomópontot,
4. Hálózati feldarabolás.
Annak érdekében, hogy valahogy helyesen helyreállítsák az adatokat egy ilyen környezetben, vannak speciális eljárások - helyreállítási eljárások. Ugyanakkor az elosztott környezetben a problémát bonyolítja, hogy az érték atomosságára vonatkozó követelmények mind a helyi, mind a globális adatok és a globális tranzakciók esetében szükségesek.
Tekintsünk két protokollt:
1. felszámolási jegyzőkönyv;
2. helyreállítási protokoll.
Kezdjük a felszámolási protokollal. Tehát: mi az elhárítási protokoll, amikor elindul? Futtatható, amikor a koordinátor vagy a csomópont nem fogadja a várt üzenetet - időtúllépés (azaz van némi késés, amely alatt a tranzakció koordinátora, vagy bármelyik csomópont nem kapja meg a megfelelő üzenetet). 4 esetből 2 időtúllépés lehetséges.
A végrehajtott műveletek nagy száma attól függ, hogy melyikük nem kapta meg az üzenetet, és melyik üzenetet nem kapta meg. Vegye figyelembe külön a koordinátort, és külön a csomópontot.
És itt van a tranzakciók koordinátora. Ezért a koordinátor a rögzítési folyamat során a 4 állapot valamelyikében rögzítendő: kezdeti, várakozás, döntés, befejezve.
A felkészülési parancs elkészül, egy globális döntési parancsot ad ki, amelyet egy megerősítés követ.
Ez azt jelenti, hogy a Várakozás módja időzítéssel jár: A koordinátor várja a visszavonásról szóló értesítés összes csomópontjától való megerősítést, vagy elkötelezi a szubtranszekciókat. Mivel sok csomópont van, a koordinátor elküldi a parancsot, hogy minden tranzakciót elkötelezzen. És mindegyik csomópont, attól függően, hogy van-e olyan állapotban, amely rögzíti vagy nem javítja a szubtranszkálását. Ha egy adott időpontban nem kap visszaigazolást, hogy mindenki kötelezze el a tranzakciókat, el kell indítania a felszámolási eljárást.
időtúllépési állapot Meghatározta: a késleltetés ebben az esetben valójában azt jelenti, hogy a vételt a nyugtázás minden csomópontjától kell megkapni. Itt azt mondják neki: „fogjuk kijavítani, vagy nem?”, Aztán elküldi őket, ha minden kapott visszaigazolást, azt mondja, hogy „fix!”, Mert minden egyes egység tudja, hogy egy tranzakció véglegesítésre, vagy sem. Mindegyikük kezdetben önmagáért szavaz, hogy "készen állok". Vagyis ezen a szinten mindegyik üzenetet küld, hogy "készen állok". Ha a koordinátor mindenki megkapta ezt az üzenetet, akkor van egy parancs a "tranzakció elkövetésére", különben, ahogy mondtam, a felszámolási protokoll. Tehát további eljön az ideje, hogy erősítse meg a tranzakció, a lényeg az, hogy ha tetszik valamelyik csomópont ebben a pillanatban nem oldja meg a tranzakció, alakilag, a probléma marad, és nem kell a megfelelő, vagy újraindítás , vagy megáll, és így tovább, és így tovább ... de a többiek már rögzítettek valamilyen módon.
csomópont
A csomópontnak szintén van inicializáló módja. A következő állapot, amelyben előkészíthető. Ezenkívül a COMMITED, vagy ABORTED megerősítése.
Van egy ideje a kezdeti állapotban. Ebben az állapotban a csomópont az PREPARE parancs koordinátorától várja (készen áll). Ha ez a parancs nem a koordinátorból származik, akkor a csomópontnak jogában áll a tranzakció egyirányú visszaállítását végezni.
az ELŐKÉSZÍTETT állapotban az idő letelt. A csomópont már elküldött egy üzenetet a koordinátornak, hogy készen áll a tranzakció megerősítésére, legalábbis a helyi rész arra vár, hogy a koordinátor összegyűjtse ezeket az üzeneteket, és közös döntést hozzon mindenkinek, hogy megerősítse vagy visszavonja a tranzakciót. Tehát itt vár. Valójában ebben az esetben, ha lehetséges a tranzakció visszaszorítása, akkor a szomszédos csomópontot is meg lehet oldani, és megkérdezni, hogy "hogyan jutunk el oda?", "Mi az a döntésünk, amelyet ott tettünk. ”. Ez azt jelenti, hogy a csomópontok egymás közötti ilyen hatását vállalati felszámolási protokollnak nevezik.
Helyreállítási protokoll
A helyreállítási protokoll minden olyan esetben fut, amikor vissza kell állítani a csomó munkáját a hiba után. A megtett lépések az elutasított személytől függenek: a csomópont vagy a koordinátor. Egy kicsit rendben lesz.
A koordinátor meghibásodása a kezdeti állapotban. Vagyis még nem kezdte meg a tranzakciók globális elkötelezettségét, azaz visszautasította. A helyreállítás az eljárás újraindítását jelenti.
A második. A koordinátor hiánya a várakozási állapotban. A koordinátor küldött egy csapatsorozatot. "Készen áll a tranzakció elkövetésére, vagy nem készen áll (helyi)?" De valamiért nem kaptam semmit a csomópontokból. Ebben az esetben hiba. A helyreállítás a tranzakciókövetési eljárás újraindítása.
A meghatalmazott koordinátor hiánya. A koordinátor már elküldött egy üzenetet a globális elkövetésről vagy hibáról. Ezért csak újra kell indítania a koordinátort. Ha az újraindítás után megkapja az összes szükséges megerősítést, akkor úgy tekinthető, hogy a tranzakció sikeres volt, ha nem kap újraindítás után, akkor folytatni kell a felszámolási protokollt. Ami a csomópontot illeti.
Host hiba a kezdeti állapotban. Ebben az esetben a csomópont még nem szavazott.
Host hiba
Mivel az egység még nem szavazott a tranzakció befejeződött, azt a jogot, hogy egyoldalúan elutasította, és ha minden rendben van -, hogy szavazzanak a megerősítést a tranzakciót. Fontos csomópont állapotban előkészített, sőt az azt jelenti, hogy a csomópont már küldött üzenetet a koordinátor, hogy ő készen áll, hogy erősítse meg a tranzakció. Ha elküldte, és ezután meghibásodott, probléma merül fel az adatcserével kapcsolatban ebben a csomópontban. Persze, hogy ha nem is előfordulhat bármikor, és a szavazás után, és akkor valami tudott leszállni, akkor minden rendben lesz megerősíteni a tranzakciót, és ez is volt, hogy elismerik, de ha mégis megerősítik nem, akkor itt el kell kezdeni a külön csomópont felszámolásának protokollját, az adatvisszanyerést, további adatok már megerősítésre kerülnek, és itt semmit sem lehet törölni.
Csomóponthiba az ABORTED vagy COMMITED állapotban.
Ez azt jelenti:
Az elkötelezett: csomópont már megerősítette a tranzakciót, akkor valójában megszűnik, ha igen, akkor, hogy valami történt, formálisan nem történik intézkedés a közös, hogy nem szükséges, mert az adatok tárolása, és ha törött valamit a számítógépen, majd a hálózat nem érinti. A gyakorlatban jól működő rendszer blokkolási valószínűség néhány csomópont egyéb, nem túl magas, a protokoll háromfázisú zár javasolták, ami ebben az esetben nem hívják blokkoló ami blokkolja az ügylet csak egy esetben, az összes csomópont, hogy nem valószínű. Az ilyen elosztott környezet normál működéséhez valójában elég, hogy legalább egy csomópont rendelkezésre álljon. Ennek a háromfázisú rögzítésnek az a fõ elgondolása, hogy megszünteti a határozatlan várakozási idõt, amikor blokkolja a munkát. Egy harmadik fázist vezetnek be, amelyet előfeltételnek neveznek, ami a szavazás fázisai és a globális döntés elfogadása között történik.
Egy további üzenetet írunk be, egy globális üzenetet írunk be. Ez azt jelenti, hogy minden csomópont tudja, hogy mindenki szavazott a tranzakció elkövetésére, és ha valami történik egy külön csomóponton, akkor ez a csomópont problémája, és helyben fognak megoldódni.