Banco de DadosMySQLAlterações a quente de tabelas Innodb no Mysql

Alterações a quente de tabelas Innodb no Mysql

-

Publicidade

Alterações a quente de tabelas Innodb no MysqlOtimização e Alterações a quente de tabelas Innodb no Mysql 5.6 acima

Olá leitor, tudo bem?

Em resumo, com a compra da MySQL pela Oracle, alguns de nós usuários e fãs do Mysql pensamos que poderia ser seu fim. Ou que problemas estariam à vista em pouco tempo. E é com muito prazer que hoje nós usuários do banco de dados MySQL percebemos que o que ocorreu é o contrário. O banco de dados MySQL está muito bem e cada vez mais forte.

A Oracle colocou na versão 5.6 em diante do Mysql vários recursos realmente importantes vindos do oracle knowledge base, entre eles a otmização e alteração de tabelas innodb a quente.

É claro! Não é mágico! Não basta instalar a nova versão e sair mandando ver! Por isso segue uma dica do seu amigo aqui!

Seguem as etapas: Planejamento, Execução, Guardando as ferramentas!

Planejamento:

Escolha a tabela que pretende otimizar, busque-a no banco “information_schema” com o seguinte comando:
[codesyntax lang=”sql”]

SELECT *
FROM information_schema.tables
WHERE table_schema = 'NomeDoBanco'
AND table_name IN ('NomeDaTabela');

[/codesyntax]

Usei o “IN” no nome da tabela pois costumo eleger mais de uma para manutenção.
Anote os seguintes campos retornados da tabela: DATA_LENGTH e INDEX_LENGTH, some os 2.
Esse é o tamanho total da tabela em disco para o MySQL.

Precisamos agora alterar uma nova variável do MySQL da versão 5.6, que é a innodb_online_alter_log_max_size.

Busque-a assim por exemplo: SHOW VARIABLES LIKE ‘innodb_online%’; ou SELECT @@innodb_online_alter_log_max_size; E anote seu valor. Será necessário voltar mais tarde ao valor original. O valor padrão é 128Mb.

Pegue sua maior tabela a ser alterada, no meu caso a tabela tinha 1,080Gb de dados e mais 800Mb de índice. Totalizando quase 1,9Gb. Então setei essa variável com 2Gb de espaço, com o seguinte comando: SET GLOBAL innodb_online_alter_log_max_size = (2*1024*1024*1024);

Aproveito e deixo a dica: O Mysql armazena esses valores em bytes. Por isso fica chato ficar calculando. Seguindo o conceito matemático de como calcular Kb, Mb e Gb, use os multiplicadores (1024) para subir cada nível da conta. Assim de forma simples num exemplo, 800Mb = 800 * 1024(Mb) * 1024(Kb). Certo?

ALERTA: Esta operação online não é suportada para tabelas com índices FULLTEXT.

Execução:

Respire fundo e digite o comando: OPTIMIZE TABLE banco.nomeDaTabela;

Respire fundo novamente e execute.

