Configurando o Histórico do SQL Server Agent

Um manual prático para tecnologia e serviços

Configurando o Histórico do SQL Server Agent

Tempo de leitura: 3 minutos
5/5 - (4 votos)

Oi, oi gente! 🙂

Hoje vou mostrar algo bem legal a respeito do histórico de execuções dos Jobs e como configurar a ferramenta para atender a necessidade do seu ambiente.

No SQL Server Agent é possível que você agende tarefas recorrentes que serão executadas naquela instância. Sendo backups, manutenções, cargas e importação de dados, processos de negócio ou programas externos. Onde o mesmo armazena um histórico das informações e etapas de cada tarefa, se foi executada e tempo de execução.

Por padrão, na ferramenta vem configurado um valor para o número máximo de registros de históricos a serem armazenados por tarefa e linhas de cada tarefa. Sendo 1.000 linhas para todo o histórico de JOBs e 100 linhas por cada tarefa. Se você tiver alguma rotina executada com muita frequência e outras executadas apenas mensalmente, o SQL Server excluirá os dados mais antigos e você não terá histórico disso.

Exemplo:

Vamos supor que eu tenha uma tarefa de importação de marcação de ponto que execute de 1 em 1 minuto. Em aproximadamente 16h eu já teria sobrescrito todo o histórico de jobs com apenas uma rotina. Aí vem aquela boa pessoa e te pede o histórico da manutenção feita dois dias atrás… Cadê? Não tem!

Como tudo em SQL Server, corrigir isso é fácil.

Botão direito no ‘SQL Server Agent’, vá em Properties: 

 

Nesta tela, selecione a opção History:

 

Conforme dito, abaixo vemos a configuração padrão. Aqui alteramos para o valor desejado, sendo:

Max job history log: número máximo de registros de Job

Max job history rows: número máximo de linhas por Job

 

Mas e agora, quanto colocar? Coloque um valor que faça sentido para o seu ambiente. Dependendo da quantidade de Jobs que tiver na instância, com a configuração padrão você não consegue manter um bom histórico das execuções.

Criando um cenário onde você tenha 10 Jobs de negócio que executam de 3 em 3h, 2 rotinas de manutenção semanal, 5 backups full diários e mais backups de log de 10 em 10 min para cada base.

  • Cada Job de negócio executará 8 vezes dia, sendo 80 registros;
  • 2 registros para as rotinas de manutenção, executadas uma vez na semana;
  • 5 registros de backup full;
  • 6 registros de backup de log por base a cada hora, sendo 5 bases, serão 30reg/h, 720 registros total;

No primeiro dia você tem 807 registros. No segundo dia o SQL Server já sobrescreve seu histórico de rotina de manutenção e backups full, informações importantes do seu ambiente.

Se você quer um histórico semanal, multiplique o total por 7 e altere o Max job history log para 5649. 🙂

Clique em OK e pronto!

Ah, Jéssica,  não posso simplesmente jogar o maior número possível  e ser feliz, sem ter que olhar Job por Job, contar execuções, fazer contas pra saber quanto tempo de histórico quero ter e assim alterar UMA linha nessa interface maravilhosa?

Colocar o valor máximo vai fazer com que o SQL Server não limite a ferramenta. No cenário de um único Job executando de 1 em 1 segundo, vai consumir muito espaço. Você precisa saber a frequência em que os Jobs estão sendo executados e também a quantidade de histórico que você realmente quer manter. Sem limitações, a tabela de histórico crescerá para sempre.

 

Abaixo segue link sobre o SQL Server Agent com mais detalhes da ferramenta:

https://docs.microsoft.com/pt-br/sql/ssms/agent/sql-server-agent?view=sql-server-2017

 

Caso tenham alguma dúvida, estou à disposição!

Excelente semana!

 

 

 

Nenhum comentário

Deixe uma resposta