Partilhar via


Gerenciar etapas do 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 Diferenças de T-SQL da Instância Gerenciada do Azure SQL em relação ao SQL Server ou as limitações de trabalho do SQL Agent na Instância Gerenciada do SQL 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 avançados.
  • Scripts do PowerShell.
  • 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 fixada 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 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 criares uma tarefa que exija uma letra de unidade ou um caminho UNC (Convenção de Nomenclatura Universal), os passos da tarefa poderão ser executados na tua conta de utilizador do Windows durante o teste das tarefas. No entanto, o utilizador do Windows para o passo de tarefa também deve ter as permissões necessárias, as configurações da 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 para o Mecanismo de Banco de Dados do SQL Server e o Banco de Dados SQL do Azure.

Registros de etapas do trabalho

O SQL Server Agent pode gravar a sysjobstepslogs saída de algumas etapas de trabalho em um arquivo do sistema operacional ou na tabela no msdb banco de dados. 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 do trabalho executadas por usuários que são membros da função fixa de servidor 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 sejam membros das seguintes funções de banco de dados fixas no banco de dados, a msdb saída dessas etapas de trabalho poderá ser gravada somente na sysjobstepslogs tabela:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

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 registo de passos de tarefa para esses tipos de passos de tarefa.

Programas executáveis e comandos do sistema operacional 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\160\Tools\Binn\sqlcmd.exe -e -q "sp_who"
    

    Forneça o caminho completo para o executável se o executável não estiver localizado num diretório especificado na variável de ambiente PATH do sistema ou forneça o caminho para o usuário sob o qual a etapa de trabalho é executada.

Transact-SQL etapas de tarefas

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

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

  2. 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.

Sugestão

As etapas de trabalho T-SQL em trabalhos do SQL Server Agent modificam o valor de TEXTSIZE, para limitar o comprimento de determinadas colunas nos conjuntos de resultados. Esse comportamento pode levar a resultados inesperados. Por exemplo, SELECT consultas que funcionam como esperado no SQL Server Management Studio podem retornar valores de coluna truncados quando executadas por meio do SQL Server Agent. Para evitar truncamento, defina TEXTSIZE na consulta executada pela etapa de trabalho T-SQL.

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 Transact-SQL passos de trabalho sejam executados no contexto de outro usuário, utilizando o parâmetro database_user_name do procedimento armazenado sp_add_jobstep. Para obter mais informações, consulte sp_add_jobstep.

Observação

Uma única etapa de trabalho Transact-SQL pode conter vários lotes. Transact-SQL etapas do trabalho podem conter comandos incorporados 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 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 (tarefa 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 de 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:

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

  2. 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 pode não conter um envelope SOAP completo ou um método XML for Analysis Services Discover . Embora o SQL Server Management Studio ofereça suporte a envelopes SOAP completos e ao método Discover , as etapas de trabalho do SQL Server Agent não.

Etapas do trabalho de consulta do Analysis Services

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

  1. Identifique o servidor OLAP de banco de dados no qual executar a etapa de trabalho.
  2. 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 executar as seguintes etapas:

  1. Identifique a origem do pacote.

  2. Identifique a localização do pacote.

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

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

  5. 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.

  6. Identifique as fontes de dados para o pacote.

  7. Identifique os provedores de log para o pacote.

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

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

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

Se você implantou o pacote no Catálogo SSIS e especificou o Catálogo SSIS como a origem do pacote, muitas dessas informações de configuração serã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 Artigo
Descreve como criar uma etapa de trabalho com um programa executável. Criar uma etapa de tarefa CmdExec
Descreve como redefinir permissões do SQL Server Agent. Configurar um usuário para criar e gerenciar 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 Opções de Passo de Trabalho Transact-SQL
Descreve como criar um passo de trabalho de script ActiveX. Criar uma etapa 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 do 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