No momento, estou enfrentando problemas de espaço em disco com um servidor MySQL 5.7.32 que tem >500 logs binários de 1,1 GB cada.
Passei vários dias lendo sobre isso e descobri que esse PURGE BINARY LOGS
é o comando certo a ser usado, mas não consegui encontrar nenhuma informação sobre o possível impacto no desempenho ou se o servidor MySQL trava durante o processo.
Verifiquei as variáveis do servidor e descobri que:
binlog_gtid_simple_recovery
e gtid_mode
estão definidas como ON e, até onde posso perceber, isso afetaria o desempenho de forma positiva.
Alguém pode me explicar o impacto no desempenho ou os bloqueios que posso esperar ao limpar logs em pequenos lotes?
Depende
Cabe ao sistema operacional liberar 500 * 1,1 GB de espaço em disco; isso é "rápido", mas não "instantâneo".
Se você estiver preocupado com isso, olhe as datas nos arquivos, então defina
expire_logs_days
para que alguns arquivos sejam deletados. Cronometre. Extrapole. Então, decida quantos passos mais tomar para finalizar a limpeza.Não tenho muita experiência; possivelmente levará vários minutos para fazer todos os 500.
Caso mais alguém venha procurar por isso, eu queria compartilhar a experiência que tivemos.
Nosso banco de dados gera cerca de 6 a 7 GB de logs binários por dia, executados em SSD.
Eu fiz 10 logs binários por vez com
PURGE BINARY LOGS TO '<filename>'
. Como Rick James sugeriu, o processo foi rápido, mas não instantâneo - não colocou nenhuma carga extra em nosso servidor de banco de dados ou bloqueios e nosso aplicativo funcionou alegremente sem nenhum impacto perceptível no desempenho.