Configurando o Histórico do SQL Server Agent
Tempo de leitura: 3 minutosOi, 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