Partilhar via


Registo de Serviços de Integração (SSIS)

Aplica-se a:SQL Server SSIS Integration Runtime em Azure Data Factory

O SQL Server Integration Services inclui fornecedores de registo que pode usar para implementar o registo em pacotes, contentores e tarefas. Com o registo, pode capturar informação em tempo de execução sobre um pacote, ajudando-o a auditar e resolver problemas cada vez que é executado. Por exemplo, um registo pode registar o nome do operador que executou o pacote e a hora em que o pacote começou e terminou.

Pode configurar o âmbito do registo que ocorre durante a execução de um pacote no servidor de Serviços de Integração. Para mais informações, consulte Ativar o Registo para Execução de Pacotes no Servidor SSIS.

Também pode incluir registos ao executar um pacote utilizando a ferramenta de linha de comandos dtexec. Para mais informações sobre os argumentos do prompt de comandos que suportam o registo, consulte a Utilidade dtexec.

Configurar o Login nas Ferramentas de Dados do SQL Server

Os registos estão associados a pacotes e são configurados ao nível do pacote. Cada tarefa ou contentor num pacote pode registar informação em qualquer registo de pacotes. As tarefas e contentores de um pacote podem ser ativados para registo mesmo que o próprio pacote não esteja. Por exemplo, pode ativar o login numa tarefa Executar SQL sem ativar o login no pacote pai. Um pacote, contentor ou tarefa pode escrever em múltiplos registos. Pode ativar o login apenas no pacote, ou pode optar por ativar o login em qualquer tarefa ou contentor individual que o pacote inclua.

Quando adicionas o registo a um pacote, escolhes o fornecedor do registo e a localização do registo. O fornecedor do registo especifica o formato dos dados do registo: por exemplo, uma base de dados SQL Server ou ficheiro de texto.

Os Serviços de Integração incluem os seguintes fornecedores de registo:

  • O fornecedor de registo de ficheiros de texto, que escreve entradas de registo em ficheiros de texto ASCII em formato de valor separado por vírgulas (CSV). A extensão padrão do nome de ficheiro deste fornecedor é .log.

  • O fornecedor de registos SQL Server Profiler, que escreve traços que podes visualizar usando o SQL Server Profiler. A extensão padrão do nome de ficheiro deste fornecedor é .trc.

    Observação

    Não pode usar o fornecedor de registos SQL Server Profiler num pacote que esteja a correr em modo de 64 bits.

  • O fornecedor de registos SQL Server, que escreve entradas de registo na tabela sysssislog numa base de dados SQL Server. Pode experienciar diminuição de desempenho se aceder a uma base de dados do sistema, como master ou msdb. Uma boa prática é criar uma base de dados separada para registos de Serviços de Integração.

  • O fornecedor do registo de eventos do Windows, que escreve entradas no registo de aplicações no registo de eventos do Windows no computador local.

  • O fornecedor de registo de ficheiros XML, que escreve ficheiros de registo num ficheiro XML. A extensão padrão do nome de ficheiro deste fornecedor é .xml.

Se adicionar um fornecedor de registo a um pacote ou configurar o registo programáticamente, pode usar um ProgID ou um ClassID para identificar o fornecedor de registo, em vez de usar os nomes que o SSIS Designer apresenta na caixa de diálogo Configurar Registos SSIS .

A tabela seguinte lista o ProgID e o ClassID para os fornecedores de registos que os Serviços de Integração incluem, bem como a localização dos registos para onde os fornecedores de registos escrevem.

Provedor de Logs ProgID ClassID Localização
Arquivo de texto DTS.LogProviderTextFile {0A039101-ACC1-4E06-943F-279948323883} O gestor de ligação de ficheiros utilizado pelo fornecedor de registo especifica o caminho do ficheiro de texto.
SQL Server Profiler DTS.LogProviderSQLProfiler {E93F6300-AE0C-4916-A7BF-A8D0CE12C77A} O gestor de ligação de ficheiros que o fornecedor de registo utiliza especifica o caminho do ficheiro utilizado pelo SQL Server Profiler.
SQL Server DTS.LogProviderSQLServer {94150B25-6AEB-4C0D-996D-D37D1C4FDEDA} O gestor de conexões OLE DB que o fornecedor de registos utiliza especifica a base de dados SQL Server que contém a tabela sysssislog com as entradas de registo.
Registo de Eventos do Windows DTS.LogProviderEventLog {071CC8EB-C343-4CFF-8D58-564B92FCA3CF} O registo de aplicações no Windows Event Viewer contém a informação do registo dos Serviços de Integração.
Ficheiro XML DTS.LogProviderXMLFile {440945A4-2A22-4F19-B577-EAF5FDDC5F7A} O gestor de ligação de ficheiros que o fornecedor de registos utiliza especifica o caminho do ficheiro XML.

Também pode criar fornecedores de logs personalizados. Para mais informações, consulte Criação de um Fornecedor de Registos Personalizados.

Os fornecedores de registos num pacote são membros da coleção dos fornecedores de registos do pacote. Quando cria um pacote e implementa o registo usando o SSIS Designer, pode ver uma lista dos membros da coleção nas pastas Log Provider no separador Package Explorer do SSIS Designer.

Configura um fornecedor de log fornecendo um nome e uma descrição para o fornecedor de log e especificando o gestor de ligação que este utiliza. O fornecedor de registos SQL Server utiliza um gestor de ligações OLE DB. Os fornecedores de Ficheiros de Texto, SQL Server Profiler e registo de ficheiros XML utilizam gestores de ligação de ficheiros. O fornecedor do registo de eventos do Windows não utiliza um gestor de ligações, porque escreve diretamente no registo de eventos do Windows. Para mais informações, consulte OLE DB Connection Manager e File Connection Manager.

Personalização de Registos

Para personalizar o registo de um evento ou mensagem personalizada, os Serviços de Integração fornecem um esquema de informação frequentemente registada para incluir nas entradas de registo. O esquema de registo dos Serviços de Integração define a informação que pode registar. Pode escolher elementos do esquema de log para cada entrada de registo.

