mysqlbinlog
mysqlbinlog è l’utility da riga di comando fornita con MySQL per leggere e decodificare il contenuto dei file binary log. È l’unico strumento in grado di convertire il formato binario dei binlog in output leggibile o in istruzioni SQL rieseguibili.
Come funziona #
mysqlbinlog legge i file binlog e produce output in formato testo. Supporta diversi filtri:
- Per intervallo temporale:
--start-datetimee--stop-datetimeper limitare l’output a una finestra temporale - Per database:
--databaseper filtrare gli eventi di un database specifico - Per posizione:
--start-positione--stop-positionper selezionare eventi specifici
Con il formato ROW, il flag --verbose decodifica le modifiche riga per riga in formato pseudo-SQL commentato, altrimenti l’output è un blob binario illeggibile.
A cosa serve #
mysqlbinlog è utilizzato in due scenari principali:
- Point-in-time recovery: estrarre e riapplicare gli eventi dal backup fino al momento desiderato, piping l’output direttamente nel client mysql
- Debug di replica: analizzare gli eventi per capire cosa è stato replicato, identificare transazioni problematiche o ricostruire la sequenza di operazioni che ha causato un problema
Quando si usa #
mysqlbinlog è essenziale ogni volta che serve ispezionare cosa è successo nel database dopo un incidente, o quando si deve eseguire un point-in-time recovery. Richiede accesso ai file binlog sul filesystem del server o la possibilità di connettersi al server con --read-from-remote-server.