Compartilhar via


Gerenciar etapas de trabalho

Uma etapa de trabalho é uma ação que o trabalho realiza em um banco de dados ou servidor. Todo trabalho deve ter, pelo menos, uma etapa de trabalho. As etapas de trabalho podem ser:

  • Programas executáveis e comandos de sistema operacional.

  • Instruções Transact-SQL, inclusive procedimentos armazenados e procedimentos armazenados estendidos.

  • Scripts PowerShell.

  • MicrosoftScripts ActiveX.

  • Tarefas de replicação.

  • Tarefas do Analysis Services.

  • Pacotes do Integration Services.

Toda etapa de trabalho é executada em um contexto de segurança específico. Se a etapa de trabalho especificar um proxy, será executada no contexto de segurança da credencial para aquele proxy. Se a etapa de trabalho não especificar um proxy, ela será executada no contexto de segurança da conta de serviço do SQL Server Agent. Apenas membros da função de servidor fixa sysadmin podem criar trabalhos que não especifiquem um proxy explicitamente.

Como as etapas de trabalho são executadas no contexto de um usuário específico do Microsoft Windows, esse usuário deve ter as permissões e a configuração necessárias para a execução da etapa de trabalho. Por exemplo, se você criar um trabalho que requeira uma letra de unidade ou um caminho UNC (convenção de nomenclatura universal), as etapas do trabalho poderão ser executadas em sua conta de usuário do Microsoft Windows durante o teste das tarefas. Porém, o usuário Windows da etapa de trabalho também deve ter as permissões necessárias, as configurações de letra de unidade ou o acesso à unidade necessária. Caso contrário, a etapa de trabalho falhará. Para evitar esse problema, assegure que o proxy de cada etapa de trabalho tenha as permissões necessárias para a tarefa executada pela etapa. Para obter mais informações, consulte Segurança e proteção (Mecanismo de Banco de Dados).

Logs de etapas de trabalho

O SQL Server Agent pode gravar a saída de algumas etapas de trabalho em um arquivo do sistema operacional ou na tabela sysjobstepslogs do banco de dados msdb. Os seguintes tipos de etapa de trabalho podem gravar a saída em ambos os destinos:

  • Programas executáveis e comandos de sistema operacional.

  • Instruções Transact-SQL.

  • Tarefas do Analysis Services.

Apenas etapas de trabalho executadas por usuários membros da função de servidor fixa sysadmin podem gravar a saída de etapas de trabalho em arquivos do sistema operacional. Se as etapas do trabalho forem executadas pelos usuários que são membros das funções de banco de dados fixa SQLAgentUserRole, SQLAgentReaderRole ou SQLAgentOperatorRole no banco de dados msdb, a saída dessas etapas de trabalho poderá ser gravada somente na tabela sysjobstepslogs.

Os logs de etapas de trabalho são eliminados automaticamente na exclusão de trabalhos ou de etapas de trabalho.

ObservaçãoObservação

O registro de tarefas de replicação e de etapas de trabalho de pacotes do Integration Services é manipulado por seus respectivos subsistemas. Não é possível usar o SQL Server Agent para configurar o registro desses tipos de etapa de trabalho.

Programas executáveis e comandos do sistema operacional como etapas de trabalho

Programas executáveis e comandos de sistema operacional podem ser usados como etapas de trabalho. Esses arquivos podem ter as extensões .bat, .cmd, .com ou .exe.

Ao usar um programa executável ou um comando de sistema operacional como etapa de trabalho, é necessário especificar:

  • O código de saída do processo retornado, se o comando teve êxito.

  • O comando a ser executado. Para executar um comando de sistema operacional, trata-se do próprio comando. No caso de um programa externo, é o nome do programa e os argumentos para o programa; por exemplo: C:\Arquivos de Programas\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe -e -q "sp_who"

    ObservaçãoObservação

    É necessário fornecer o caminho completo para o executável, caso este não esteja localizado em um diretório especificado no caminho de sistema ou no caminho para o usuário em cujo nome a etapa de trabalho é executada.

Etapas de trabalho do Transact-SQL

