1. Glossario/

Binary log

binlog

Il binary log (o binlog) è un registro sequenziale in formato binario in cui MySQL scrive tutti gli eventi che modificano i dati: INSERT, UPDATE, DELETE e operazioni DDL. I file sono numerati progressivamente (mysql-bin.000001, mysql-bin.000002, ecc.) e gestiti tramite un file indice.

Come funziona #

Da MySQL 8.0 il binary log è abilitato di default tramite il parametro log_bin. MySQL crea un nuovo file binlog quando il server si avvia, quando il file corrente raggiunge max_binlog_size, o quando si esegue FLUSH BINARY LOGS. Supporta tre formati di registrazione: STATEMENT (registra le istruzioni SQL), ROW (registra le modifiche riga per riga) e MIXED (scelta automatica).

A cosa serve #

Il binary log ha due funzioni fondamentali:

  • Replica: in un’architettura master-slave, lo slave legge i binlog del master per replicare le stesse operazioni
  • Point-in-time recovery: dopo un restore da backup, i binlog permettono di riapplicare le modifiche fino a un momento preciso

Quando si usa #

Il binary log è attivo di default su qualsiasi installazione MySQL 8.0+. La gestione attiva (retention, purge, monitoraggio dello spazio) è necessaria per evitare che i file accumulati riempiano il disco. Il comando PURGE BINARY LOGS è il modo corretto per eliminare i file obsoleti.