Um pacote, os seus contentores e tarefas não têm de registar a mesma informação, e as tarefas dentro do mesmo pacote ou contentor podem registar informações diferentes. Por exemplo, um pacote pode registar informação de operador quando o pacote inicia, uma tarefa pode registar a origem da falha da tarefa, e outra tarefa pode registar informação quando ocorrem erros. Se um pacote e os seus contentores e tarefas utilizarem múltiplos registos, a mesma informação é escrita em todos os registos.

Pode selecionar um nível de registo que se adeque às suas necessidades, especificando os eventos a registar e a informação a registar para cada evento. Pode descobrir que alguns eventos fornecem informações mais úteis do que outros. Por exemplo, pode querer registar apenas os nomes do computador e do operador para o evento Pré-Execução , mas toda a informação disponível para o evento Erro .

Para evitar que ficheiros de registo ocupem grandes quantidades de espaço em disco, ou para evitar registos excessivos, que podem degradar o desempenho, pode limitar o registo selecionando eventos e itens de informação específicos para registar. Por exemplo, pode configurar um registo para capturar apenas a data e o nome do computador para cada erro.

No SSIS Designer, defines as opções de registo usando a caixa de diálogo Configurar Registos SSIS .

Esquema de Registo

A tabela seguinte descreve os elementos no esquema logarítem.

Elemento Description
Computador O nome do computador onde ocorreu o evento de registo.
Operator A identidade do utilizador que lançou o pacote.
Nome da fonte O nome do contentor ou tarefa onde ocorreu o evento de log.
ID de Fonte O identificador único do pacote; o Loop For, o Loop Foreach ou o contentor de Sequência; ou a tarefa em que ocorreu o evento de registo.
ExecutionID A GUID da instância de execução do pacote.

Nota: Executar um único pacote pode criar entradas de registo com valores diferentes para o elemento ExecutionID. Por exemplo, quando executa um pacote nas Ferramentas de Dados do SQL Server, a fase de validação pode criar entradas de registo com um elemento ExecutionID que corresponde às Ferramentas de Dados do SQL Server. No entanto, a fase de execução pode criar entradas de registo com um elemento ExecutionID que corresponde a dtshost.exe. Por exemplo, quando executa um pacote que contém tarefas de Executar Pacote, cada uma destas tarefas executa um pacote filho. Estes pacotes filhos podem criar entradas de registo que têm um elemento ExecutionID diferente das entradas de registo que o pacote pai cria.
Texto da Mensagem A mensagem associada a uma entrada de registo.
DataBytes Um array de bytes específico para a entrada de log. O significado deste campo varia dependendo da entrada de registo.

A tabela seguinte descreve três elementos adicionais no esquema de registo que não estão disponíveis na aba Detalhes da caixa de diálogo Configurar Registos SSIS .

Elemento Description
StartTime O momento em que o contentor ou tarefa começa a ser executado.
EndTime O momento em que o contentor ou tarefa deixa de ser executado.
DataCode Um valor inteiro opcional que normalmente contém um valor da DTSExecResult enumeração que indica o resultado da execução do contentor ou tarefa:

0 - Sucesso

1 - Falha

2 - Concluído

3 - Cancelado

Entradas de log

Os Serviços de Integração suportam entradas de registo em eventos predefinidos e fornecem entradas de registo personalizadas para muitos objetos dos Serviços de Integração. A caixa de diálogo Configurar Registos SSIS no SSIS Designer lista estes eventos e entradas de registo personalizadas.

A tabela seguinte descreve os eventos pré-definidos que podem ser ativados para escrever entradas de registo quando ocorrem eventos em tempo de execução. Estas entradas de registo aplicam-se a executáveis, ao pacote e às tarefas e recipientes que o pacote inclui. O nome da entrada do registo é o mesmo que o nome do evento em tempo real que foi gerado e levou à escrita da entrada do registo.

Events Description
OnError Escreve uma entrada de registo quando ocorre um erro.
OnExecStatusChanged Escreve uma entrada de registo quando uma tarefa (não um contentor) é suspensa ou retomada durante o debug.
EmInformação Escreve uma entrada de registo durante a validação e execução de um executável para reportar informação.
OnPostExecute Escreve uma entrada de registo imediatamente após o executável terminar de ser executado.
OnPostValidate Escreve uma entrada de registo quando a validação do executável termina.
OnPreExecute Escreve uma entrada de registo imediatamente antes da execução do executável.
OnPreValidate Escreve uma entrada de registo quando a validação do executável começa.
OnProgress Escreve uma entrada de registo quando o executável faz progresso mensurável.
OnQueryCancel Escreve uma entrada de registo em qualquer momento do processamento da tarefa onde seja viável cancelar a execução.
OnTaskFailed Escreve uma entrada de registo quando uma tarefa falha.
OnVariableValueChanged Escreve uma entrada de registo quando o valor de uma variável muda.
Advertência Regista uma entrada no registo quando ocorre um aviso.
PipelineComponentTime Para cada componente do fluxo de dados, escreve uma entrada de registo para cada fase de validação e execução. A entrada do registo especifica o tempo de processamento para cada fase.
Diagnóstico

DiagnosticEx
Escreve uma entrada de registo que fornece informação de diagnóstico.

Por exemplo, pode registar uma mensagem antes e depois de cada chamada a um fornecedor de dados externo. Para obter mais informações, consulte Ferramentas de solução de problemas para execução de pacotes.

Regista o evento DiagnosticEx quando quiseres encontrar os nomes das colunas no fluxo de dados que têm erros. Este evento escreve um mapa de linhagem de fluxo de dados no log. Pode então consultar o nome da coluna neste mapa de linhagem usando o identificador de coluna capturado por um output de erro. Para obter mais informações, consulte Tratamento de erros em dados.

Observe que o evento DiagnosticEx não preserva espaço em branco em sua saída XML para reduzir o tamanho do log. Para melhorar a legibilidade, copie o log em um editor XML - no Visual Studio, por exemplo - que ofereça suporte à formatação XML e realce de sintaxe.

Nota: Se registar o evento DiagnosticEx com o fornecedor de registo do SQL Server, a saída pode ser truncada. O campo de mensagem do fornecedor de registo do SQL Server é do tipo nvarchar(2048). Para evitar truncamento, use um fornecedor de registo diferente quando registar o evento DiagnosticEx .

