Replikatsiooni jälgimine muutub punaseks, kui VPN katkeb, ja instinkt on positsioon lähtestada. Just see instinkt muudab võrgukatkestuse andmeprobleemiks. Katkenud tee ei ütle midagi selle kohta, mida koopia on vastu võtnud või rakendanud, ja need on kaks etappi kahe olekuga. Loe neid eraldi enne, kui midagi muudad.

Kaks etappi, kaks eraldi vastust

Tavaline asünkroonne koopia teeb kahte tööd. Vastuvõtja ühendub allikaga, tõmbab sündmused ja kirjutab need kohapeal edastuslogisse. Rakendaja loeb seda edastuslogi ja täidab sündmused koopia peal. Kui tee katkeb, peatub vastuvõtja kohe, samal ajal kui rakendaja jätkab juba kettal oleva mahajäämuse töötlemist. Seega tekitab üks katkestus kaks erinevat küsimust: kas ühendus on tagasi ja kas kogunenud töö on rakendatud? Kui käsitleda neid ühe küsimusena, keskmistuvad kaks olekut eksitavaks vastuseks.

Vastuvõtja taastumine ütleb, et tee on üleval. See ei ütle midagi selle kohta, kui palju rakendaja maas on, ega selle kohta, kas ta tabas lahtiühendatud olles viga.

Loe kanalit õige lausega

MySQL 8.4-s tagastab SHOW REPLICA STATUS ühe rea iga seadistatud kanali kohta, seega loe selle kanali rida, mida mõtled, mitte esimest nimekirjas. Replica_IO_Running eristab ühendatud vastuvõtjat sellest, mis ühendub või on peatatud, ja Replica_SQL_Running kirjeldab rakendajat. Loe nende kõrval veaveerge, sest vastuvõtja, mis ühendub uuesti ja ebaõnnestub kohe, jätab sõnumi, mida ükski olekulipp ei näita. Vanemad versioonid kasutavad teisi veerunimesid, seega ära tõlgi vana retsepti ainult käskude ümbernimetamisega.

Kontrolli ka allika identiteeti ja kõiki seadistatud filtreid. Valele allikale suunatud või kitsamalt filtreeritud koopia teatab tervisest, samal ajal kui see replikeerib midagi muud, kui ootad.

Miks nulline mahajäämus võib valetada

Mahajäämuse väärtus võrdleb viimase rakendatud sündmuse ajatemplit praeguse ajaga. Kui vastuvõtja on olnud tund aega peatatud, võib rakendaja mahajäämuse läbi töötada ja jõuda vastuvõetu lõppu, ja siis langeb number nulli, kuigi koopia on allikast tund aega maas. Mõõdik mõõdab rakendaja järjekorda, mitte koopia ajakohasust.

Võrdle selle asemel täidetud tehinguid sellega, mis allikal saadaval on. See võrdlus peab vastu takerdunud vastuvõtjale.

Päris taastumisakna määrab säilitamine

Järelejõudmine eeldab, et allikas hoiab alles tehingud, mida koopia vajab. Kui need on kustutatud, ei saa koopia neid hankida, ja ükski ühenduse taastamine ei muuda seda.

GTID automaatse positsioneerimise korral on tõrge selgesõnaline: koopia küsib ajalugu, mida allikas enam ei hoia, ja keeldub jätkamast. Valikud on siis hankida puuduvad sündmused allikast, millel neid veel on, või taastada varukoopiast ja lasta sellel järele jõuda. Lünga vahelejätmine ei ole järelejõudmine ja see jätab koopia, mille andmed on vaikselt puudulikud. Planeeri aken, võrreldes oodatavat katkestuse kestust allika binaarlogi säilitamise ja muutuste kiirusega, sest need kolm numbrit otsustavad, kas katkestus on üldse taastatav.

Kontrolli järelejõudmist, mitte indikaatori värvi

Taasta tee, sealhulgas nimelahendus ja transpordi turvalisus, ja vaata siis, kas olemasolev kanal ühendub uuesti oma poliitika järgi. Anna sellele enne sekkumist kindel intervall ja registreeri vastuvõtu ja rakendamise edenemine selle intervalli mõlemas otsas. Kanal, mis taaskäivitub, ja kanal, mis on ajakohane, on erinevad leiud.

Kinnita, et rakendaja on jõudnud allika praegusesse positsiooni, mitte ainult vana mahajäämuse lõppu. Kontrolli, et rakendajas ei oota ükski viga, sest üks ebaõnnestunud sündmus peatab edenemise, samal ajal kui vastuvõtja jätkab ühendatuse teatamist. Seejärel registreeri tõendid: kanali nimi, mõlema etapi olekud, täidetud positsioon ja aeg. Roheline indikaator on väide; positsioon on fakt.

Seotud artiklid