Por que respirar fundo? Operações Alter Table e Optimize até a versão 5.5 faziam cópia, alteração e resconstrução das tabelas (ainda fazem se a variável innodb_online_alter_log_max_size não for grande o suficiente para guardar a tabela e suas alterações de uso (DML) enquanto o comando é executado.

Caso algo esteja errado e algum cliente do seu sistema tente usar um recurso que escreve ou faz JOIN para essa tabela, o sistema vai parar, conexão a conexão. O Número de conexões vai subir e um restart do banco será necessário caso não seja possível esperar o fim do comando enquanto vai matando as conexões clientes que chegam e competem pela atenção do banco. Enfim.. não é simples!

Por isso tenha bastante calma, não se afobe e execute esses comando com sabedoria e cautela.

Aqui no meu caso, enquanto executava o Optimize fiz testes de select, join e update nas tabelas e deu tudo certo. Mas são 23 horas! Não tenho nenhum cliente usando o sistema! Uma boa hora para testar a funcionalidade no banco produção.

Guardando as ferramentas:

Como perceberam, precisei retirar a variável innodb_online_alter_log_max_size de seu valor original para 2Gb. Isso não pode ficar assim, tanta memória é necessária ao servidor no dia  a dia. Por isso é necessário voltar a variavel ao patamar padrão dela:
Usando o comando: SET GLOBAL innodb_online_alter_log_max_size = (128*1024*1024); /*128Mb*/.

Conclusão:

O uso do recurso de alteração e otimização on-line de tabelas é muito útil. Mas deve sempre que possível ser feita a manutenção fora do horário de trabalho, em sua janela de manutenção. É para ser usado quando sua janela está escassa.

Aqui na Móveis Simonetti faço uso de recursos que me permitem automatizar alterações em tabelas como eventos e CRON. Além é claro de tentar antever essas alterações sempre que possível.
Mas, em caso de emergência, ou de um novo recurso no sistema que vale a pena o risco, informe seus superiores e faça! E conte conosco sempre que precisar de uma dica.

[Crédito da Imagem: Tabelas InnoDD – ShutterStock]

Marcelo Manuel Quádrio Raposohttp://rapososistemas.blogspot.com.br/
É desde 2006 Analista/Desenvolvedor na Móveis Simonetti Desenvolvedor Certificado pela Oracle MySQL Tecnólogo em Análise e Desenvolvimento de Sistemas pelo IFES É Apaixonado pela Vida, pela Família, pelo Trabalho Amante de desafios Desde 2010 vive a aventura fantástica de ser pai!

Latest news

Software para MSPs: indo além do preço ao procurar pelas ferramentas certas

Confira 5 dicas essenciais para escolher as melhores plataformas para compor o monitoramento e segurança da infraestrutura de TI dos seus clientes

Rápido, seguro e nativo: Chrome chega ao Windows no Snapdragon

"Projetamos o navegador Chrome para ser rápido, seguro e fácil de usar em desktops e dispositivos móveis, e estamos sempre procurando maneiras de levar essa experiência a mais pessoas", disse Hiroshi Lockheimer, Senior Vice President, Google.

Convergir segurança física e TI garante maior proteção para instalações, redes e negócios

Hoje, com o aumento das violações de dados em todo o mundo e as regulamentações de privacidade evoluindo rapidamente, é mais importante do que nunca que segurança física e TI trabalhem juntas para proteger instalações e infraestrutura de rede.

Evoluindo de modelos LLM para modelos LAM

Os modelos LAMs marcam um avanço fundamental na inteligência artificial, transcendendo as capacidades convencionais de geração de texto dos LLMs. Ao contrário dos LLMs que respondem com texto, os LAMs captam a intenção por trás da linguagem humana, decifrando objetivos complexos. Eles então traduzem esses objetivos em ações do mundo real, como por exemplo, filtrar e-mails com base em suas tarefas agendadas.
Publicidade

O impacto da IA generativa nas memórias RAM e SSDs: Um olhar sobre o futuro do hardware

Algoritmos de IA otimizados podem reduzir o uso de RAM ao aplicar técnicas como computação distribuída e processamento eficiente de dados, garantindo uma melhor utilização da memória disponível. Da mesma forma, um uso eficiente dos SSDs pode minimizar o impacto das operações de entrada/saída (I/O) no desempenho.

5 Insights sobre Gestão da Experiência

Empresas de referência em Gestão da Experiência crescem 190% mais que a média do seu segmento. É o que aponta o Relatório do Boston Consulting Group (BCG). E os resultados positivos não param por aí: o retorno de investimento pode ser até 55% maior para acionistas das empresas em um prazo de cinco anos e o NPS chega a aumentar cerca de 70%.

Must read

Software para MSPs: indo além do preço ao procurar pelas ferramentas certas

Confira 5 dicas essenciais para escolher as melhores plataformas para compor o monitoramento e segurança da infraestrutura de TI dos seus clientes

Rápido, seguro e nativo: Chrome chega ao Windows no Snapdragon

"Projetamos o navegador Chrome para ser rápido, seguro e fácil de usar em desktops e dispositivos móveis, e estamos sempre procurando maneiras de levar essa experiência a mais pessoas", disse Hiroshi Lockheimer, Senior Vice President, Google.
- Advertisement -

You might also likeRELATED
Recommended to you