O pacote e muitas tarefas têm entradas de registo personalizadas que podem ser ativadas para registo. Por exemplo, a tarefa Enviar E-mail fornece a entrada de registo personalizada SendMailTaskBegin , que regista a informação quando a tarefa Enviar E-mail começa a ser executada, mas antes da tarefa enviar uma mensagem de e-mail. Para mais informações, consulte Mensagens Personalizadas para Registo.

Diferenciação de Cópias de Pacotes

Os dados do registo incluem o nome e o GUID do pacote ao qual pertencem as entradas do registo. Se criar um novo pacote ao copiar um pacote existente, o nome e o GUID do pacote existente também são copiados. Como resultado, pode ter dois pacotes com o mesmo GUID e nome, tornando difícil diferenciar os pacotes nos dados de log.

Para eliminar esta ambiguidade, deve atualizar o nome e o GUID dos novos pacotes. No SQL Server Data Tools (SSDT), pode regenerar o GUID na propriedade ID e atualizar o valor da propriedade Name na janela de Propriedades. Também podes alterar o GUID e o nome programaticamente ou usando o prompt de comandos dtutil . Para mais informações, veja Definir Propriedades do Pacote e Utilidade dtutil.

Opções de Registo Parental

Frequentemente, as opções de registo das tarefas e dos contentores For Loop, Foreach Loop e Sequence correspondem às do pacote ou de um contentor pai. Nesse caso, podes configurá-los para herdarem as opções de registo do contentor pai. Por exemplo, num contentor For Loop que inclui uma tarefa Executar SQL, a tarefa Executar SQL pode usar as opções de registo que estão definidas no contentor For Loop. Para usar as opções de registo dos pais, define a propriedade LoggingMode do contentor para UseParentSetting. Pode definir esta propriedade na janela de Propriedades do SQL Server Data Tools (SSDT) ou através da caixa de diálogo Configurar Logs SSIS no SSIS Designer.

Modelos de Registo

Na caixa de diálogo Configurar Registos SSIS, pode também criar e guardar como modelos as configurações de registo frequentemente usadas e, em seguida, utilizá-los em vários pacotes. Isto facilita a aplicação de uma estratégia de registo consistente em vários pacotes e a modificação das definições de registo nos pacotes atualizando e aplicando os modelos. Os modelos são armazenados em ficheiros XML.

Para configurar registos através da caixa de diálogo Configurar Registos SSIS

  1. Ativar o pacote e as suas tarefas para registo de logs. O registo pode ocorrer ao nível do pacote, do contentor e da tarefa. Pode especificar diferentes registos para pacotes, contentores e tarefas.

  2. Selecione um fornecedor de registo e adicione um registo para o pacote. Os registos só podem ser criados ao nível do pacote, e uma tarefa ou contentor deve usar um dos registos criados para o pacote. Cada registo está associado a um dos seguintes fornecedores de registo: ficheiro de texto, SQL Server Profiler, SQL Server, Registo de Eventos do Windows ou ficheiro XML. Para mais informações, consulte Ativar o Registo de Pacotes nas Ferramentas de Dados do SQL Server.

  3. Selecione os eventos e a informação do esquema do log sobre cada evento que pretende capturar no log. Para mais informações, consulte Configurar o Registo Usando um Ficheiro de Configuração Guardado.

Configuração do Fornecedor de Registos

Você pode definir propriedades por meio do SSIS Designer ou programaticamente.

Um fornecedor de registo é criado e configurado como um passo na implementação do registo num pacote.

Depois de criar um fornecedor de log, pode visualizar e modificar as suas propriedades na janela de Propriedades do SQL Server Data Tools (SSDT).

Para informações sobre como definir programaticamente estas propriedades, consulte a documentação da LogProvider classe.

Registo para Tarefas de Fluxo de Dados

A tarefa Fluxo de Dados fornece muitas entradas de registo personalizadas que podem ser usadas para monitorizar e ajustar o desempenho. Por exemplo, pode monitorizar componentes que possam causar fugas de memória, ou registar quanto tempo demora a executar um determinado componente. Para uma lista destas entradas de registo personalizadas e exemplos de resultados de registo, veja Tarefa de Fluxo de Dados.

Capturar os nomes das colunas onde ocorrem erros

Quando configura uma saída de erro no fluxo de dados, por defeito a saída de erro fornece apenas o identificador numérico da coluna onde ocorreu o erro. Para obter mais informações, consulte Tratamento de erros em dados.

Você pode encontrar nomes de colunas habilitando o registro em log e selecionando o evento DiagnosticEx . Este evento escreve um mapa de linhagem de fluxo de dados no log. Pode então procurar o nome da coluna a partir do seu identificador neste mapa de linhagem. Observe que o evento DiagnosticEx não preserva espaço em branco em sua saída XML para reduzir o tamanho do log. Para melhorar a legibilidade, copie o log em um editor XML - no Visual Studio, por exemplo - que ofereça suporte à formatação XML e realce de sintaxe.

Utilize o Evento PipelineComponentTime

Talvez a entrada de registo personalizada mais útil seja o evento PipelineComponentTime. Esta entrada de registo indica o número de milissegundos que cada componente do fluxo de dados gasta em cada um dos cinco principais passos de processamento. A tabela seguinte descreve estes passos de processamento. Os desenvolvedores de Serviços de Integração reconhecerão estes passos como os principais métodos de um PipelineComponent.

Step Description
Validar O componente verifica valores válidos de propriedades e definições de configuração.
Pré-Executar O componente realiza um processamento único antes de começar a processar linhas de dados.
Pós-Execução O componente realiza um processamento único depois de ter processado todas as linhas de dados.
ProcessInput O componente de transformação ou destino processa as linhas de dados recebidas que uma fonte ou transformação a montante lhe passou.
PrimeOutput O componente de origem ou transformação preenche os buffers de dados a serem passados para um componente de transformação ou destino a jusante.

Quando ativas o evento PipelineComponentTime, os Serviços de Integração registam uma mensagem para cada etapa de processamento realizada por cada componente. As seguintes entradas de registo mostram um subconjunto das mensagens registadas de amostra do pacote Integration Services CalculatedColumns:

The component "Calculate LineItemTotalCost" (3522) spent 356 milliseconds in ProcessInput.

The component "Sum Quantity and LineItemTotalCost" (3619) spent 79 milliseconds in ProcessInput.

