SQL Server Agent

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

Neste tópico

  • Benefícios do SQL Server Agent

  • Componentes do SQL Server Agent

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

Benefícios do SQL Server Agent

O SQL Server Agent usa o SQL Server para armazenar informações de trabalhos. 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 de uma agenda, 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çãoObservação

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

Ícone de seta usado com o link Voltar ao Início[Início]

Componentes do SQL Server Agent

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

Trabalhos

Um trabalho é uma série especificada 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.

Observação importanteImportante

Os trabalhos do SQL Server Agent executados por ocasião de um evento de failover em uma instância de cluster de failover do SQL Server não são retomados depois do failover em outro nó de cluster de failover. Os trabalhos do SQL Server Agent executados por ocasião de uma pausa em um nó de Hyper-V não retomarão 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 terminado.

Os trabalhos podem ser executados de várias maneiras:

  • De acordo com uma ou mais agendas.

  • Em resposta a um ou mais alertas.

  • Por meio da 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 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 uma instrução EXECUTE AS para definir o contexto de segurança para essa etapa. 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, assim como mais de uma agenda pode aplicar o mesmo trabalho. Uma agenda pode definir as seguintes condições para acionar a execução de um trabalho:

  • 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, consulte Criar e anexar agendas para 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 e não define uma entidade de segurança.

O SQL Server pode notificar os operadores de alertas por uma ou mais destas formas:

  • Email

  • Pager (via email)

  • net send

ObservaçãoObservação

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

Observação importanteImportante

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.

Ícone de seta usado com o link Voltar ao Início[Início]

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

O 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 ao SQL Server Agent por usuários que não são membros da função de servidor fixa sysadmin. 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 no banco de dados msdb e membros da função de servidor fixa sysadmin têm acesso ao SQL Server Agent. Um usuário que não pertença a nenhuma dessas funções não pode usar o SQL Server Agent. Para obter mais informações sobre as funções usadas pelo SQL Server Agent, consulte Implementar a 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 Transact-SQL. As etapas de trabalho Transact-SQL usam o comando EXECUTE AS para definir o contexto de segurança.

O SQL Server define os subsistemas que estão listados nesta tabela:

Nome do subsistema

Descrição

Script do Microsoft ActiveX

Execução de uma etapa de trabalho de script ActiveX.

Observação importanteImportante

O subsistema de script do ActiveX será removido do SQL Server Agent em uma futura versão 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

Execução de um comando do Analysis Services.

Consulta do Analysis Services

Execução de uma consulta do Analysis Services.

Execução de pacotes do SSIS

Execução de um pacote do SSIS.

ObservaçãoObservação

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

O SQL Server Agent impõe restrições de subsistema até mesmo quando a entidade de segurança do proxy teria normalmente permissão para executar a tarefa na etapa de trabalho. Por exemplo, um proxy de um usuário que é membro da função de servidor fixa sysadmin não pode executar uma etapa de trabalho SSIS, a menos que tenha acesso ao subsistema SSIS, mesmo quando o usuário puder 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. Membros da função de servidor fixa sysadmin 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. Membros da função de servidor fixa sysadmin têm acesso irrestrito a proxies. Membros de SQLAgentUserRole, SQLAgentReaderRole ou 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.

Tarefas relacionadas

Use as seguintes etapas para configurar o SQL Server Agent para 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, agendas, alertas e operadores usando o SQL Server Management Studio, scripts Transact-SQL ou o SQL Server Management Objects (SMO). Para obter mais informações, consulte Criar trabalhos.

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

ObservaçãoObservação

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

Se estiver executando várias instâncias do SQL Server, você pode usar 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 como introdução rápida ao 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)

Ícone de seta usado com o link Voltar ao Início[Início]

Consulte também

Conceitos

Configuração da Área de Superfície