Ведение журнала сборщика данных

Сборщик данных собирает и записывает в журналы различные сведения для каждого набора сбора и его пакетов сбора. Эти сведения записываются в таблицы msdb и описывают текущее состояние набора сбора и результат выполнения пакета. Также данные таблицы журналов предоставляют статистическую информацию о каждом наборе сбора и его пакетах. Для наблюдения и анализа сбора данных доступны следующие сведения.

  • Запущенные в данный момент наборы сбора.

  • Журнал выполнения набора сбора.

  • иерархия пакетов, выполняемых в рамках данного набора сбора.

  • Время запуска и остановки, продолжительность, состояние завершения и количество обработанных строк для каждого пакета.

  • При неудачном завершении набора сбора пакет, который вызвал сбой.

  • При неудачном выполнении пакета — вызвавший сбой компонент и сообщение об ошибке.

  • Для всех пакетов: последовательность событий в журнале, записываемых пакетом при каждом запуске.

SSIS и ведение журнала сборщика данных

Сборщик данных ведет журнал с помощью хранимых процедур, заданий и функций ведения журналов служб SQL Server 2008 Integration Services (SSIS). При возникновении событий времени выполнения, эти функции создают как краткие, так и подробные записи в журналах для регистраторов. Дополнительные сведения см. в разделе Реализация ведения журналов в пакетах.

Записанные в журнал события содержат контрольные точки для всех фаз выполнения программы. Каждая запись о событии связывается с идентификатором выполнения пакета, под управлением которого была запущена задача. Сборщик данных связывает эти идентификаторы с конкретными пакетами для сбора и передачи данных.

Ведение журнала набора сбора и пакетов

Высокоуровневая архитектура и способы обработки данных для ведения журнала сборщика данных следующие:

  • Информация набора сбора, предоставляемая сборщиком данных во время выполнения, записывается в таблицу сборщика данных с помощью хранимой процедуры. Каждой записи присваивается идентификатор log_id, использующийся для их идентификации и связи пакета с идентификатором выполнения служб SSIS.

  • Информация о пакете записывается в журнал при каждом запуске и остановке пакета. Для этого в начале и конце потока управления для каждого пакета запускается задача Transact-SQL.

    • Во время выполнения пакета сборщик данных выполняет периодические обновления и обновления статистики. Для каждого пакета есть глобальная задача обработки ошибок (реализованная с помощью событий пакета служб SSIS), которая записывает произошедшие ошибки в журнал. Это выполняется с помощью вставки задачи «Выполнение SQL» служб SSIS в поток управления. Дополнительные сведения см. в разделах Задача служб SSIS «Выполнение SQL» и Элементы потока управления.

    • Формируемые службами SSIS события регистрируются в таблице служб SSIS, dbo.sysdtslog, хранимой процедурой dbo.sp_dts_addlogentry.

  • При завершении пакета, в журнале фиксируется успешность или ошибка завершения.

  • При остановке набора сбора, данная информация записывается в журнал. Как и в случае с пакетом, в журнале регистрируется событие об успешном или ошибочном завершении.

Формируемые сборщиком данных данные хранятся в таблице syscollector_execution_log_internal, соединенной с dbo.sysdtslog. Это позволяет иметь полное представление о выполнении набора сбора. Данные таблицы подробно описываются в следующем разделе.

Таблицы журнала

Таблицы журнала и их столбцы перечислены в следующей таблице. Приведенный далее раздел «Доступ и просмотр данных журнала» описывает функции и представления, использующиеся для получения подробных сведений о типах данных и содержимом таблиц журналов.

Имя таблицы

Описание

syscollector_execution_log_internal

Таблица сборщика данных для информации о выполнении. Он содержит следующие столбцы:

  • log_id

  • parent_log_id

  • collection_set_id

  • collection_item_id

  • start_time

  • last_iteration_time

  • finish_time

  • runtime_execution_mode

  • состояние

  • оператор

  • package_id

  • package_execution_id

  • failure_message

syscollector_execution_stats_internal

Таблица сборщика данных для статистической информации. Она содержит следующие столбцы:

  • log_id

  • task_name

  • execution_row_count_in

  • execution_row_count_out

  • execution_row_count_errors

  • execution_time_ms

  • log_time

sysssislog

Определенная службами SSIS таблица для записи событий, таких как запуск набора или пакета сбора, предупреждений и ошибок. Дополнительные сведения см. в разделе sysssislog (Transact-SQL).

Важное примечаниеВажно!

Не следует изменять данные в таблицах журнала. Данные в этих таблицах должны вставляться, обновляться и удаляться особыми способами, реализованными в хранимых процедурах. Имена таблиц и определений могут меняться в процессе работы, изменяются при обновлении приложения и, возможно, изменятся в будущих выпусках. Вместо непосредственного использования таблиц следует использовать документированные хранимые процедуры и представления, которые предлагаются сборщиком данных для доступа к данным экземпляров и приложений.

Хранение журнала

Журнал набора сбора хранится за тот же период времени, за который для набора сбора хранятся данные в хранилище данных управления. Он определяется периодом хранения, задаваемым для каждого набора сбора. По истечении срока хранения задание агента SQL Server удаляет данные из журнала.