The component "Calculate Average Cost" (3662) spent 16 milliseconds in ProcessInput.

The component "Sort by ProductID" (3717) spent 125 milliseconds in ProcessInput.

The component "Load Data" (3773) spent 0 milliseconds in ProcessInput.

The component "Extract Data" (3869) spent 688 milliseconds in PrimeOutput filling buffers on output "OLE DB Source Output" (3879).

The component "Sum Quantity and LineItemTotalCost" (3619) spent 141 milliseconds in PrimeOutput filling buffers on output "Aggregate Output 1" (3621).

The component "Sort by ProductID" (3717) spent 16 milliseconds in PrimeOutput filling buffers on output "Sort Output" (3719).

Estas entradas de registo mostram que a tarefa de fluxo de dados passou mais tempo nos seguintes passos, apresentados aqui por ordem decrescente:

  • A fonte do OLE DB chamada "Extract Data" gastou 688 ms a carregar dados.

  • A transformação da Coluna Derivada, denominada "Calculate LineItemTotalCost", demorou 356 ms a realizar cálculos nas linhas recebidas.

  • A transformação agregada denominada "Sum Quantity and LineItemTotalCost" gastou um total combinado de 220 ms-141 em PrimeOutput e 79 em ProcessInput, realizando cálculos e passando os dados para a transformação seguinte.

Ativar o Registo de Pacotes nas Ferramentas de Dados do SQL Server

Este procedimento descreve como adicionar registos a um pacote, configurar registos ao nível do pacote e guardar a configuração do registo num ficheiro XML. Pode adicionar logs apenas ao nível do pacote, mas o pacote não precisa de realizar registos para permitir o login nos contentores que inclui.

Importante

Se implementares o projeto de Serviços de Integração no servidor de Serviços de Integração, o nível de registo que defines para a execução do pacote sobrepõe-se ao registo de pacotes que configuras usando SQL Server Data Tools (SSDT).

Por defeito, os contentores do pacote usam a mesma configuração de registo que o contentor pai. Para informações sobre a definição de opções de registo para contentores individuais, consulte Configurar Registo Usando um Ficheiro de Configuração Guardado.

Para permitir o login num pacote

  1. No SQL Server Data Tools, abre o projeto Integration Services que contém o pacote que queres.

  2. No menu SSIS , clique em Registo.

  3. Selecione um fornecedor de registo na lista de tipos de Fornecedor e depois clique em Adicionar.

  4. Na coluna Configuração, selecione um gestor de ligações ou clique em< Nova ligação> para criar um novo gestor de ligações do tipo apropriado para o provedor de logs. Dependendo do fornecedor selecionado, utilize um dos seguintes gestores de ligação:

    • Para ficheiros de texto, use um gestor de ligações de ficheiros. Para mais informações, consulte Gestor de Ligação de Ficheiros

    • Para o SQL Server Profiler, use um gestor de ligações de ficheiros.

    • Para SQL Server, use um gestor de ligações OLE DB. Para obter mais informações, consulte Gerenciador de conexões OLE DB.

    • Para o Registo de Eventos do Windows, não faça nada. O SSIS cria automaticamente o registo.

    • Para ficheiros XML, use um gestor de ligações de ficheiros.

  5. Repita os passos 3 e 4 para cada registo a usar no pacote.

    Observação

    Um pacote pode usar mais do que um log de cada tipo.

  6. Opcionalmente, selecione a caixa de seleção ao nível do pacote, selecione os registos a usar para registo ao nível do pacote e depois clique no separador Detalhes .

  7. No separador Detalhes , selecione Eventos para registar todas as entradas do registo, ou limpe Eventos para selecionar eventos individuais.

  8. Opcionalmente, clique em Avançado para especificar qual a informação a registar.

    Observação

    Por defeito, toda a informação é registada.

  9. No separador Detalhes , clique em Guardar. Aparece a caixa de diálogo Guardar Como . Localiza a pasta onde deves guardar a configuração de registo, escreve um nome de ficheiro para a nova configuração de registo e depois clica em Guardar.

  10. Clique em OK.

  11. Para guardar o pacote atualizado, clique em Guardar itens selecionados no menu Ficheiro.

Caixa de Diálogo Configurar Registos SSIS

Use a caixa de diálogo Configurar Registos SSIS para definir opções de registo para um pacote.

O que queres fazer?

  1. Abrir a caixa de diálogo Configurar Registros SSIS

  2. Configure as opções no painel de contentores

  3. Configure as opções no separador de Fornecedores e Registos

  4. Configure as opções no separador de detalhes

Abra a caixa de diálogo Configurar Logs do SSIS

Para abrir a caixa de diálogo Configurar Registos SSIS

  • No SSIS Designer, clique em Registo no menu SSIS.

Configure as opções no painel de contentores

Use o painel Containers da caixa de diálogo Configurar Registos SSIS para permitir o registo do pacote e dos seus contentores.

Opções

Containers
Selecione as caixas de seleção na vista hierárquica para permitir o registo do pacote e dos seus contentores:

  • Se estiver desmarcado, o contentor não está ativado para registo de logs. Selecionar para ativar o registo.

  • Se estiver atenuado, o contentor utiliza as opções de registo do elemento pai. Esta opção não está disponível para o pacote.

  • Se assinalado, o contentor define as suas próprias opções de registo.

Se um contentor estiver atenuado e quiser definir opções de registo no contentor, clique duas vezes na caixa de seleção. O primeiro clique apaga a caixa de seleção, e o segundo clique seleciona-a, permitindo-lhe escolher os fornecedores de registos a usar e selecionar a informação a registar.

Configure as opções no separador de Fornecedores e Registos

Use o separador Providers and Logs da caixa de diálogo Configurar Logs SSIS para criar e configurar logs para capturar eventos em tempo de execução.

Opções

Tipo de fornecedor
Selecione um tipo de fornecedor de registo da lista.

Add
Adicione um log do tipo especificado à coleção de fornecedores de log do pacote.

Nome
Ative ou desative registos para contentores ou tarefas selecionadas no painel de Contentores da caixa de diálogo Configurar Registos SSIS , usando as caixas de seleção. O campo do nome é editável. Use o nome padrão do fornecedor, ou escreva um nome descritivo único.

