Partilhar via


Log de coletor de dados

O coletor de dados captura e registra diferentes tipos de informações para cada conjunto de coleta e seus pacotes de coleta. Essas informações, gravadas nas tabelas msdb, fornecem informações sobre o estado atual do conjunto de coleta e o resultado da execução do pacote. Essas tabelas de logs também fornecem informações estatísticas sobre cada conjunto de coleta e seus pacotes. Os tipos de informações a seguir estão disponíveis para monitorar e analisar a coleta de dados:

  • Os conjuntos de coleta que estão atualmente em execução.

  • O histórico de uma execução de conjunto de coleta.

  • Para uma determinada coleta, a hierarquia de pacotes executados como parte dessa coleta.

  • Para cada pacote, horário de início e término, duração, status de conclusão e o número de linhas processadas.

  • Se uma execução de conjunto de coleta falhar, o nome do pacote que causou a falha.

  • Se houve falha em uma execução do pacote, o componente desse pacote que falhou juntamente com a mensagem de erro.

  • Para cada pacote, a seqüência de eventos de log que o pacote registrou para cada execução.

Função do SSIS no log de coletor de dados

O coletor de dados implementa os logs através de procedimentos armazenados, da execução da tarefa e recursos de log do SQL Server 2008 Integration Services (SSIS). Esses recursos criam resumos e entradas de log detalhadas para provedores de logs quando ocorrem eventos de tempo de execução. Para obter mais informações, consulte Implementando logs em pacotes.

Eventos registrados fornecem pontos de referência para todas as fases de execução do programa. Cada registro de evento é mapeado para a Identificação de Execução do pacote no qual uma tarefa é executada. O coletor de dados mapeia essas IDs para os pacotes específicos de coleta de dados e carregamento.

Log de conjunto de coleta e pacote

O tratamento de dados e a arquitetura de alto nível para o log do coletor de dados são:

  • As informações de conjunto de coleta, fornecidas pelo coletor de dados no tempo de execução, são armazenadas em uma tabela de coletor de dados através de um procedimento armazenado. Cada registro recebe uma log_id que é usada para fazer referência a entradas da tabela e para mapear um pacote para a ID de Execução do SSIS.

  • As informações do pacote são registradas no início e no fim de cada execução do pacote. Esse log é feito executando uma tarefa do Transact-SQL no início e no término do fluxo de controle de cada pacote.

    • Enquanto o pacote estiver sendo executado, atualizações periódicas e atualizações estatísticas são feitas pelo coletor de dados. Cada pacote tem uma tarefa de manipulador de erro global (implementada usando eventos do pacote do SSIS) que registra eventos de erro. Isso é feito colocando a "Tarefa Executar SQL" do SSIS no fluxo de controle para fornecer o log de evento necessário. Para obter mais informações, consulte Tarefa Executar SQL e Elementos de Fluxo de Controle.

    • Eventos gerados pelo SSIS são registrados na tabela dbo. sysssislog definida pelo SSIS usando o procedimento armazenado dbo.sp_ssis_addlogentry.

  • Quando o pacote é finalizado, um evento de êxito ou de falha é registrado.

  • Quando o conjunto de coleta é interrompido, essas informações são registradas. Assim como em um pacote, um evento com êxito ou falha é registrado.

Os dados gerados pelo coletor de dados são armazenados na tabela dbo.syscollector_execution_log_internal que é unida ao dbo.sysssislog. Isto fornece uma exibição completa da execução do conjunto de coleta. Essas tabelas são descritas mais detalhadamente na seção a seguir.

Tabelas de logs

As tabelas de logs e suas colunas são listadas na tabela a seguir. A seção "Acessando e Exibindo Dados de Log", posteriormente neste tópico, descreve as funções e as exibições que podem ser usadas para obter informações detalhadas sobre tipos de dados e conteúdo de uma tabela de logs.

Nome da tabela

Descrição

syscollector_execution_log_internal

Uma tabela de coletor de dados para armazenar informações de execução. Ela tem as seguintes colunas:

  • log_id

  • parent_log_id

  • collection_set_id

  • collection_item_id

  • start_time

  • last_iteration_time

  • finish_time

  • runtime_execution_mode

  • status

  • operator

  • package_id

  • package_execution_id

  • failure_message

syscollector_execution_stats_internal

Uma tabela de coletor de dados para armazenar informações estatísticas. Ela tem as seguintes colunas:

  • log_id

  • task_name

  • execution_row_count_in

  • execution_row_count_out

  • execution_row_count_errors

  • execution_time_ms

  • log_time

sysssislog

Uma tabela definida pelo SSIS para informações de eventos, como o início de um conjunto de coleta ou pacote e avisos ou erros. Para obter mais informações, consulte sysssislog (Transact-SQL).

Observação importanteImportante

Não modifique os dados nas tabelas de logs. Os dados nessas tabelas devem ser inseridos, atualizados e excluídos de maneira específica, como imposto pelos procedimentos armazenados. Os nomes de tabela e definições podem alterar no tempo de execução, altere-os quando você atualizar o aplicativo, e poderão ser alterados em versões futuras. Em vez de usar as tabelas diretamente, use os procedimentos armazenados documentados e as exibições fornecidas com o coletor de dados para acessar dados do aplicativo e da instância.

Retenção de log

Um log do conjunto de coleta é mantido pelo mesmo período de tempo que os dados no data warehouse de gerenciamento para o conjunto de coleta. Isso é definido pelo período de retenção que você pode configurar para cada conjunto de coleta. Quando o período de retenção expira, uma tarefa do SQL Server Agent limpa os dados do log.