Уровни ведения журнала

Для обработки различных коллекций сценариев предусмотрено три уровня ведения журнала. Это обеспечивает получение данных, необходимых для устранения неполадок наборов или пакетов сбора. Для каждого набора сбора возможна установка своего уровня ведения журнала в соответствии с текущими требованиями.

В следующей таблице описываются доступные параметры ведения журнала.

Уровень

Описание

0

Уровень ведения журнала по умолчанию. Регистрирует в журнале сведения о выполнении и следующие события служб SSIS.

  • Запуск или остановка набор сбора.

  • Запуск или остановка пакета.

  • Сведения об ошибках.

1

Объединяет уровень ведения журнала 0 и следующие события.

  • Статистика выполнения.

  • Ход непрерывно работающего сбора.

  • Предупреждающие события от служб SSIS.

2

Объединяет уровень ведения журнала 1 и подробные события служб SSIS.

По умолчанию выбран уровень ведения журнала 0. Уровень 0 используется, чтобы избежать избыточных сообщений журнала, таких как события-предупреждения, формируемые при ведении журнала на уровне 1. Эти события-предупреждения могут включать рекомендации по повышению производительности от служб SSIS, которые не могут быть исправлены пользователем.

Уровень 2 предоставляет дополнительную информацию о событиях, которая может использоваться для устранения неполадок.

События служб SSIS

Каждый пакет сборщика данных использует поставщик событий SQL Server. События, описанные в следующей таблице, регистрируются и доступны для просмотра.

Имя события

Уровень ведения журнала

Описание

PackageBegin

0

Стандартное событие, которое создается всегда. Это событие нельзя отключить.

PackageEnd

0

Стандартное событие, которое создается всегда. Это событие нельзя отключить.

OnError

0

Событие об ошибке.

OnWarning

1

Событие-предупреждение.

PipelineBufferLeak

2

Предоставляет сведения обо всех компонентах, которые удерживают буферы от уничтожения после того, как диспетчер буферов завершил выполнение. Если буфер все еще существует, ресурсы буфера не освобождаются и могут вызвать утечку памяти. Данная запись журнала предоставляет имя компонента и идентификатор буфера.

PipelineExecutionPlan

2

Сообщает о плане выполнения потока данных. План выполнения предоставляет сведения о том, как буферы будут отсылаться компонентам. Эти сведения в сочетании с записью журнала PipelineExecutionTrees описывают работу задачи потока данных.

PipelineExecutionTrees

2

Сообщает о дереве выполнения макета в потоке данных. Диспетчер подсистемы обработки потока данных использует деревья для построения плана выполнения потока данных.

PipelineInitialization

2

Предоставляет сведения об инициализации задачи. Эти сведения включают каталоги, используемые для временного хранения данных типа больших двоичных объектов (BLOB), размер буфера по умолчанию и количество строк в буфере. В зависимости от настройки задачи «Поток данных», возможно формирование нескольких записей в журнале.

ExecuteSQLExecutingQuery

2

Предоставляет сведения об этапах выполнения инструкции SQL. Записи журнала формируются в тот момент, когда задача соединяется с базой данных, когда задача приступает к подготовке инструкции SQL и после того, как завершается выполнение инструкции SQL. Запись журнала для этапа подготовки содержит инструкцию SQL, которая используется задачей.

FileSystemOperation

2

Сообщает об операции, выполняемой задачей. Эта запись журнала формируется в момент начала операции файловой системы и включает сведения об источнике и назначении.

ExecuteProcessExecutingProcess

2

Предоставляет сведения о процессе, для запуска которого настроена задача.

В журнале формируются две записи. Одна из них предоставляет сведения об имени и месте выполнения исполняемого объекта, на запуск которого настроена задача, другая фиксирует выход из исполняемого объекта.

Доступ и просмотр данных журнала

Получить доступ и просмотреть данные журнала можно программно с помощью функций и представлений. Также для этого можно использовать средство просмотра журналов обозревателя объектов среды Management Studio. Дополнительные сведения см. в разделе Как просмотреть журналы набора данных.

В следующей таблице приведены функции и представления, использующиеся для доступа к данным журнала.

Имя

Описание

fn_syscollector_get_execution_details (Transact-SQL)

Возвращает подробные сведения о наборе и пакете сбора для заданного идентификатора «log_id» и всех зависимых от него записей журнала.

fn_syscollector_get_execution_stats (Transact-SQL)

Возвращает набор статистических данных для запрошенного идентификатора log_id. Статистика вычисляется по записям представления syscollector_execution_stats.

syscollector_execution_log (Transact-SQL)

Позволяет просмотреть таблицу syscollector_execution_log_internal.

syscollector_execution_log_full (Transact-SQL)

Позволяет просмотреть таблицу syscollector_execution_log_internal во всех подробностях и отображает записи журнала в иерархии, начиная с записи о сборе верхнего уровня и заканчивая всеми пакетами, запущенными во время выполнения сбора.

syscollector_execution_stats (Transact-SQL)

Позволяет просмотреть таблицу syscollector_execution_stats_internal в масштабе 1:1.