SQL Server Basico 4 – Agendando um Job no SQL Server

Em um banco de dados podemos dividir basicamente todas as operações de uma forma macro em 2 tipos, as que são feitas pelo usuario, ou seja, On Demmand, e as que são agendadas para um certo periodo, com uma certa ocorrencia.
Para as operações On Demmand não ha muito o que se explicar, ja que normalmente isso esta na aplicação que faz a conexão com o banco, portanto, neste post focarei na criação de tarefas agendadas do SQL Server, ou seja, o famoso Criação de um job.
Antes de mais nada é preciso saber que toda tarefa dentro do SQL Server é agendada atravez de um serviço do windows chamado SQL Server Agent, maiores explicações sobre o mesmo estão neste post que fiz sobre Os serviços do SQL Server no ambiente Windows.
Saiba tambem que se estivermos falando de SQL Server versões 2005 ou 2008, a versão express de ambas não possuem SQL Server Agent, tornando impossivel o agendamento de tarefa de dentro do SQL Server, apenas como uma introdução do meu proximo post SQL Server Basico, nesses casos voce deve criar o arquivo .sql, manter em uma pasta e executa-lo atravez de um arquivo .bat, agora, se voce utiliza o SQL Server 2000 (Alem de precisar se atualizar…), a versão express do 2000 é chamada de MSDE e a mesma possui sim o SQL Server Agent.

Iniciando Todo o Processo

Abaixo segue um passo-a-passo de como se criar um job no SQL Server e as opções detalhadas:

Clique no “+” no SQL Server Agent

Clique com o botão direito em jobs e va em “New Job” como mostra a figura abaixo.

E uma tela conforme a seguinte deve-se abrir, veja que em Owner, ira aparecer o usuario com qual voce esteja realizando este passo-a-passo.

Aqui temos alguns campos:
Name: O Nome do job, este ira aparecer na lista de todos os jobs, portanto o nome do mesmo deve ser algo que diga bastante sobre o mesmo, que de apenas ler o nome, ja saiba pelo que ele é responsavel.
Owner: Este campo se diz respeito a qual usuario é o dono do job.
Categoria: Aqui voce pode escolher entre varias opções qual é a deste job, veja que isso não ira influenciar em sua execução, este campo serve simplismente para sua organização.

Descrição: Caso o campo nome não seja sulficiente para o proposito dito acima, voce pode colocar aqui o motivo da existencia do job.
CheckBox Enable: Se checado o job esta habilitado, se não, desabilitado.

Criando Os Steps

No menu a esquerda clicando em Steps, iremos para a tela abaixo:

Aqui em step, traduzindo literalmente, quer dizer passos, ou seja, aqui iremos colocar todos os passos, querys, scripts de PoSh (Power Shell) entre muitas outras opções que nosso job ira executar.
Ao clicar em New a tela abaixo ira aparecer:

Aqui temos as opções:
Step Name: Esse campo se diz respeito ao nome deste Step dentro deste job.
Type: Aqui segue abaixo uma lista, contendo tudo que pode ser agendado no job, o padrão é TSQL, que é um script simples.

Run as: Aqui voce só tera opções a selecionar caso possua algumas outras opções configuradas na instancia, deixarei esse assunto para outro topico.
Database: Aqui voce selecionar em qual database de sua instancia os comandos postados serão executados.
Command:Aqui sim voce deve colocar o seu comando, a chamada de sua procedure ou qualquer outra comando que voce queira executar, seja ele DDL, DML entre outros….

Clicando no menu a esquerda em Advanced iremos para a tela abaixo:

Aqui temos as opções:
On success action: A opção escolhida aqui determina o que o SQL Server Agent fara após o termino deste step caso o mesmo ocorra com sucesso.
Retry Attempts: O numero nesta opção diz quantas vezes o SQL Server agent tentara re-executar o step em caso de erro.
Retry Interval: Ja neste campo, em caso de erro, qual o intervalo entre as tenativas.
On Failure Action: Aqui vode pode determinar o que o SQL Server Agent fara caso ocorra algum erro neste step.
OutPut File: Caso voce queira ver passo a passo do que foi feito e eventualmente aonde ocorreu um erro, colocar toda a execução em um arquivo externo é a melhor opção (e para mim foi uma das questões de certificação), então neste campo, basta colocar o caminho completo adicionado do nome e a extensão do arquivo.
Append output to existing file: Esta só estara disponivel caso a opção anterior seja preenchida, com este checkbox marcado, voce esta dizendo que caso o arquivo em questao ja exista, ele ira apenas acrescentar e escrever novas informações no mesmo, caso esteja não marcado, o novo arquivo sera colocado em cima do antigo.
Log To Table: Quase a mesma opção das anteriores, porem ao invez de jogar o resultado em um arquivo externo, esta colocando o mesmo em uma tabela dentro do SQL Server.
Append output to existing entry in table: Bem parecida com a opção anterior, aqui marcado ira criar uma nova linha, nao marcado, ira concatenar com dados ja existentes (Ultima linha da tabela)
Run As User: Aqui voce pode especificar um usuario para que seja executado o job.

Agendando o JOB

Voltando a primeira tela do job, depois dos steps criado, vamos em Schedules no menu a esquerda e teremos a seguinte visão:

Ao clicar em New, voce tera a tela com todas as opções de agendamento disponivel.

Aqui podemos dividir em 6 quadros, segue abaixo explicação das mesmas:

Quadro 01

Aqui temos 2 campos:
Name: Aqui voce deve colocar o nome do agendamento, como é possivel ter mais de um agendamento, o nome deve ja resumir o que esta programado.
Schedule Type: Aqui voce pode escolher qual o tipo de agendamento, existem as opções:
Iniciar automaticamente quando o SQL Server Agent Iniciar
Iniciar quando a CPU se tornar estavel (Sem utilização)
Recorrente
Uma vez

Observação: Caso a opção Iniciar junto com o SQL Server Agent ou quando a CPU estiver estavel, nenhum outro quadro estara disponivel.

Quandro 02

Este quadro só estara disponivel quando a opção de apenas uma vez for setada no quadro 01, aqui voce deve especificar o dia e a hroa em que o job deve iniciar.

Quadro 03

Aqui voce deve indicar a frequencia com que seu job sera executado e em quais dias.

Quadro 04

Frequencia diaria, aqui voce ira configurar ou uma hroa do dia para iniciar, ou de quantas em quantas horas, iniciando em qual e terminando em qual hora voce quiser.

Quadro 05

Aqui voce pode colocar um dia limite para que seu job seja executado, caso seu job teoricamente não tera um dia final, basta colocar a opção No End Date conforme a foto.

Quadro 06

Summary, resumo, aqui voce pode ler por extenso quando seu job sera executado.

Para finalizar o agendamento de seu job, basta clicar nos OK possiveis.

Anúncios
Post a comment or leave a trackback: Trackback URL.

Comentários

  • luandotto  On 23/10/2012 at 15:02

    Meus parabens…. Execelente post….
    Se não se importar vou estar copiando para o meu blog pois sempre mantenho materiais de utilização do dia a dia e colocando as devidas referencias e agradecimento a sua pessoa.

  • jcanez  On 05/06/2013 at 17:11

    ola, segui as suas instruções mas não está funcionando e tambem não mostra nenhum erro no local que especifiquei para gerar o arquivo com as falhas.
    Há algum outro lugar que eu possa verificar onde esta a falha?

Trackbacks

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: