Compartilhar via


SQL Server Agent

SQL Server Agent é um serviço Microsoft Windows que executa tarefas administrativas agendadas, que são chamadas de trabalhos no SQL Server 2014.

Neste tópico

Benefícios do SQL Server Agent

O SQL Server Agent usa o SQL Server para armazenar informações de trabalho. Os trabalhos contêm uma ou mais etapas de trabalho. Cada etapa contém sua própria tarefa; por exemplo, fazer o backup de um banco de dados.

O SQL Server Agent pode executar um trabalho com base em um agendamento, em resposta a um evento específico ou sob demanda. Por exemplo, se desejar fazer o backup de todos os servidores da empresa todo dia após o expediente, você pode automatizar essa tarefa. Agende o backup para execução após as 22:00, de segunda a sexta; se o backup encontrar um problema, o SQL Server Agent poderá registrar o evento e notificá-lo.

Observação

Por padrão, o serviço SQL Server Agent é desabilitado quando SQL Server 2014 é instalado, a menos que o usuário opte explicitamente por iniciar automaticamente o serviço.

SQL Server Agent Components

O SQL Server Agent usa os componentes a seguir para definir as tarefas a serem executadas, quando executá-las e como relatar os sucessos ou as falhas a elas relacionados.

Trabalhos

Um trabalho é uma série específica de ações que o SQL Server Agent executa. Use trabalhos para definir uma tarefa administrativa que pode ser executada uma ou mais vezes e monitorada quanto a êxito ou falha. Um trabalho pode ser executado em um servidor local ou em vários servidores remotos.

Importante

Os trabalhos do SQL Server Agent que estiverem em execução no momento de um evento de failover em uma instância de cluster de failover do SQL Server não serão retomados depois do failover em outro nó de cluster de failover. Os trabalhos do SQL Server Agent que estiverem em execução no momento de uma pausa em um nó de Hyper-V não serão retomados se a pausa causar um failover em outro nó. Os trabalhos que começam, mas não são concluídos por causa de um evento de failover, são registrados em log como iniciados, mas não mostram entradas de log adicionais referentes a conclusão ou falha. Os trabalhos do SQL Server Agent nesses cenários parecem nunca ter fim.

Os trabalhos podem ser executados de várias maneiras:

  • De acordo com uma ou mais agendas.

  • Em resposta a um ou mais alertas.

  • Pela execução do procedimento armazenado sp_start_job.

Cada ação em um trabalho é uma etapa de trabalho. Por exemplo, uma etapa de trabalho pode consistir na execução de uma instrução Transact-SQL, na execução de um pacote do SSIS ou na emissão de um comando para um servidor do Analysis Services. As etapas de trabalho são gerenciadas como parte de um trabalho.

Cada etapa de trabalho é executada em um contexto de segurança específico. Para etapas de trabalho que usam Transact-SQL, use a instrução EXECUTE AS para definir o contexto de segurança da etapa de trabalho. Para outros tipos de etapas de trabalho, use uma conta proxy para definir o contexto de segurança para a etapa de trabalho.

Agendas

Uma agenda especifica quando executar um trabalho. Mais de um trabalho pode ser executado na mesma agenda e mais de uma agenda pode ser aplicada ao mesmo trabalho. Uma agenda pode definir as condições a seguir para a hora em que um trabalho é executado:

  • Sempre que o SQL Server Agent for iniciado.

  • Sempre que a utilização de CPU do computador estiver em um nível definido como ocioso.

  • Apenas uma vez, em data e horário específicos.

  • Em uma agenda recorrente.

Para obter mais informações, veja Criar e anexar agendamentos a trabalhos.

Alertas

Um alerta é uma resposta automática a um evento específico. Por exemplo, um evento pode ser um trabalho que se inicia ou recursos do sistema que atingem um limite específico. É você quem define as condições sob as quais deve ocorrer um alerta.

Um alerta pode responder a uma das seguintes condições:

  • Eventos do SQL Server

  • Condições de desempenho do SQL Server

  • Eventos da Instrumentação de Gerenciamento do Windows (WMI) no computador em que o SQL Server Agent está executando

Um alerta pode executar as seguintes ações:

  • Notificar um ou mais operadores

  • Executar um trabalho

Para obter mais informações, consulte Alertas.

Operadores

Um operador define as informações de contato de um indivíduo responsável pela manutenção de uma ou mais instâncias do SQL Server. Em algumas empresas, as responsabilidades de operador são atribuídas a um indivíduo. Em empresas com vários servidores, vários indivíduos podem dividir as responsabilidades de operador. Um operador não contém informações de segurança nem define uma entidade de segurança.

SQL Server pode notificar operadores de alertas por meio de um ou mais dos seguintes:

  • Email

  • Pager (via email)

  • net send

Observação

Para enviar notificações usando net send, o serviço do Windows Messenger deve estar iniciado no computador em que reside o SQL Server Agent.

Importante

As opções Pager e net send serão removidas do SQL Server Agent em uma versão futura do SQL Server. Evite usar esses recursos em novo trabalho de desenvolvimento e planeje modificar os aplicativos que os usam atualmente.

Para enviar notificações a operadores usando email ou pagers, configure o SQL Server Agent para usar o Database Mail. Para obter mais informações, consulte Database Mail.

Você pode definir um operador como o alias de um grupo de indivíduos. Desse modo, todos os membros do alias serão notificados ao mesmo tempo. Para obter mais informações, consulte Operadores.

Segurança de administração do SQL Server Agent

SQL Server Agent usa as funções de banco de dados fixas SQLAgentUserRole, SQLAgentReaderRole e SQLAgentOperatorRole no banco de dados msdb para controlar o acesso a SQL Server Agent para usuários que não são membros da função de sysadmin servidor fixa. Além dessas funções de banco de dados fixas, subsistemas e proxies ajudam os administradores de bancos de dados a garantir que cada etapa de trabalho seja executada com as permissões mínimas necessárias para realizar sua tarefa.

Funções

Membros das funções de banco de dados fixas SQLAgentUserRole, SQLAgentReaderRole e SQLAgentOperatorRole em msdb e membros da função de sysadmin servidor fixa têm acesso a SQL Server Agent. Um usuário que não pertence a nenhuma dessas funções não pode usar SQL Server Agent. Para obter mais informações sobre as funções usadas pelo SQL Server Agent, confira Implementar Segurança do SQL Server Agent.

Subsistemas

Um subsistema é um objeto predefinido que representa a funcionalidade disponível a uma etapa de trabalho. Cada proxy tem acesso a um ou mais subsistemas. Os subsistemas propiciam segurança, porque delimitam o acesso à funcionalidade disponível a um proxy. Cada etapa de trabalho é executada no contexto de um proxy, com exceção das etapas de trabalho do Transact-SQL. As etapas de trabalho do Transact-SQL usam o comando EXECUTE AS para definir o contexto de segurança.

O SQL Server define os subsistemas listados na seguinte tabela:

Nome do subsistema Descrição
Script do Microsoft ActiveX Execução de uma etapa de trabalho de script ActiveX.

**Importante** O subsistema ActiveX Scripting será removido do SQL Server Agent em uma versão futura do MicrosoftSQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.
Sistema Operacional (CmdExec) Execução de um programa executável.
PowerShell Execução de uma etapa de trabalho de script PowerShell.
Distribuidor da replicação Execução de uma etapa de trabalho que ativa o Distribution Agent da replicação.
Mesclagem da replicação Execução de uma etapa de trabalho que ativa o Merge Agent da replicação.
Leitor de fila da replicação Execução de uma etapa de trabalho que ativa o Queue Reader Agent da replicação.
Instantâneo da replicação Execução de uma etapa de trabalho que ativa o Snapshot Agent da replicação.
Leitor do log de transações da replicação Execução de uma etapa de trabalho que ativa o Log Reader Agent da replicação.
Comando do Analysis Services Execute um comando do Analysis Services.
Consulta do Analysis Services Execute uma consulta do Analysis Services.
Execução do pacote SSIS Execute um pacote SSIS.

Observação

Como as etapas de trabalho do Transact-SQL não usam proxy, não há nenhum subsistema do SQL Server Agent para as etapas de trabalho do Transact-SQL.

O SQL Server Agent impõe restrições de subsistema até mesmo quando a entidade de segurança do proxy normalmente teria permissão para executar a tarefa na etapa de trabalho. Por exemplo, um proxy para um usuário que é membro da função de servidor fixa sysadmin não pode executar uma etapa de trabalho do SSIS, a menos que o proxy tenha acesso ao subsistema SSIS, mesmo que o usuário possa executar pacotes SSIS.

Proxies

O SQL Server Agent usa proxies para gerenciar contextos de segurança. Um proxy pode ser usado em mais de uma etapa de trabalho. Os membros da sysadmin função de servidor fixa podem criar proxies.

Cada proxy corresponde a uma credencial de segurança. Cada proxy pode ser associado a um conjunto de subsistemas e um conjunto de logons. O proxy só pode ser usado para etapas de trabalho que utilizem um subsistema associado ao proxy. Para criar uma etapa de trabalho que utilize um proxy específico, o proprietário do trabalho deve usar um logon associado a esse proxy ou ser membro de uma função com acesso irrestrito a proxies. Os membros da sysadmin função de servidor fixa têm acesso irrestrito a proxies. Membros de SQLAgentUserRole, SQLAgentReaderRoleou SQLAgentOperatorRole só podem usar proxies para os quais detém concessão de acesso específica. Cada usuário membro de alguma dessas funções de banco de dados fixas do SQL Server Agent deve ter acesso concedido a proxies específicos para poder criar etapas de trabalho que utilizem esses proxies.

Use as seguintes etapas para configurar o SQL Server Agent a fim de automatizar a administração do SQL Server:

  1. Estabeleça quais tarefas administrativas ou eventos de servidor ocorrem regularmente e se essas tarefas ou eventos podem ser administrados via programação. Uma tarefa é uma boa candidata para automação sempre que envolve uma sequência previsível de etapas e ocorre em um horário específico ou em resposta a um evento específico.

  2. Defina um conjunto de trabalhos, agendamentos, alertas e operadores usando o SQL Server Management Studio, os scripts do Transact-SQL ou o SMO (SQL Server Management Objects). Para obter mais informações, consulte Criar trabalhos.

  3. Execute os trabalhos SQL Server Agent que você definiu.

Observação

Para a instância padrão do SQL Server, o serviço SQL Server é chamado de SQLSERVERAGENT. Nas instâncias nomeadas, o serviço do SQL Server Agent é denominado SQLAgent$instancename.

Se você estiver executando várias instâncias de SQL Server, poderá usar a administração multisservidor para automatizar tarefas comuns em todas as instâncias. Para obter mais informações, consulte Administração automatizada em toda a empresa.

Use as seguintes tarefas para começar a usar o SQL Server Agent:

Descrição Tópico
Descreve como configurar o SQL Server Agent. Configurar o SQL Server Agent
Descreve como iniciar, parar e pausar o serviço do SQL Server Agent. Iniciar, parar ou pausar o serviço do SQL Server Agent
Descreve considerações para especificar uma conta para o serviço do SQL Server Agent. Selecionar uma conta para o Serviço do SQL Server Agent
Descreve como usar o log de erros do SQL Server Agent. Log de erros do SQL Server Agent
Descreve como usar objetos de desempenho. Usar objetos de desempenho
Descreve o Assistente de Plano de Manutenção, que é um utilitário a ser usado para ajudá-lo a criar trabalhos, alertas e operadores para automatizar a administração de uma instância do SQL Server. Usar o Assistente de Plano de Manutenção
Descreve como automatizar tarefas administrativas usando o SQL Server Agent. Tarefas de administração automatizadas (SQL Server Agent)

Consulte Também

Configuração da Área de Superfície