Descrição
O campo de descrição é editável. Clique e depois modifique a descrição padrão do registo.

Configuration
Selecione um gestor de ligações existente na lista, ou clique em <Nova ligação...> para criar um novo gestor de ligações. Dependendo do tipo de fornecedor de log, pode configurar um gestor de conexões OLE DB ou um gestor de ligações de ficheiros. O fornecedor de registo do Microsoft Windows Event Log não requer ligação.

Tópicos Relacionados: Gestor de Ligações OLE DB , Gestor de Ligações de Ficheiros

Eliminar
Selecione um fornecedor de registo e depois clique em Eliminar.

Configure as opções no separador de detalhes

Use o separador Detalhes da caixa de diálogo Configurar Registos SSIS para especificar os eventos a permitir o registo e os detalhes de informação a registar. A informação que seleciona aplica-se a todos os fornecedores de registos do pacote. Por exemplo, não pode escrever alguma informação na instância do SQL Server e informação diferente num ficheiro de texto.

Opções

Events
Ativar ou desativar os eventos para registro de logs.

Descrição
Veja uma descrição do evento.

Advanced
Selecione ou limpe eventos para registar, e selecione ou limpe informação para registar em cada evento. Clique em Básico para ocultar todos os detalhes de registo, exceto a lista de eventos. A seguinte informação está disponível para registo:

Valor Description
Computador O nome do computador onde ocorreu o evento registado.
Operator O nome de utilizador da pessoa que iniciou o pacote.
Nome da Fonte O nome do pacote, contentor ou tarefa onde ocorreu o evento registado.
SourceID O identificador global único (GUID) do pacote, contentor ou tarefa onde ocorreu o evento registado.
ExecutionID O identificador global único da instância de execução do pacote.
MessageText A mensagem associada a uma entrada de registo.
DataBytes Reservado para uso futuro.

Basic
Selecionar ou desmarcar eventos para registar. Esta opção esconde detalhes de registo, exceto a lista de eventos. Se você selecionar um evento, todos os detalhes de registo são selecionados por defeito. Clique em Avançado para mostrar todos os detalhes de registo.

Carga
Especifique um ficheiro XML existente para usar como modelo para definir opções de registo.

Salvar
Guardar detalhes de configuração como modelo num ficheiro XML.

Configure o registo usando um ficheiro de configuração guardado

Este procedimento descreve como configurar o registo para novos contentores num pacote carregando um ficheiro de configuração de registo previamente guardado.

Por defeito, todos os contentores de um pacote usam a mesma configuração de registo que o contentor pai. Por exemplo, as tarefas num Ciclo Foreach usam a mesma configuração de registo que o Ciclo Foreach.

Para configurar o registo para um contentor

  1. No SQL Server Data Tools, abre o projeto Integration Services que contém o pacote que queres.

  2. No menu SSIS , clique em Registo.

  3. Expanda a vista da árvore de pacotes e selecione o contentor a configurar.

  4. No separador Providers and Logs, selecione os logs a usar para o contentor.

    Observação

    Só podes criar registos ao nível do pacote. Para mais informações, consulte Ativar o Registo de Pacotes nas Ferramentas de Dados do SQL Server.

  5. Clique no separador Detalhes e clique em Carregar.

  6. Localiza o ficheiro de configuração de registo que queres usar e clica em Abrir.

  7. Opcionalmente, para registar, selecione uma entrada de registo diferente ao marcar a sua caixa de seleção na coluna Eventos. Clique em Avançado para selecionar o tipo de informação a registar nesta entrada.

    Observação

    O novo contentor pode incluir entradas de registo adicionais que não estão disponíveis para o contentor originalmente usado para criar a configuração de registo. Estas entradas adicionais de registo devem ser selecionadas manualmente se quiser que sejam registadas.

  8. Para guardar a versão atualizada da configuração de registo, clique em Guardar.

  9. Para guardar o pacote atualizado, clique em Guardar itens selecionados no menu Ficheiro.

Ativar o registo para execução de pacotes no servidor SSIS

Este tópico descreve como definir ou alterar o nível de registo de um pacote quando executa um pacote que implementou no servidor de Serviços de Integração. O nível de registo que defines quando executas o pacote sobrepõe-se ao registo de pacotes que configuras no design no SQL Server Data Tools (SSDT). Consulte Ativar o Registo de Pacotes nas Ferramentas de Dados do SQL Server para mais informações.

Para rever e ajustar a propriedade padrão de nível de registo de um servidor

  1. Na instância do SQL Server, vai ao pacote no Object Explorer.

  2. Selecione o Catálogo de Serviços de Integração.

  3. Clique com o botão direito em SSISDB e selecione Propriedades.

  4. Nas Propriedades do Catálogo, procure a caixa do grupo Registo de Operações e a entrada Service-Wide Nível de Registo Predefinido.

Pode escolher entre um dos níveis de registo incorporados descritos neste tópico, ou pode escolher um nível de registo personalizado existente. O nível de registo selecionado aplica-se por defeito a todos os pacotes implementados no Catálogo SSIS. Ele também se aplica por padrão a uma etapa de trabalho do SQL Agent que executa um pacote SSIS.

Também pode especificar o nível de registo para um pacote individual usando um dos seguintes métodos. Este tópico aborda o primeiro método.

  • Configuração de uma instância de execução de pacote usando a caixa de diálogo Executar Pacote

  • Definir parâmetros para uma instância de execução utilizando o catalog.set_execution_parameter_value (Base de Dados SSISDB)

  • Configurar um trabalho SQL Server Agent para a execução de um pacote usando a caixa de diálogo New Job Step.

Defina o nível de registo de um pacote usando a caixa de diálogo Executar Pacote

  1. No SQL Server Management Studio, navegue até ao pacote no Explorador de Objetos.

  2. Clique com o botão direito no pacote e selecione Executar.

  3. Selecione o separador Avançado na caixa de diálogo Executar Pacote .

  4. Em nível de registo, selecione o nível de registo. Este tópico contém uma descrição dos valores disponíveis.

  5. Complete quaisquer outras configurações do pacote e depois clique em OK para executar o pacote.

Selecione um nível de registo