Ao criar uma etapa de trabalho Transact-SQL, você deve:

  • Identificar o banco de dados no qual executar o trabalho.

  • Digitar a instrução Transact-SQL a executar. A instrução pode chamar um procedimento armazenado ou um procedimento armazenado estendido.

Opcionalmente, você pode abrir um arquivo Transact-SQL existente na forma de um comando para a etapa de trabalho.

Etapas de trabalho Transact-SQL não usam proxies do SQL Server Agent. Em vez disso, a etapa de trabalho é executada como o seu proprietário ou como a conta de serviço do SQL Server Agent, caso o proprietário da etapa de trabalho seja membro da função de servidor fixa sysadmin. Os membros da função de servidor fixa sysadmin também podem especificar que as etapas de trabalho Transact-SQL sejam executadas sob o contexto de outro usuário usando o parâmetro database_user_name do procedimento armazenado sp_add_jobstep. Para obter mais informações, consulte sp_add_jobstep (Transact-SQL).

ObservaçãoObservação

Uma única etapa de trabalho Transact-SQL pode conter vários lotes. As etapas de trabalho Transact-SQL podem conter comandos GO inseridos.

Etapas de trabalho de scripts PowerShell

Ao criar uma etapa de trabalho de script PowerShell, é necessário especificar uma das duas opções a seguir como comando da etapa:

  • O texto de um script PowerShell.

  • Um arquivo de script PowerShell existente a ser aberto.

O subsistema PowerShell do SQL Server Agent abre uma sessão do PowerShell e carrega os snap-ins de PowerShell do SQL Server. O script PowerShell usado como o comando de etapa de trabalho pode fazer referência ao provedor de PowerShell do SQL Server e cmdlets. Para obter mais informações sobre como escrever scripts PowerShell usando os snap-ins de PowerShell do SQL Server, consulte SQL Server PowerShell.

Etapas de trabalho de scripts ActiveX

Observação importanteImportante

A etapa de trabalho de script ActiveX será removida do SQL Server Agent em uma futura versão do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.

Ao criar uma etapa de trabalho de scripts ActiveX, você deve:

  • Identificar a linguagem de script na qual a etapa de trabalho é gravada.

  • Gravar o script ActiveX.

Você também pode abrir um arquivo de script ActiveX existente na forma de um comando para a etapa de trabalho. Alternativamente, os comandos de script ActiveX podem ser compilados externamente (por exemplo, por meio do Microsoft Visual Basic) e executados como programas executáveis.

Quando um comando de etapa de trabalho é um script ActiveX, é possível usar o objeto SQLActiveScriptHost para imprimir a saída em um log de histórico de etapas de trabalho ou criar objetos COM. SQLActiveScriptHost é um objeto global incorporado pelo sistema host do SQL Server Agent no namespace do script. O objeto tem dois métodos (Print e CreateObject). O exemplo a seguir mostra como a criação de scripts do ActiveX funciona no Visual Basic Scripting Edition (VBScript).

' VBScript example for ActiveX Scripting job step
' Create a Dmo.Server object. The object connects to the
' server on which the script is running.

Set oServer = CreateObject("SQLDmo.SqlServer")
oServer.LoginSecure = True
oServer.Connect "(local)"
'Disconnect and destroy the server object
oServer.DisConnect
Set oServer = nothing

Etapas de trabalho de replicação

Quando você cria publicações e assinaturas que usam replicação, são criados trabalhos de replicação por padrão. O tipo de trabalho criado é determinado pelo tipo de replicação (de instantâneo, transacional ou de mesclagem) e pelas opções usadas.

Etapas de trabalho de replicação ativam um destes agentes de replicação:

  • Snapshot Agent (trabalho Snapshot)

  • Log Reader Agent (trabalho LogReader)

  • Distribution Agent (trabalho Distribution)

  • Merge Agent (trabalho Merge)

  • Queue Reader Agent (trabalho QueueReader)

Quando a replicação está configurada, é possível especificar a execução de agentes de replicação de três formas: continuamente, depois que o SQL Server Agent é iniciado; sob demanda; ou de acordo com a agenda. Para obter mais informações sobre os agentes de replicações, consulte Visão geral dos agentes de replicação..

