De ce am atât de multe fișiere binare în baza de date MySQL ? Acestea iau o mulțime de spațiu și trebuie sa scap de ele!
Nu asa de repede ! În primul rând trebuie să știți ce sunt fișierele binare și pentru ce sunt folosite:
Ce sunt acestea?
Fișierele binare conțin "evenimente" care descriu modificările de baze de date, cum ar fi crearea de tabele sau modificări de date.
La ce sunt folosite fișierele binare în MySQL ?
Replicare - fișierele binare oferă o înregistrarea de modificări de date care urmează să fie trimise la serverele Slave. Serverul Master transmite evenimentele cuprinse în fișierul binar către Slave, care executa aceste evenimente pentru a face aceleași modificări de date care au fost făcute in Master.
Operațiuni Recuperare -sunt utilizate fișierele binare. După ce copie de siguranță a fost restaurată, evenimentele din fișierele binare care au fost înregistrate după backup a fost făcută sunt re-executate. Aceste evenimente aduc baze de date la zi din punctul de unde backup-ul a fost facut.
Execuția unui server cu fișiere binare activate face performanță un pic mai lenta. Cu toate acestea, beneficiile fișierelor binare vă permite să configurați replicare și restaurare.
Deci, dacă baza de date MySQL e o baze de data de producție fișierele binare sunt foarte importante.
Acum să vedem cum o putem curata fișierele vechi în condiții de siguranță.
Să începem prin listarea fișierele binare:
mysql> SHOW BINARY LOGS;
+---------------+-----------+
| Log_name | File_size |
+---------------+-----------+
| bih001.000075 | 105819784 |
| bih001.000076 | 104881533 |
| bih001.000077 | 105052269 |
| bih001.000078 | 104876835 |
| bih001.000079 | 105226559 |
| bih001.000080 | 104857777 |
| bih001.000081 | 104857924 |
| bih001.000082 | 105398762 |
| bih001.000083 | 104990674 |
| bih001.000084 | 105127042 |
| bih001.000085 | 105057967 |
| bih001.000086 | 109000834 |
+---------------+-----------+
26 rows in set (0.04 sec)
mysql> PURGE BINARY LOGS TO 'bih001.000075';
Query OK, 0 rows affected (0.00 sec)
mysql> PURGE BINARY LOGS BEFORE '2015-01-30 22:46:26';
Query OK, 0 rows affected (0.88 sec)
mysql> SET GLOBAL expire_logs_days = 5;
--De asemenea, asigurați-vă că ați adăugat-o la fișierul conf(my.cnf), astfel încât data viitoare când reporniți instanța ea nu o sa fie pierduta.
[mysqld]
expire-logs-days=5