Os seguintes níveis de registo incorporados estão disponíveis. Também pode selecionar um nível de registo personalizado existente. Este tópico contém uma descrição dos níveis de registo personalizados.

Nível de Registo Description
Nenhum A funcionalidade de registo está desativada. Apenas o estado de execução do pacote é registado.
Básico Todos os eventos são registados, exceto eventos personalizados e de diagnóstico. Este é o valor padrão.
RuntimeLineage Recolhe os dados necessários para rastrear a informação de linhagem no fluxo de dados. Você pode analisar essas informações de linhagem para mapear a relação de linhagem entre tarefas. ISVs e desenvolvedores podem criar ferramentas personalizadas de mapeamento de linhagem com essas informações.
Performance Apenas as estatísticas de desempenho, bem como os eventos OnError e OnWarning, são registados.

O relatório de Desempenho de Execução mostra o Tempo Ativo e o Tempo Total para os componentes do fluxo de dados do pacote. Esta informação está disponível quando o nível de registo da última execução do pacote foi definido para Performance ou Verbose. Para mais informações, consulte Relatórios para o Servidor de Serviços de Integração.

A vista catalog.execution_component_phases mostra os tempos de início e fim dos componentes do fluxo de dados, para cada fase de uma execução. Esta vista mostra esta informação para estes componentes apenas quando o nível de registo da execução do pacote está definido para Performance ou Verbose.
Verbose Todos os eventos são registados, incluindo eventos personalizados e de diagnóstico.

Eventos personalizados incluem aqueles que são registados pelas tarefas dos Serviços de Integração. Para mais informações sobre eventos personalizados, consulte Mensagens Personalizadas para Registo.

Um exemplo de evento diagnóstico é o evento DiagnosticEx . Sempre que uma tarefa Executar Pacote executa um pacote filho, este evento captura os valores dos parâmetros passados aos pacotes filhos.

O evento DiagnosticEx também ajuda a obter os nomes das colunas onde ocorrem erros ao nível da linha. Este evento escreve um mapa de linhagem de fluxo de dados no log. Pode então consultar o nome da coluna neste mapa de linhagem usando o identificador de coluna capturado por um output de erro. Para obter mais informações, consulte Tratamento de erros em dados.

O valor da coluna da mensagem para o DiagnosticEx é texto XML. Para visualizar o texto da mensagem para a execução de um pacote, consulte a vista catalog.operation_messages (Base de Dados SSISDB ). Observe que o evento DiagnosticEx não preserva espaço em branco em sua saída XML para reduzir o tamanho do log. Para melhorar a legibilidade, copie o log em um editor XML - no Visual Studio, por exemplo - que ofereça suporte à formatação XML e realce de sintaxe.

A vista catalog.execution_data_statistics mostra uma linha cada vez que um componente de fluxo de dados envia dados para um componente a jusante, para a execução de um pacote. O nível de registo deve ser definido para Verbose para captar esta informação na visualização.

Crie e gere níveis de registo personalizados usando a caixa de diálogo Gestão de Níveis de Registo Personalizados

Pode criar níveis de registo personalizados que recolhem apenas as estatísticas e eventos que deseja. Opcionalmente, pode também captar o contexto dos eventos, que inclui valores de variáveis, cadeias de ligação e propriedades dos componentes. Quando executa um pacote, pode selecionar um nível de registo personalizado onde quer que selecione um nível de registo incorporado.

Sugestão

Para capturar os valores das variáveis do pacote, a propriedade IncludeInDebugDump das variáveis deve ser definida como Verdadeiro.

  1. Para criar e gerir níveis de registo personalizados, no SQL Server Management Studio, clique com o botão direito na base de dados SSISDB e selecione Nível de Registo Personalizado para abrir a caixa de diálogo Gestão de Níveis de Registo Personalizados . A lista de Níveis de Registo Personalizados contém todos os níveis de registo personalizados existentes.

  2. Para criar um novo nível de registo personalizado, clique em Criar e depois forneça um nome e uma descrição. Nos separadores de Estatísticas e Eventos , selecione as estatísticas e eventos que pretende recolher. No separador Eventos , selecione opcionalmente Incluir Contexto para eventos individuais. Em seguida, clique em Salvar.

  3. Para atualizar um nível de registo personalizado existente, selecione-o na lista, reconfigure e depois clique em Guardar.

  4. Para eliminar um nível de registo personalizado existente, selecione-o na lista e depois clique em Eliminar.

Permissões para níveis de registo personalizados.

  • Todos os utilizadores da base de dados SSISDB podem ver níveis de registo personalizados e selecionar um nível de registo personalizado quando executam pacotes.

  • Apenas utilizadores na função de ssis_admin ou administrador de sistemas podem criar, atualizar ou eliminar níveis de registo personalizados.

Mensagens Personalizadas para Registo

O SQL Server Integration Services fornece um conjunto rico de eventos personalizados para escrever entradas de registo para pacotes e muitas tarefas. Pode usar estas entradas para guardar informações detalhadas sobre o progresso da execução, resultados e problemas, registando eventos pré-definidos ou mensagens definidas pelo utilizador para análise posterior. Por exemplo, pode registar quando uma inserção em massa começa e termina para identificar problemas de desempenho quando o pacote é executado.

As entradas de registo personalizadas são um conjunto diferente de entradas do conjunto de eventos de registo padrão disponíveis para pacotes e todos os contentores e tarefas. As entradas de registo personalizadas são adaptadas para captar informação útil sobre uma tarefa específica num pacote. Por exemplo, uma das entradas personalizadas do registo para a tarefa Executar SQL regista a instrução SQL que a tarefa executa no registo.

Todas as entradas de registo incluem informações de data e hora, incluindo as entradas de registo que são automaticamente escritas quando um pacote começa e termina. Muitos dos eventos do log escrevem múltiplas entradas no log. Isto ocorre normalmente quando o evento tem fases diferentes. Por exemplo, o evento de registo ExecuteSQLExecutingQuery escreve três entradas: uma entrada após a tarefa adquirir uma ligação à base de dados, outra depois de a tarefa começar a preparar a instrução SQL, e mais uma após a execução da instrução SQL estar concluída.

Os seguintes objetos dos Serviços de Integração têm entradas de registo personalizadas:

Pacote

Tarefa de Inserção em Massa

Tarefa de Fluxo de Dados

Executar a Tarefa DTS 2000

Executar Tarefa de Processo

Executar Tarefa SQL

Tarefa do Sistema de Ficheiros

Tarefa FTP

Tarefa da fila de mensagens

Tarefa de Script

Tarefa de Enviar Correio

Transferir Tarefa de Base de Dados

Tarefa de Transferir Mensagens de Erro

Tarefa de Transferência de Empregos

Transferir Tarefa de Logins

Tarefa de Transferência de Procedimentos Armazenados Mestre

Tarefa Transferir Objetos SQL Server

Tarefa de Serviços Web

Tarefa do Leitor de Dados WMI

Tarefa de Observador de Eventos WMI

Tarefa XML

Entradas de log

Package

A tabela seguinte lista as entradas de registo personalizadas para pacotes.

Entrada de log Description
PackageStart Indica que o pacote começou a funcionar. Esta entrada é automaticamente escrita no registo. Não pode excluí-lo.
PackageEnd Indica que o pacote foi concluído. Esta entrada de log é automaticamente registada. Não pode excluí-lo.
Diagnóstico Fornece informações sobre a configuração do sistema que afeta a execução dos pacotes, como o número de executáveis que podem ser executados em simultâneo.

A entrada do registo de diagnóstico inclui também entradas antes e depois para chamadas a fornecedores externos de dados.

Tarefa de inserção em massa

A tabela a seguir lista as entradas de log personalizadas para a tarefa de Entrada em Massa.

Entrada de log Description
DTSBulkInsertTaskBegin Indica que a inserção em massa começou.
DTSBulkInsertTaskEnd Informação de que a inserção em massa está concluída.
DTSBulkInsertTaskInfos Fornece informações descritivas sobre a tarefa.

Tarefa de fluxo de dados

A tabela seguinte lista as entradas de registo personalizadas para a tarefa Data Flow.

Entrada de log Description
BufferSizeTuning Indica que a tarefa Data Flow alterou o tamanho do buffer. A entrada do registo descreve as razões para a alteração de tamanho e lista o novo tamanho temporário do buffer.
OnPipelinePostEndOfRowset Denota que um componente recebeu o seu sinal de fim de linha, que é definido pela última chamada do método ProcessInput . É escrita uma entrada para cada componente no fluxo de dados que processa a entrada. A entrada inclui o nome do componente.
OnPipelinePostPrimeOutput Indica que o componente completou a sua última chamada ao método PrimeOutput . Dependendo do fluxo de dados, podem ser escritas múltiplas entradas de registo. Se o componente for uma fonte, isso significa que o componente terminou de processar as linhas.
OnPipelinePreEndOfRowset Indica que um componente está prestes a receber o seu sinal de fim de linhas, que é definido pela última chamada do método ProcessInput . É escrita uma entrada para cada componente no fluxo de dados que processa a entrada. A entrada inclui o nome do componente.
OnPipelinePrePrimeOutput Indica que o componente está prestes a receber a sua chamada do método PrimeOutput . Dependendo do fluxo de dados, podem ser escritas múltiplas entradas de registo.
OnPipelineRowsSent Reporta o número de linhas fornecidas a uma entrada de componente por uma chamada ao método ProcessInput . A entrada do registo inclui o nome do componente.
PipelineBufferLeak Fornece informações sobre qualquer componente que manteve os buffers ativos depois de o gestor de buffers desaparecer. Isto significa que os recursos dos buffers não foram libertados e podem causar fugas de memória. A entrada do registo fornece o nome do componente e o ID do buffer.
PipelineExecutionPlan Reporta o plano de execução do fluxo de dados. Fornece informações sobre como os buffers serão enviados aos componentes. Esta informação, em combinação com a entrada PipelineExecutionTrees, descreve o que está a acontecer na tarefa.
PipelineExecutionTrees Reporta as árvores de execução do layout no fluxo de dados. O agendador do motor de fluxo de dados utiliza as árvores para construir o plano de execução do fluxo de dados.
Inicialização do Pipeline Fornece informação de inicialização sobre a tarefa. Esta informação inclui os diretórios a usar para armazenamento temporário de dados BLOB, o tamanho padrão do buffer e o número de linhas num buffer. Dependendo da configuração da tarefa Data Flow, podem ser escritas várias entradas de log.

Executar a Tarefa DTS 2000

A tabela seguinte lista as entradas de registo personalizadas para a tarefa Executar DTS 2000.

Entrada de log Description
ExecuteDTS80PackageTaskBegin Indica que a tarefa começou a executar um pacote DTS 2000.
ExecuteDTS80PackageTaskEnd Indica que a tarefa terminou.

Nota: O pacote DTS 2000 pode continuar a correr após o término da tarefa.
ExecuteDTS80PackageTaskTaskInfo Fornece informações descritivas sobre a tarefa.
ExecuteDTS80PackageTaskTaskResult Reporta o resultado de execução do pacote DTS 2000 executado pela tarefa.

Executar Tarefa de Processamento

A tabela seguinte lista as entradas de registo personalizadas para a tarefa Executar Processo.

Entrada de log Description
ExecutarProcessoExecutandoProcesso Fornece informações sobre o processo de execução do executável para o qual a tarefa está configurada para executar.

São escritas duas entradas de registo. Um contém informações sobre o nome e a localização do executável que a tarefa executa, e o outro regista a saída do executável.
ExecuteProcessVariableRouting Fornece informação sobre quais variáveis são encaminhadas para as entradas e saídas do executável. As entradas de registo são escritas para stdin (a entrada), stdout (a saída) e stderr (a saída de erro).

Executar tarefa SQL

A tabela seguinte descreve a entrada de registo personalizada para a tarefa Executar SQL.

Entrada de log Description
ExecuteSQLExecutingQuery Fornece informações sobre as fases de execução da instrução SQL. As entradas de registo são escritas quando a tarefa adquire ligação à base de dados, quando a tarefa começa a preparar a instrução SQL e após a execução da instrução SQL ser concluída. A entrada do registo para a fase de preparação inclui a declaração SQL que a tarefa utiliza.

Tarefa do sistema de arquivos

A tabela a seguir descreve a entrada de log personalizada para a tarefa Sistema de arquivos.

Entrada de log Description
FileSystemOperation Relata a operação que a tarefa executa. A entrada de log é gravada quando a operação do sistema de arquivos é iniciada e inclui informações sobre a origem e o destino.

Tarefa FTP

A tabela seguinte lista as entradas de registo personalizadas para a tarefa FTP.

Entrada de log Description
FTPConnectingToServer Indica que a tarefa iniciou uma ligação ao servidor FTP.
FTPOperação Reporta o início e o tipo de operação FTP que a tarefa realiza.

Tarefa da fila de mensagens

A tabela seguinte lista as entradas de registo personalizadas para a tarefa Fila de Mensagens.

Entrada de log Description
MSMQAfterOpen Indica que a tarefa terminou de abrir a fila de mensagens.
MSMQBeforeOpen Indica que a tarefa começou a abrir a fila de mensagens.
MSMQBeginReceive Indica que a tarefa começou a receber uma mensagem.
MSMQBeginSend Indica que a tarefa iniciou o envio de uma mensagem.
MSMQEndReceive Indica que a tarefa terminou de receber uma mensagem.
MSMQEndSend Indica que a tarefa terminou de enviar uma mensagem
MSMQTaskInfo Fornece informações descritivas sobre a tarefa.
MSMQTaskTimeOut Indica que a tarefa excedeu o tempo limite.

Tarefa de script

A tabela seguinte descreve a entrada de registo personalizada para a tarefa Script.

Entrada de log Description
ScriptTaskLogEntry Relata os resultados da implementação do log no script. Uma entrada de log é escrita para cada chamada ao método Log do objeto DTS . A entrada é escrita quando o código é executado. Para obter mais informações, consulte Registo na Tarefa de Script.

Tarefa de Enviar Correio

A tabela seguinte lista as entradas de registo personalizadas para a tarefa Enviar Correio.

Entrada de log Description
EnviarCorreioTarefaInício Indica que a tarefa iniciou o envio de uma mensagem de e-mail.
SendMailTaskEnd Indica que a tarefa terminou de enviar uma mensagem de e-mail.
SendMailTaskInfo Fornece informações descritivas sobre a tarefa.

Transferir Tarefa de Base de Dados

A tabela seguinte lista as entradas de registo personalizadas para a tarefa Transferir Base de Dados.

Entrada de log Description
SourceDB Especifica a base de dados que a tarefa copiou.
SourceSQLServer Especifica o computador de onde a base de dados foi copiada.

Tarefa Transferir mensagens de erro

A tabela seguinte lista as entradas de registo personalizadas para a tarefa Transferir Mensagens de Erro.

Entrada de log Description
TarefaErroMensagensConcluídaTransferênciaDeObjetos Indica que a tarefa terminou de transferir mensagens de erro.
MensagensDeErroTransferênciaTarefaIniciarTransferênciaDeObjetos Indica que a tarefa começou a transferir mensagens de erro.

Tarefa de Transferência de Empregos

A tabela seguinte lista as entradas de registo personalizadas para a tarefa Transferir Jobs.

Entrada de log Description
TarefaDeTransferênciaConcluiuTransferênciaDeObjetos Indica que a tarefa terminou de transferir tarefas do SQL Server Agent.
TransferênciaDeTarefaIniciarTransferênciaDeObjetos Indica que a tarefa começou a transferir trabalhos do SQL Server Agent.

Tarefa de Transferência de Logins

A tabela seguinte lista as entradas de registo personalizadas para a tarefa Transferir Logins.

Entrada de log Description
TransferLoginsTaskFinishedTransferringObjects Indica que a tarefa terminou de transferir os logins.
TransferênciaDeLoginsTarefaIniciarTransferênciaDeObjetos Indica que a tarefa começou a transferir logins.

Tarefa de Transferência de Procedimentos Armazenados Principais

A tabela seguinte lista as entradas de log personalizadas para a tarefa de Procedimentos Armazenados de Transferência Principal.

Entrada de log Description
TarefaTransferirProcedimentosArmazenadosConcluídaAoTransferirObjetos Indica que a tarefa terminou de transferir procedimentos armazenados definidos pelo utilizador que estão armazenados na base de dados mestre .
TransferStoredProceduresTaskStartTransferringObjects Indica que a tarefa começou a transferir procedimentos armazenados definidos pelo utilizador que estão armazenados na base de dados mestre .

Tarefa Transferir objetos do SQL Server

A tabela seguinte lista as entradas de registo personalizadas para a tarefa Transferir Objetos SQL Server.

Entrada de log Description
TransferSqlServerObjectsTaskFinishedTransferringObjects Indica que a tarefa terminou de transferir objetos de base de dados SQL Server.
TransferSqlServerObjectsTaskStartTransferringObjects Indica que a tarefa começou a transferir objetos da base de dados SQL Server.

Tarefa de Serviços Web

A tabela seguinte lista as entradas de registo personalizadas que pode ativar para a tarefa de Serviços Web.

Entrada de log Description
WSTaskBegin A tarefa começou para aceder a um serviço Web.
WSTaskEnd A tarefa completava um método de serviço Web.
WSTaskInfo Informação descritiva sobre a tarefa.

Tarefa do Leitor de Dados WMI

A tabela seguinte lista as entradas de registo personalizadas para a tarefa WMI Data Reader.

Entrada de log Description
WMIDataReaderObtendoDadosWMI Indica que a tarefa iniciou a leitura dos dados do WMI.
WMIDataReaderOperation Relata a consulta WQL que a tarefa executou.

Tarefa de Observador de Eventos WMI

A tabela seguinte lista as entradas de registo personalizadas para a tarefa WMI Event Watcher.

Entrada de log Description
EventoObservadorEventoOcorrido Indica que ocorreu o evento que a tarefa estava a monitorizar.
WMIEventWatcherTimedout Indica que a tarefa excedeu o tempo limite.
WMIEventWatcherWatchingForWMIEvents Indica que a tarefa começou a executar a consulta WQL. A entrada inclui a consulta.

Tarefa XML

A tabela seguinte descreve a entrada de registo personalizada para a tarefa XML.

Entrada de log Description
XMLOperation Fornece informação sobre a operação que a tarefa realiza

A lista seguinte contém ligações para tópicos que mostram como realizar tarefas relacionadas com a funcionalidade de registo.