Artigo da SQL Magazine 40 - Agendamento de tarefas em MySQL

Artigo da SQL Magazine - edição 40.

Clique aqui para ler esse artigo em PDF.

Clique aqui para ler todos os artigos desta edição

Agendamento de tarefas em MySQL

 

A versão 5.1 do MySQL introduz um novo conceito chamado Events. Este recurso permite o agendamento de comandos SQL para que sejam executados em um horário pré-determinado, ou seja, você pode criar uma instrução “Execute um comando SQL todos os dias às 15:30”. Neste caso, é possível automatizar processos de manutenção do banco de dados, dentre outras tarefas, de modo a não exigir intervenções do DBA, facilitando assim o gerenciamento das informações, bem como o monitoramento das atividades do SGBD.

Vale ressaltar que a versão 5.1 encontra-se em Beta, portanto deve-se ter cuidado ao utilizá-la em ambientes de produção, ou seja, é recomendável realizar testes em uma outra base antes de colocá-lo na base principal efetivamente. De qualquer forma, podemos utilizar o Event para criarmos rotinas que auxiliem a administração do banco de dados, reduzindo o esforço de monitoramento e acompanhamento da execução do SGBD.

Este artigo tem como objetivo apresentar a sintaxe do novo recurso, e discutir situações e exemplos de uso deste mecanismo de agendamento de tarefas em MySQL. Basicamente, serão apresentados os comandos para a criação, alteração e exclusão de eventos, salientando os possíveis métodos de agendamento de tarefas. Além disto, será abordado o funcionamento da rotina de execução de eventos, bem como as principais questões relacionadas ao seu uso.

Como funciona o Event?

O MySQL possui uma thread (event_scheduler) que é responsável pela execução das tarefas que foram agendadas. Portanto, nenhuma tarefa será executada a menos que você coloque em execução o event_scheduler, sendo que é possível interrompê-lo a qualquer momento inibindo todos os agendamentos previamente configurados. Esta thread executa em background e procura pelas tarefas existentes disparando aquelas cujo horário de ativação tenha sido alcançado.

Para ativar ou desativar o event_scheduler basta executar o comando SET GLOBAL dentro de um cliente MySQL. Vale ressaltar que para isto é necessário que o usuário tenha o privilégio SUPER, caso contrário não será permitido alterar o estado desta thread. Na Listagem 1 estão os comandos para ligar e desligar o event_scheduler, salientando que em todos os exemplos foi utilizado o mysql client, que é uma ferramenta de linha de comando.

 

Listagem 1. Comandos para ligar e desligar o event_scheduler no MySQL.

# Ligando o event_scheduler

mysql>SET GLOBAL event_scheduler = 1;

 

# Desligando o event_scheduler

mysql>SET GLOBAL event_scheduler = 0;

 

O exemplo anterior ilustra a configuração do event_scheduler de forma online. Neste caso, ao reiniciar o servidor as modificações são descartadas. Entretanto, é possível determinar o comportamento do event_scheduler via arquivo de configuração, tornando assim persistente a alteração. Para isto, basta utilizar o arquivo de configuração (my.ini ou my.cnf), cuja localização varia de acordo com o sistema operacional utilizado. Por exemplo, em Linux você o encontra geralmente em /etc/my.cnf enquanto em Windows o arquivo my.ini se encontra dentro do diretório de instalação do MySQL, geralmente colocado em Arquivos de Programas\MySQL\MySQL[Versão]. Neste caso, deve-se adicionar o parâmetro referente ao " [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados