Upgrade MySQL v Debiane rozbije master-master replikáciu

Pri poslednom upgrade domácej farmy (laptop, router, storage, …) sa mi stala nemilá vec. Prestala mi fungovať MySQL MASTER-MASTER replikácia medzi laptopom a domácim serveríkom, ktorú použǐvam najmä kvốli zálohovaniu dát.
Stav vyzeral nasledovne, rovnaká chyba na oboch stranách:


(root@localhost) [(none)]> SHOW SLAVE STATUS \G
...
Slave_IO_Running: Yes
Slave_SQL_Running: No
...
Last_Error: Error 'You cannot 'ALTER' a log table if logging is enabled' on query. Default database: 'mysql'. Query: 'ALTER TABLE slow_log
MODIFY start_time TIMESTAMP NOT NULL,
MODIFY user_host MEDIUMTEXT NOT NULL,
MODIFY query_time TIME NOT NULL,
MODIFY lock_time TIME NOT NULL,
MODIFY rows_sent INTEGER NOT NULL,
MODIFY rows_examined INTEGER NOT NULL,
MODIFY db VARCHAR(512) NOT NULL,
MODIFY last_insert_id INTEGER NOT NULL,
MODIFY insert_id INTEGER NOT NULL,
MODIFY server_id INTEGER UNSIGNED NOT NULL,
MODIFY sql_text MEDIUMTEXT NOT NULL'
...

Riadky Slave_IO_Running a Slave_SQL_Running hovoria o tom, že jedna časť replikácie beži (Slave_IO = sťahovanie binárneho logu z druhej strany funguje), ale druhá nie. Slave_SQL teda znamenal, že stiahnutý binárny log sa neinterpretoval.

V prípade odchodu jedného z počítačov do kremíkového neba by to teda asi neznamenalo stratu dát (binárne logy boli prenesené na druhú stranu), ale mohlo to znamenať rôzne prevádzkové problémy.

Oprava replikácie bola pomerne jednoduchá. Opäť na oboch nódoch stačilo vyťukať:


(root@localhost) [mysql]> SET GLOBAL sql_slave_skip_counter = 1; START SLAVE;
Query OK, 0 rows affected (0.00 sec)

a následne opäť skontrolovať stav replikácie. Našťastie sa replikácia bezproblémovo rozbehla ďalej a následne aj utilitka mytop hlásila korektný stav replikácie.

Aha, tuto som trošku zaklamal. V Debiane ešte utilitka mytop neobsahuje môj patch na zobrazovanie stavu replikácie a niektoré ďalšie patche.
Skúste si teda stiahnuť FreeBSD verziu, prípadne si šupnite opatchovanú verziu mytop do /usr/local/bin.