Ir para conteúdo
  • Cadastre-se

Rotação de logs binários no MySQL (MySQL lotando HD)


Kelvin

Posts recomendados

  • L2JBr ADM

Pessoal, estou recebendo reclamações recentes de cargas em 100% de disco em pessoas que estão usando MYSQL e isso ocorre pela rotação de logs binários no MYSQL. Isso nas versões anteriores a 8.0 não se tornavam um problema devido esta função ser desabilitada, porém com o MySQL 8.0 um servidor médio em 30 dias pode facilmente lotar 100GB de disco sem necessidade. 

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

Os logs binários do MySQL contém uma espécie de histórico com todas as consultas SQL que são feitas em um servidor. Esses logs servem principalmente para fazer duas coisas: replicar esses dados em um servidor secundário (modelo mestre-escravo) e efetuar backups diferenciais.

Na configuração do MySQL, o log binário é configurado com duas linhas:

O conteúdo está oculto, favor efetuar login ou se cadastrar!

A opção log-bin indica qual o padrão de arquivos que o MySQL vai gravar. Nesse exemplo, teremos os seguintes arquivos:

  • mysql-bin.XXXXXX – Onde XXXXXX é um número sequencial, que são os logs binários em si. Vão ser vários arquivos com um tamanho máximo (por padrão, 1GB).
  • mysql-bin.index – Índice com todos os arquivos de log binário atuais.

Muitas vezes acontece da pessoa configurar isso e não tratar esses logs binários. Em um banco de dados com muito movimento, esses logs binários podem crescer assustadoramente e ocupar todo o espaço em disco.

Conheço duas formas de fazer a rotação. A que nunca deve ser feita é simplesmente apagar os arquivos de logs binários do sistema de arquivos. Como o MySQL lida com isso, nada melhor do que tratar essa limpeza com o próprio.

A primeira é utilizando a opção expire_logs_days no my.cnf. Exemplo:

O conteúdo está oculto, favor efetuar login ou se cadastrar!

Os logs que forem mais velhos do que 7 dias serão excluídos do MySQL automaticamente.

Outra forma de fazer isso é via o próprio MySQL. Conecte-se a um prompt MySQL e execute:

O conteúdo está oculto, favor efetuar login ou se cadastrar!

Com isso, dá pra ver que temos muitos logs binários e quais os seus tamanhos. Então podemos apagar da seguinte forma:

 
O conteúdo está oculto, favor efetuar login ou se cadastrar!

Isso apaga os logs binários até a data/hora especificada.

Ou pode-se fazer por nome de arquivo também:

O conteúdo está oculto, favor efetuar login ou se cadastrar!

Apaga todos os logs binários anteriores a sequência 000874.

Usar o expire_logs_days é a melhor opção, mas nada lhe impede que você utilize o crontab e o comando PURGE para se certificar que isto está sendo feito 🙂

----

Esse guia foi muito útil nas necessidades atuais e repliquei aqui para quem precisa resolver este "problema" em seu servidor MYSQL que roda em conjunto com o L2J.

Créditos para o guia: 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

  • Gostei 2
  • Amei 1
  • Obrigado 2
Link para o comentário
Compartilhar em outros sites


Todas as versões anteriores tem este problema ? Eu uso a 5.7 e nunca tive 🤔 Será que tem algum tipo de condição para ocorrer o mesmo ?

Um mundo de diversão no Lineage 2

https://www.primeworld.com.br

Discord: Em breve

Comunidade brasileira de Lineage. Interlude Remastered / High Five / Essence 

Classes remasterizadas, sistemas únicos, diversão garantida.

Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM
1 minuto atrás, Elesis disse:

Todas as versões anteriores tem este problema ? Eu uso a 5.7 e nunca tive 🤔 Será que tem algum tipo de condição para ocorrer o mesmo ?

É porque eu não revisei o texto ai parece que eu sou analfabeto, foi mal kkk.
Nas versões anteriores a 8.0 não tem isso. 

Porém, como todos os novos projetos estão migrando para versões mais atuais de MySQL/MariaDB é sempre bom ficar atento.

Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM
5 minutos atrás, Kelvin disse:

Isso nas versões anteriores a 8.0 não se tornavam um problema devido esta função esta desabilitada, porém com o MySQL 8.0 um servidor médio em 30 dias pode facilmente lotar 100GB de disco sem necessidade. 

 

3 minutos atrás, Elesis disse:

Todas as versões anteriores tem este problema ? Eu uso a 5.7 e nunca tive 🤔 Será que tem algum tipo de condição para ocorrer o mesmo ?

--

 

 

Nice tópico, Kelvin. Eu realmente nem fazia ideia disso, mas realmente pode ser um problema total e alguns poderiam tentar só apagar esses arquivos, mas poderia gerar algum dano bem maior! 😉

 

 

 

 

Você sabia que a L2JBrasil tem uma empresa de Hosting Oficial?
Conheça a L2JCenter.com

L2JBRASIL - 15 anos vendendo SS e flechas em Giran! (Trade / Adena)

Link para o comentário
Compartilhar em outros sites





×
×
  • Criar Novo...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.