Localizando e removendo arquivos antigos do mysql-bin

1

Estou executando um servidor MySQL no Windows 8. O diretório MySQL requer 118 GB de espaço e tem muitos arquivos mysql-bin de 1 GB que não foram modificados por anos, de acordo com o sistema de arquivos.

Todos os meus bancos de dados combinados não são grandes o suficiente para justificar uma área de cobertura de 118 GB, então suspeito que o servidor não tenha conseguido excluir alguns arquivos bin antigos.

Como posso excluir apenas todos os arquivos mysql-bin que não estão mais em uso pelos bancos de dados existentes?

    
por eComEvo 10.07.2014 / 02:37

1 resposta

1

A primeira coisa que você deve verificar é se o log binário ainda está ativado

mysql> SHOW BINARY LOGS;
mysql> SHOW MASTER STATUS;

Estes dois comandos lhe darão a lista de logs binários que ele vê e, em seguida, o log binário atual;

Não posso dizer como excluir os logs pelo uso do banco de dados, mas posso lhe dizer três outras maneiras:

1) APAGAR TODOS OS LOGS

O comando para mangueira todo log binário é

mysql> RESET MASTER;

Isso é tudo.

2) DELETE LOGS POR NOME DE BINLOG

Se você vir 118 logs binários, poderá selecionar qual log excluir até. Por exemplo, se os logs binários tiverem o formato mysql-bin.000118 , você poderá excluir até o 100º log usando

mysql> PURGE BINARY LOGS TO 'mysql-bin.000100'';

3) DELETE LOGS POR DATA E HORA

Suponha que você queira excluir todos os registros, mas mantenha tudo desde a meia-noite de 5 dias atrás. Execute isto:

PURGE BINARY LOGS BEFORE DATE(NOW()) + INTERVAL 0 SECOND - INTERVAL 5 DAY;

ou

PURGE BINARY LOGS BEFORE '2014-07-11 00:00:00';

Isso permitirá ao mysqld descobrir quais logs binários serão deletados.

DÊ UMA EXPERIÊNCIA !!!

    
por 11.07.2014 / 21:06

Tags