Liberando meu servidor dos logs do banco de dados (MariaDB) — Minchin.ca

Liberando meu servidor dos logs do banco de dados (MariaDB) — Minchin.ca


Meu servidor executando o Docker parece estar sempre com pouco espaço. Então finalmente fiquei irritado o suficiente para descobrir o que estava acontecendo e tentar consertar.

Primeiro, eu precisava descobrir o que estava ocupando muuuito espaço. ncdu – que já estava instalado! – foi a ferramenta escolhida. E prontamente encontrou 63.8GB (em um 256 GB dirigir) em docker/volumes/homeassistant-db/logs/mysql; todos os logs binários.

Liberando meu servidor dos logs do banco de dados (MariaDB) — Minchin.ca

Tenho registros de mais de um ano, mas nunca os olho. Então, qual a melhor forma de limpá-los?

Primeiro, examinei a rotação automática de logs, que deve manter alguns dos logs mais recentes (permitindo-me procurar problemas recentes, se necessário), mas remover automaticamente os mais antigos. Olhando para o arquivo de configuração, parece que está configurado corretamente. O arquivo de configuração está em docker/volumes/homeassistant-db/custom.cnf e as linhas de interesse:

expire_logs_days        = 10
max_binlog_size         = 100M

Isso significa que os arquivos de log têm um limite de tamanho (flexível) de 100 MB (o que parece estar sendo respeitado) e que os logs com mais de 10 dias devem ser excluídos automaticamente (o que não está sendo respeitado).

Ok, vamos ver se consigo girar os logs manualmente. Para fazer isso, preciso de um shell no contêiner MariaDB Docker; Eu tenho Portão configurado para me permitir fazer isso. Uma vez na concha, eu corro mariadb para receber uma solicitação para editar diretamente o banco de dados. A partir daí, abandonarei tudo com mais de aproximadamente 1 semana:

MariaDB ((none))> PURGE BINARY LOGS BEFORE '2025-11-22';
Query OK, 0 rows affected, 1 warning (0.005 sec)

À primeira vista, parece que funcionou. No entanto, os arquivos ainda estão no disco e há uma notação sobre um aviso. Ok, qual é o aviso?

MariaDB ((none))> SHOW WARNINGS;
+-------+------+----------------------------------------------------------------------------+
| Level | Code | Message                                                                    |
+-------+------+----------------------------------------------------------------------------+
| Note  | 1375 | 'mariadb-bin.000570' is not purged because it is the current active binlog |
+-------+------+----------------------------------------------------------------------------+
1 row in set (0.001 sec)

Ah, não, não é o “binlog ativo” (ou não deveria ser); esse é o nosso primeiro arquivo de log ainda em disco e tem mais de um ano! Mas se o servidor de banco de dados achar que é esse o caso, isso explicaria por que ele mantém todos os logs desde então.

Mas posso descartar todos os logs, já que nunca me referi a eles.

MariaDB ((none))> RESET MASTER TO 1260;
Query OK, 0 rows affected (0.058 sec)

O TO 1260 é opcional; ele define o número com o qual os novos arquivos de log devem começar. Eu configurei aqui apenas um pouco acima do arquivo de log anterior mais recente (1257).

Sucesso! Os arquivos de log desapareceram!

Próximo: adicione um sensor ao Home Assistant para monitorar o tamanho desta pasta…


Referências:



Source link

Postagens Similares

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *