Eliminare i binary log su Oracle Mysql
In questo breve articolo andremo a descrivere come eliminare i binary log su Oracle Mysql.
Consideriamo di partire da una macchina Linux generica e supponiamo di aver già installato il database Oracle Mysql.
Il Log binario o binary log su Mysql o MariaDB non sono leggibili da un editor testuale, in quanto sono registrati in formato binario, per poter infatti leggere quest’ ultimi Mysql/MariaDB hanno messo a disposizione uno strumento/comando chiamato mysqlbinlog.
Accediamo alla cartella di sistema di Mysql/MariaDB
cd /var/lib/mysql
e diamo per scontato che nel file di configurazione my.cnf sono abilitati i binary log per un determinato database
log_bin=mysql-bin
log_error=mysql-bin.err
binlog_do_db=database1
a questo punto per ogni azione o comando effettuato sul motore di Mysql verranno creai i log binari
-rw-rw—- 1 mysql mysql 1073742141 Apr 23 15:21 mysql-bin.000001
-rw-rw—- 1 mysql mysql 1073741947 Apr 23 15:25 mysql-bin.000002
per poter leggere quindi questi log utilizzeremo come detto in precedenza mysqlbinlog
mysqlbinlog mysql-bin.000002
come risultato avremo
#190423 14:55:24 server id 1234 end_log_pos 1234 Query thread_id=158 exec_time=0 error_code=0
SET TIMESTAMP=1556024124/*!*/;
INSERT INTOtabella1
VALUES (1,2,3,4)
/*!*/;
nel caso in un restore di database di grandi dimensioni farà aumentare notevolmente il numero e la dimensione dei binary log, per poter eliminare o ridurre le dimensioni accediamo al motore di Mysql
sudo mysql -u root -p
ed utilizziamo l’istruzione PURGE BINARY LOGS, in questo modo
mysql> PURGE BINARY LOGS BEFORE '2019-04-23 09:40:59';
tra apici andremo ad inserire fino a dove il motore dovrà eliminare i log, oppure
mysql> PURGE BINARY LOGS TO 'mysql-bin.000002'
significa eliminare fino al log binario 000002.