MySQL-replikáció VPN-szakadás után: először olvassa el mindkét szakaszt
A megszakadt útvonal nem elveszett tranzakciók. Olvassa külön a fogadót és az alkalmazót, majd ellenőrizze, mit tart még a forrás.
A replikáció felügyelete pirosra vált, amikor a VPN megszakad, és az ösztön az, hogy visszaállítsunk egy pozíciót. Ez az ösztön az, ahogy egy hálózati megszakítás adatproblémává válik. Egy leesett útvonal semmit sem mond arról, mit kapott vagy alkalmazott a replika, és ezek két szakasz két állapottal. Olvassa el őket külön, mielőtt bármit megváltoztat.
Két szakasz, két külön válasz
Egy hagyományos aszinkron replika két munkát végez. A fogadó csatlakozik a forráshoz, lehúzza az eseményeket és helyben a továbbítási naplóba írja őket. Az alkalmazó olvassa ezt a naplót, és végrehajtja az eseményeket a replikán. Amikor az útvonal elszakad, a fogadó azonnal leáll, míg az alkalmazó tovább dolgozik a lemezen már meglévő hátralékon. Egy kiesés tehát két különböző kérdést szül: visszatért-e a kapcsolat, és alkalmazásra került-e a felgyűlt munka? Ha egyetlen kérdésként kezeljük őket, két állapot átlagolódik félrevezető válasszá.
A fogadó helyreállása azt mondja, hogy az útvonal él. Semmit sem mond arról, mennyire van lemaradva az alkalmazó, vagy hogy találkozott-e hibával a kapcsolat hiánya alatt.
A csatornát a megfelelő utasítással olvassa
A MySQL 8.4-ben a SHOW REPLICA STATUS konfigurált csatornánként egy sort ad vissza, ezért a listán szereplő első helyett a szándékolt csatorna sorát olvassa. A Replica_IO_Running megkülönbözteti a csatlakozott fogadót a csatlakozótól vagy leállttól, a Replica_SQL_Running pedig az alkalmazót írja le. Olvassa mellette a hibaoszlopokat is, mert egy újracsatlakozó és azonnal meghiúsuló fogadó olyan üzenetet hagy, amelyet semmilyen állapotjelző nem mutat meg. A régebbi kiadások más oszlopneveket használnak, ezért ne fordítson le egy régi receptet csupán a parancsok átnevezésével.
Ellenőrizze a forrás azonosságát és a beállított szűrőket is. A rossz forrásra mutató, vagy a gondoltnál szűkebben szűrt replika egészséget jelent, miközben mást replikál, mint amire számít.
Miért hazudhat a nulla késleltetés
A késleltetési érték az utoljára alkalmazott esemény időbélyegét hasonlítja össze a jelenlegi idővel. Ha a fogadó egy órán át állt, az alkalmazó feldolgozhatja a hátralékot és elérheti a kapottak végét, ekkor a szám nullára esik, pedig a replika egy órával a forrás mögött van. A mérőszám az alkalmazó sorát méri, nem a replika naprakészségét.
Hasonlítsa össze inkább a végrehajtott tranzakciókat azzal, ami a forrásnál elérhető. Ez az összehasonlítás túléli az elakadt fogadót.
A valódi helyreállítási ablakot a megőrzés szabja meg
A felzárkózáshoz kell, hogy a forrás még tartsa a replika által igényelt tranzakciókat. Amint azokat törlik, a replika nem tudja letölteni őket, és ezen semmilyen újracsatlakozás nem változtat.
GTID automatikus pozicionálással a hiba egyértelmű: a replika olyan előzményt kér, amit a forrás már nem tart, és megtagadja a folytatást. Ilyenkor a lehetőségek: a hiányzó eseményeket olyan forrásból beszerezni, amely még rendelkezik velük, vagy biztonsági mentésből újraépíteni és hagyni felzárkózni. A hézag átugrása nem felzárkózás, és olyan replikát hagy maga után, amelynek adatai csendben hiányosak. Tervezze meg az ablakot úgy, hogy a várható kiesési időt összeveti a forrás bináris naplójának megőrzésével és a változási rátával, mert ez a három szám dönti el, hogy egy kiesés egyáltalán helyreállítható-e.
A felzárkózást ellenőrizze, ne a jelző színét
Állítsa helyre az útvonalat, beleértve a névfeloldást és a szállítási biztonságot, majd figyelje, hogy a meglévő csatorna saját szabályzata szerint újracsatlakozik-e. Adjon neki meghatározott intervallumot a beavatkozás előtt, és jegyezze fel a fogadás és az alkalmazás előrehaladását az intervallum mindkét végén. Egy újrainduló csatorna és egy naprakész csatorna különböző leletek.
Erősítse meg, hogy az alkalmazó elérte a forrás jelenlegi pozícióját, nem csupán a régi hátralék végét. Ellenőrizze, hogy nem vár-e hiba az alkalmazóban, mert egyetlen meghiúsult esemény megállítja az előrehaladást, miközben a fogadó tovább jelenti a kapcsolatot. Ezután jegyezze fel a bizonyítékokat: csatornanév, mindkét szakasz állapota, a végrehajtott pozíció és az idő. A zöld jelző állítás; a pozíció tény.