Níveis de log

Três níveis de log são fornecidos para tratar dos diferentes cenários de coleta que podem ocorrer. Isto garante que você tenha os dados necessários para solucionar os problemas de um conjunto de coleta ou pacote, se houver necessidade. Você pode definir níveis de log diferentes para cada conjunto de coleta de acordo com seus requisitos de log.

A tabela a seguir descreve as opções de log disponíveis.

Nível

Descrição

0

O nível de log padrão. Registra informações de execução e os seguintes eventos do SSIS:

  • Iniciar ou parar um conjunto de coleta

  • Iniciar ou parar um pacote

  • Informações de erro

1

Combina o log de nível 0 e os seguintes eventos:

  • Estatísticas de execução

  • Progresso da coleta em execução contínua

  • Eventos de aviso do SSIS

2

Combina o log de nível 1 e os eventos detalhados do SSIS.

Por padrão, o nível do log é 0. O nível 0 é usado para evitar mensagens de log excessivas, como os eventos de aviso que são gerados pelo log de nível 1. Esses eventos de aviso podem incluir sugestões de desempenho do SSIS que não podem ser corrigidos pelo usuário.

O nível 2 fornece informações adicionais de eventos que podem ser usadas na solução de problemas avançada.

Eventos SSIS

Todo pacote de coletor de dados usa o provedor de eventos do SQL Server. Os eventos descritos na tabela a seguir são registrados e estão disponíveis para exibição.

Nome do evento

Nível de log

Descrição

PackageBegin

0

Um evento padrão que sempre é gerado. Esse evento não pode ser desabilitado.

PackageEnd

0

Um evento padrão que sempre é gerado. Esse evento não pode ser desabilitado.

OnError

0

Um evento de erro.

OnWarning

1

Um evento de aviso.

PipelineBufferLeak

2

Fornece informações sobre qualquer componente que manteve buffers ativos depois que o gerenciador de buffers pára. Se um buffer ainda estiver ativo, os recursos de buffer não terão sido liberados e pode haver vazamentos de memória. Essa entrada de log fornece o nome do componente e a identificação do buffer.

PipelineExecutionPlan

2

Informa o plano de execução do fluxo de dados. O plano de execução fornece informações sobre como os buffers serão enviados para os componentes. Essas informações, em combinação com a entrada do log PipelineExecutionTrees, descrevem o que está ocorrendo em uma tarefa de Fluxo de Dados.

PipelineExecutionTrees

2

Relata as árvores de execução do layout no fluxo de dados. O agendador do mecanismo de fluxo de dados usa as árvores para criar o plano de execução para o fluxo de dados.

PipelineInitialization

2

Fornece informações de inicialização sobre a tarefa. Essas informações incluem os diretórios a serem usados para armazenamento temporário de dados BLOB (objeto binário grande), o tamanho do buffer padrão e o número de linhas em um buffer. Dependendo da configuração da tarefa de Fluxo de Dados, várias entradas de log podem ser gravadas.

ExecuteSQLExecutingQuery

2

Fornece informações sobre as fases de execução da instrução SQL. As entradas de log são gravadas quando a tarefa faz conexão com o banco de dados, quando a tarefa começa a preparar a instrução SQL e depois que a execução da instrução SQL é concluída. A entrada de log da fase de preparação inclui a instrução SQL usada pela tarefa.

FileSystemOperation

2

Informa a operação executada pela tarefa. A entrada do log é gravada quando a operação do sistema de arquivos é iniciada e inclui informações sobre a origem e o destino.

ExecuteProcessExecutingProcess

2

Fornece informações sobre o processo no qual a tarefa é configurada para execução.

São gravadas duas entradas de log. Uma contém informações sobre o nome e o local do executável que a tarefa executa e a outra registra a saída do executável.

Acessando e exibindo dados de log

Você pode acessar e exibir dados programaticamente usando as funções e as exibições fornecidas. Você também pode usar o Visualizador do Arquivo de Log no Pesquisador de Objetos do Management Studio para exibir os logs. Para obter mais informações, consulte Como exibir logs de conjuntos de coleta.

A tabela a seguir descreve as funções e exibições que podem ser usadas por acessar dados de log.

Nome

Descrição

fn_syscollector_get_execution_details (Transact-SQL)

Retorna informações detalhadas sobre logs de conjunto de coleta e pacote para a log_id solicitada e todas as suas entradas de log dependentes.

fn_syscollector_get_execution_stats (Transact-SQL)

Retorna um conjunto de estatísticas para a log_id solicitada. As estatísticas são calculadas a partir de entradas na exibição syscollector_execution_stats.

syscollector_execution_log (Transact-SQL)

Fornece uma exibição da tabela syscollector_execution_log_internal.

syscollector_execution_log_full (Transact-SQL)

Fornece uma exibição detalhada da tabela syscollector_execution_log_internal e mostra as entradas do log em uma hierarquia, a partir da entrada de log de coleta de nível superior e passando por todos os pacotes que foram executados como parte de uma execução de conjunto de coleta.

syscollector_execution_stats (Transact-SQL)

Fornece uma exibição 1:1 da tabela syscollector_execution_stats_internal.

Histórico de alterações

Conteúdo atualizado

Na seção "Tabelas de Log", as colunas da tabela syscollector_execution_log_internal foram atualizadas.

Na seção "Níveis de Log", corrigido o nível de log padrão, como é agora "0".