Etapas de trabalho do Analysis Services

O SQL Server Agent oferece suporte a dois tipos distintos de etapas de trabalho do Analysis Services, etapas de trabalho de comando e de consulta.

Etapas de trabalho de comando do Analysis Services

Ao criar uma etapa de trabalho de comando do Analysis Services, é necessário:

  • Identificar o servidor OLAP do banco de dados no qual a etapa de trabalho será executada.

  • Digitar a instrução a ser executada. A instrução deve ser um XML para o método Execute do Analysis Services. A instrução talvez não tenha um envelope de SOAP completo ou um XML para o método Discover do Analysis Services. Observe que, embora o SQL Server Management Studio ofereça suporte a envelopes de SOAP completos e ao método Discover, as etapas de trabalho do SQL Server Agent não oferecem.

Etapas de trabalho de consulta do Analysis Services

Ao criar uma etapa de trabalho de consulta do Analysis Services, é necessário:

  • Identificar o servidor OLAP do banco de dados no qual a etapa de trabalho será executada.

  • Digitar a instrução a ser executada. A instrução deve ser uma consulta de linguagem MDX.

Para obter mais informações sobre MDX, consulte Conceitos básicos de consulta MDX (Analysis Services).

Pacotes do Integration Services

Ao criar uma etapa de trabalho de pacote do Integration Services, é necessário fazer o seguinte:

  • Identificar a origem do pacote.

  • Identificar o local do pacote.

  • Se arquivos de configuração forem necessários para o pacote, identificar os arquivos de configuração.

  • Se arquivos de comando forem necessários para o pacote, identificar os arquivos de comando.

  • Identificar a verificação a ser usada para o pacote. Por exemplo, você pode especificar que o pacote deve estar assinado ou ter um ID de pacote específico.

  • Identificar as fontes de dados do pacote.

  • Identificar os provedores de log do pacote.

  • Especificar variáveis e valores a serem definidos antes da execução do pacote.

  • Identificar opções de execução.

  • Adicionar ou modificar opções de linha de comando.

Observe que se você implantar o pacote no Catálogo do SSIS e especificar o Catálogo do SSIS como a origem do pacote, grande parte dessas informações de configuração será obtido automaticamente do pacote. Na guia Configuração, você pode especificar o ambiente, valores de parâmetros, valores de gerenciadores de conexões, substituições de propriedade e se o pacote é executado em um ambiente de tempo de execução de 32 bits.

Para obter mais informações sobre como criar etapas de trabalho que executam pacotes do Integration Services, consulte Trabalhos do SQL Server Agent para pacotes.

Tarefas relacionadas

Descrição

Tópico

Descreve como criar uma etapa de trabalho com um programa executável.

Criar uma etapa de trabalho CmdExec

Descreve como redefinir permissões no SQL Server Agent.

Configurar um usuário para criar e gerenciar trabalhos do SQL Server Agent

Descreve como criar uma etapa de trabalho do Transact-SQL.

Criar uma etapa de trabalho Transact-SQL

Descreve como definir opções para etapas de trabalho Transact-SQL no Microsoft SQL Server Agent.

Definir opções de etapa de trabalho Transact-SQL

Descreve como criar e executar uma etapa de trabalho do script ActiveX.

Criar uma etapa de trabalho de script ActiveX

Descreve como criar e definir etapas de trabalho do SQL Server Agent que executem comandos e consultas do SQL Server Analysis Services.

Criar uma etapa de trabalho do Analysis Services

Descreve qual ação o SQL Server deve realizar se uma falha ocorrer durante a execução do trabalho.

Definir o fluxo da etapa de trabalho segundo o êxito ou falha

Descreve como exibir detalhes de etapa de trabalho na caixa de diálogo Propriedades da Etapa de Trabalho.

Exibir informações de etapas de trabalho

Descreve como excluir um log de etapa de trabalho do SQL Server Agent.

Excluir um log de etapas de trabalho

Consulte também

Referência

dbo.sysjobstepslogs (Transact-SQL)

sp_add_job (Transact-SQL)

Conceitos

Criar trabalhos