Cum putem curata fisierele binare in MySQL

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)
Puteți alege pentru a curăța pana un fisier binar folisind numele său: Aceasta va șterge toate jurnalele binare create înainte de bih001.000075 , nu va șterge fișierul binar bih001.000075.
mysql> PURGE BINARY LOGS TO 'bih001.000075';
Query OK, 0 rows affected (0.00 sec)
Sau puteți utiliza un interval de timp: Acesta va șterge toate fișierele de log create până la data "2015-01-30 22:46:26".
mysql> PURGE BINARY LOGS BEFORE '2015-01-30 22:46:26';
Query OK, 0 rows affected (0.88 sec)
O altă modalitate este de a configura o politică de curățare a acestor fișiere. Acest lucru este posibil prin setarea variabilei expire-logs-days .Această variabilă reprezenta cantitatea de zile pana când fișierele expiră în mod automat. Examplo:
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
- Este important de știut că, dacă ați activat replicarea, aveți nevoie să luați în considerare timpul de întârziere/lag pe care aveți între Master > Slave. - De asemenea, asigurați-vă că aveți backup-ul actualizat înainte de a începe curățarea fișierelor binare.