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 do Transact-SQL, inclusive procedimentos armazenados e procedimentos armazenados estendidos.

  • Scripts PowerShell.

  • Microsoft Scripts ActiveX.

  • Tarefas de replicação.

  • Serviços de análise tarefas.

  • Integration Services pacotes.

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 Central de Segurança do Mecanismo de Banco de Dados SQL Server e Banco de Dados SQL do Azure.

Logs de etapas de trabalho

SQL Server O 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 do Transact-SQL.

  • Serviços de análise tarefas.

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 de trabalho forem executadas por usuários que são membros das funções de banco de dados fixas SQLAgentUserRole, SQLAgentReaderRole ou SQLAgentOperatorRole no banco de dados msdb, a saída dessas etapas só poderá ser gravada na tabela sysjobstepslogs.

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

Observaçã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:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe -e -q "sp_who"

    Observaçã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 do Transact-SQL a executar. A instrução pode chamar um procedimento armazenado ou um procedimento armazenado estendido.

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

As etapas de trabalho do 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 do Transact-SQL sejam executadas sob o contexto de outro usuário através do parâmetro database_user_name do procedimento armazenado sp_add_jobstep. Para obter mais informações, consulte sp_add_jobstep (Transact-SQL).

Observação

Uma única etapa de trabalho do Transact-SQL pode conter vários lotes. As etapas de trabalho do 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

Importante

A etapa de trabalho de script ActiveX será removida 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.

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 introduzido pelo sistema host do SQL Server Agent no namespace de 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

SQL Server O Agent dá 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 Serviços de análise , é 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 Serviços de análise Execute. A instrução talvez não tenha um envelope SOAP completo ou um XML para o método Serviços de análise Discover. Observe que, embora o SQL Server Management Studio seja compatível com envelopes SOAP completos e com o método Discover, as etapas de trabalho do SQL Server Agent não são.

Etapas de trabalho de consulta do Analysis Services

Ao criar uma etapa de trabalho de consulta do Serviços de análise , é 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á obtida 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 runtime 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.

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. Create a Transact-SQL Job Step
Descreve como definir opções para etapas de trabalho Transact-SQL no Microsoft SQL Server Agent. Define Transact-SQL Job Step Options
Descreve como criar e executar uma etapa de trabalho do script ActiveX. Create an ActiveX Script Job Step
Descreve como criar e definir etapas de trabalho do SQL Server Agent que executem comandos e consultas do SQL Server Analysis Services. Create an Analysis Services Job Step
Descreve qual ação o SQL Server deve realizar se uma falha ocorrer durante a execução do trabalho. Set Job Step Success or Failure Flow
Descreve como exibir detalhes de etapa de trabalho na caixa de diálogo Propriedades da Etapa de Trabalho. View Job Step Information
Descreve como excluir um log de etapa de trabalho do SQL Server Agent. Delete a Job Step Log

Consulte Também

dbo.sysjobstepslogs (Transact-SQL)
Criar trabalhos
sp_add_job (Transact-SQL)