Partilhar via


Gerenciar etapas de trabalho

Aplica-se a:SQL ServerAzure SQL Managed Instance

Importante

Em Instância Gerida do Azure SQL, a maioria, mas nem todas, as funcionalidades do SQL Server Agent são atualmente suportadas. Consulte as diferenças de T-SQL da Instância Gerida SQL do Azure em relação ao SQL Server para obter detalhes.

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

  • Programas executáveis e comandos do sistema operacional.

  • Transact-SQL instruções, incluindo procedimentos armazenados e procedimentos armazenados estendidos.

  • Scripts do PowerShell.

  • Scripts ActiveX da Microsoft.

  • Tarefas de replicação.

  • Tarefas do Analysis Services.

  • Pacotes dos Serviços de Integração.

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

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 que a etapa de trabalho seja executada. Por exemplo, se você criar um trabalho que exija 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 Windows durante o teste das tarefas. No entanto, o usuário do Windows para a etapa de trabalho também deve ter as permissões necessárias, configurações de letra de unidade ou acesso à unidade necessária. Caso contrário, a etapa do trabalho falhará. Para evitar esse problema, verifique se o proxy para cada etapa de trabalho tem as permissões necessárias para a tarefa que a etapa de trabalho executa. Para obter mais informações, consulte Segurança e Proteção (Mecanismo de Banco de Dados).

Registos de Etapas de Tarefas

O SQL Server Agent pode gravar a saída de algumas etapas de trabalho em um arquivo do sistema operacional ou na tabela sysjobstepslogs no 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 do sistema operacional.

  • Transact-SQL declarações.

  • Tarefas do Analysis Services.

Somente as etapas de trabalho executadas por usuários que são membros da função de servidor fixa sysadmin podem gravar a saída da etapa 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 de trabalho poderá ser gravada somente na tabela sysjobstepslogs.

Os registos de etapas de trabalho são eliminados automaticamente quando as tarefas ou as etapas de trabalho são eliminadas.

Observação

A tarefa de replicação e o registo das etapas da tarefa do pacote de Integration Services são geridos pelos seus respetivos subsistemas. Não é possível usar o SQL Server Agent para configurar o registro de etapas de trabalho para esses tipos de etapas de trabalho.

Programas executáveis e comandos Operating-System como etapas de trabalho

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

Quando você usa um programa executável ou um comando do sistema operacional como uma etapa de trabalho, você deve especificar:

  • O código de saída do processo que é retornado caso o comando tiver sido bem-sucedido.

  • O comando a ser executado. Para executar um comando do sistema operativo, basta o próprio comando. Para um programa externo, este é 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

    Você deve fornecer o caminho completo para o executável se o executável não estiver localizado em um diretório especificado no caminho do sistema ou no caminho para o usuário no qual a etapa de trabalho é executada.

Transact-SQL Passos de Trabalho

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

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

  • Digite a instrução Transact-SQL a ser executada. A instrução pode chamar um procedimento armazenado ou um procedimento armazenado estendido.

Opcionalmente, pode abrir um ficheiro Transact-SQL existente como comando para o passo da tarefa.

Transact-SQL etapas de trabalho não usam proxies do SQL Server Agent. Em vez disso, a etapa de trabalho é executada como o proprietário da etapa de trabalho ou como a conta de serviço do SQL Server Agent, caso o proprietário da etapa de trabalho seja um 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 realizadas 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ção

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

Etapas do trabalho de script do PowerShell

Ao criar uma etapa de trabalho de script do PowerShell, você deve especificar uma das duas coisas como o comando para a etapa:

  • O texto de um script do PowerShell.

  • Um arquivo de script do PowerShell existente a ser aberto.

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

Etapas do trabalho de script ActiveX

Importante

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

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

  • Identifique a linguagem de script na qual a etapa de trabalho é escrita.

  • Escreva o script ActiveX.

Você também pode abrir um arquivo de script ActiveX existente como o comando para a etapa de trabalho. Como alternativa, os comandos de script ActiveX podem ser compilados externamente (por exemplo, usando o Microsoft Visual Basic) e, em seguida, executados como programas executáveis.

Quando um comando de etapa de trabalho é um script ActiveX, pode-se usar o objeto SQLActiveScriptHost para imprimir a saída no histórico de etapas do trabalho ou criar objetos COM. SQLActiveScriptHost é um objeto global que é introduzido pelo sistema de hospedagem do SQL Server Agent no espaço de nome de script. O objeto tem dois métodos (Print e CreateObject). O exemplo a seguir mostra como o script 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 do trabalho de replicação

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

As etapas do trabalho de replicação ativam um destes agentes de replicação:

  • Agente de Snapshot (tarefa de snapshot)

  • Log Reader Agent (trabalho LogReader)

  • Agente de distribuição (trabalho de distribuição)

  • Merge Agent (trabalho de mesclagem)

  • Queue Reader Agent (trabalho do QueueReader)

Quando a replicação é configurada, você pode especificar para executar os agentes de replicação de uma das três maneiras: continuamente após o SQL Server Agent ser iniciado, sob demanda ou de acordo com uma programação. Para obter mais informações sobre agentes de replicação, consulte a seção Visão Geral dos Agentes de Replicação.

Etapas do trabalho do Analysis Services

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

Etapas do trabalho de comando do Analysis Services

Ao criar uma etapa de trabalho de comando do Analysis Services, você deve:

  • Identifique o servidor OLAP de banco de dados no qual executar a etapa de trabalho.

  • Digite a instrução a ser executada. A instrução deve ser um XML para o método Execute do Analysis Services . A instrução não pode conter um envelope SOAP completo ou um XML para Analysis Services método Discover. Observe que, ainda que o SQL Server Management Studio suporte envelopes SOAP completos e o método Discover, os passos de tarefa do SQL Server Agent não o fazem.

Etapas do trabalho de consulta do Analysis Services

Ao criar uma etapa de trabalho de consulta do Analysis Services, você deve:

  • Identifique o servidor OLAP de banco de dados no qual executar a etapa de trabalho.

  • Digite a instrução a ser executada. A instrução deve ser uma consulta de expressões multidimensionais (MDX).

Para obter mais informações sobre MDX, consulte MDX Statement Fundamentals (MDX).

Pacotes de Serviços de Integração

Ao criar uma etapa de trabalho do pacote Integration Services, você deve fazer o seguinte:

  • Identifique a origem do pacote.

  • Identifique a localização do pacote.

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

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

  • Identifique a verificação a ser usada para o pacote. Por exemplo, você pode especificar que o pacote deve ser assinado ou que o pacote deve ter uma ID de pacote específica.

  • Identifique as fontes de dados para o pacote.

  • Identifique os provedores de log para o pacote.

  • Especifique variáveis e valores a serem definidos antes de executar o pacote.

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

  • Adicione ou modifique opções de linha de comando.

Observe que, se você implantou o pacote no Catálogo do SSIS e especifica do Catálogo do SSIS como a origem do pacote, muitas dessas informações de configuração são obtidas automaticamente do pacote. Na guia de Configuração , pode especificar o ambiente, os valores dos parâmetros, os valores do gestor de ligações, as substituições de propriedades e se o pacote é executado num ambiente de execução de 32 bits.

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

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 do SQL Server Agent. Configurar um Utilizador para Criar e Gerir Trabalhos do SQL Server Agent
Descreve como criar uma etapa de trabalho Transact-SQL. Criar um Transact-SQL Passo de Trabalho
Descreve como definir opções para os passos de trabalho do Microsoft SQL Server Agent Transact-SQL. Definir Transact-SQL Opções de Etapa de Trabalho
Descreve como criar uma etapa de trabalho de script ActiveX. Criar um passo de trabalho de script ActiveX
Descreve como criar e definir etapas de trabalho do SQL Server Agent que executam comandos e consultas do SQL Server Analysis Services. Criar um passo de tarefa do Analysis Services
Descreve a ação que o SQL Server deve tomar se ocorrer uma falha durante a execução do trabalho. Definir o fluxo de sucesso ou falha da etapa de um trabalho
Descreve como exibir detalhes da etapa do trabalho na caixa de diálogo Propriedades da etapa do trabalho. Exibir informações da etapa de trabalho
Descreve como eliminar um log de passo de trabalho do SQL Server Agent. Eliminar um Registo de Passos de Trabalho

Ver também

sysjobstepslogs (Transact-SQL)
Criar Empregos
sp_add_job (Transact-SQL)