Мониторингът на репликацията става червен, когато VPN падне, и инстинктът е да нулираме позиция. Този инстинкт е начинът, по който мрежово прекъсване се превръща в проблем с данните. Прекъснатият път не казва нищо за това какво репликата е получила или приложила, а това са два етапа с две състояния. Прочетете ги поотделно, преди да промените каквото и да е.

Два етапа, два отделни отговора

Обикновената асинхронна реплика върши две работи. Получателят се свързва с източника, издърпва събития и ги записва локално в relay log. Приложителят чете този relay log и изпълнява събитията върху репликата. Когато пътят се скъса, получателят спира веднага, докато приложителят продължава да обработва натрупаното, което вече е на диска. Затова едно прекъсване поражда два различни въпроса: върна ли се връзката и приложена ли е натрупаната работа? Ако ги третираме като един въпрос, две състояния се усредняват в подвеждащ отговор.

Възстановяването на получателя ви казва, че пътят работи. То не казва нищо за това колко изостава приложителят или дали е срещнал грешка, докато е бил прекъснат.

Четете канала с правилната команда

В MySQL 8.4 SHOW REPLICA STATUS връща един ред за всеки конфигуриран канал, затова четете реда за канала, който имате предвид, а не първия в списъка. Replica_IO_Running разграничава свързан получател от такъв, който се свързва или е спрян, а Replica_SQL_Running описва приложителя. Четете колоните за грешки до тях, защото получател, който се свързва наново и веднага се проваля, оставя съобщение, което никой флаг за състояние няма да покаже. По-старите издания използват други имена на колони, затова не превеждайте стара рецепта само чрез преименуване на командите.

Проверете също идентичността на източника и всички конфигурирани филтри. Реплика, насочена към грешен източник или филтрирана по-тясно, отколкото мислите, съобщава за здраве, докато репликира нещо различно от очакваното.

Защо нулево закъснение може да лъже

Стойността на закъснението сравнява времевия печат на последното приложено събитие с текущото време. Когато получателят е спрян от час, приложителят може да обработи натрупаното и да стигне до края на полученото, при което числото пада до нула, макар репликата да изостава с час от източника. Метриката измерва опашката на приложителя, а не актуалността на репликата.

Вместо това сравнете изпълнените транзакции с това, което източникът има на разположение. Това сравнение оцелява при спрял получател.

Реалният прозорец за възстановяване се определя от запазването

Догонването изисква източникът да пази транзакциите, от които репликата се нуждае. Щом те бъдат изчистени, репликата не може да ги изтегли и никакво пресвързване не променя това.

С автоматично позициониране по GTID провалът е явен: репликата иска история, която източникът вече не пази, и отказва да продължи. Тогава вариантите са да вземете липсващите събития от източник, който още ги има, или да преустроите от резервно копие и да го оставите да догони. Пропускането на празнината не е догонване и оставя реплика, чиито данни тихо са непълни. Планирайте прозореца, като сравните очакваната продължителност на прекъсването със запазването на двоичния журнал в източника и темпа на промените, защото тези три числа решават дали прекъсването е възстановимо изобщо.

Проверявайте догонването, не цвета на индикатора

Възстановете пътя, включително разрешаването на имена и транспортната сигурност, после наблюдавайте дали съществуващият канал се свързва наново по собствената си политика. Дайте му определен интервал преди намеса и запишете напредъка по получаване и прилагане в двата края на този интервал. Канал, който се рестартира, и канал, който е актуален, са различни находки.

Потвърдете, че приложителят е стигнал текущата позиция на източника, а не само края на старото натрупване. Проверете дали в приложителя не чака грешка, защото едно неуспешно събитие спира напредъка, докато получателят продължава да съобщава за връзка. После запишете доказателствата: име на канала, състоянията на двата етапа, изпълнената позиция и времето. Зеленият индикатор е твърдение; позицията е факт.

Подобни статии