Поделиться через


Реализация ведения журналов в пакетах

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

Службы Integration Services предоставляют большой набор регистраторов и дают возможность создавать пользовательские регистраторы. Регистраторы служб Integration Services могут помещать записи журнала в текстовые файлы, SQL Server Profiler, SQL Server, журнал событий Windows или XML-файлы.

Журналы ассоциируются с пакетами и настраиваются на уровне пакета. Каждая задача или контейнер пакета может вести журнал в любом журнале пакета. Можно включить ведение журналов задач и контейнеров пакета, даже если ведение журнала содержащего их пакета не включено. Например, можно включить ведение журнала задачи «Выполнение SQL», не включая ведение журнала ее родительского пакета. Пакет, контейнер и задача могут делать записи в нескольких журналах. Можно включить ведение журнала только для пакета либо для любой индивидуальной задачи или контейнера, содержащегося в пакете.

Чтобы настроить ведение журнала для события или пользовательского сообщения, службы Integration Services предоставляют схему общих записываемых данных для включения в записи журнала. Схема журнала служб Integration Services определяет данные, которые можно сохранить в журнал. Можно выбрать элементы схемы журнала для каждой записи.

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

Можно выбрать необходимый уровень ведения журналов, указав события и данные каждого события для записи. Можно обнаружить, что одни события предоставляют более полезные сведения, чем другие. Например, можно записывать в журнал не только имена компьютеров и операторов для события PreExecute, но и все доступные данные о событии Error.

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

В конструкторе служб SSIS можно определить параметры ведения журналов с помощью диалогового окна Настройка журналов служб SSIS.

Схема журнала

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

Элемент

Описание

Computer

Имя компьютера, на котором произошло событие журнала.

Operator

Удостоверение пользователя, выполнившего запуск пакета.

SourceName

Имя контейнера или задачи, где произошло событие журнала.

SourceID

Уникальный идентификатор пакета контейнеров «цикл по элементам», «цикл по каждому элементу» или контейнера последовательности; или задача, в которой произошло событие журнала.

ExecutionID

Идентификатор GUID экземпляра выполнения пакета.

ПримечаниеПримечание
Запуск одного пакета может создать записи в журнале с разными значениями для элемента ExecutionID. Например, при запуске пакета в среде BI Development Studio на этапе проверки могут быть созданы записи в журнале с элементом ExecutionID, который соответствует среде BI Development Studio. Однако на этапе выполнения могут быть созданы записи журнала с элементом ExecutionID, соответствующим файлу dtshost.exe. Другой пример, когда запускается пакет, содержащий задачи «Выполнение пакета», каждая из этих задач запускается в дочернем пакете. Эти дочерние пакеты могут создавать записи в журнале, имеющие отличные элементы ExecutionID от тех, что создаются в родительском пакете.

MessageText

Сообщение, связанное с записью журнала.

DataBytes

Байтовый массив, специфичный для записи журнала. Значение этого поля изменяется в зависимости от записи журнала.

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

Элемент

Описание

StartTime

Время начала работы контейнера или задачи.

EndTime

Время прекращения работы контейнера или задачи.

DataCode

Необязательное целочисленное значение, которое обычно содержит значение из перечисления DTSExecResult, показывающее результат выполнения контейнера или задачи:

  • 0 — успешное завершение;

  • 1 — неуспешное завершение;

  • 2 — завершено;

  • 3 — отменено.

Записи журнала

Службы Integration Services поддерживают записи журнала для стандартных событий и предоставляют пользовательские записи журнала для многих объектов служб Integration Services. В конструкторе служб SSIS эти события и пользовательские записи журнала перечислены в диалоговом окне Настройка журналов служб SSIS.

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

События

Описание

OnError

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

OnExecStatusChanged

Производит запись в журнал при изменении состояния выполнения исполняемого объекта.

OnInformation

Производит запись в журнал во время проверки подлинности и выполнения исполняемого объекта.

OnPostExecute

Производит запись немедленно после окончания выполнения исполняемого объекта.

OnPostValidate

Производит запись в журнал при завершении проверки подлинности исполняемого объекта.

OnPreExecute

Производит запись сразу перед началом выполнения исполняемого объекта.

OnPreValidate

Производит запись в журнал при начале проверки подлинности исполняемого объекта.

OnProgress

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

OnQueryCancel

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

OnTaskFailed

Производит запись в журнал при возникновении ошибки задачи.

OnVariableValueChanged

Производит запись в журнал при изменении значения переменной.

OnWarning

Производит запись в журнал при возникновении предупреждения.

PipelineComponentTime

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

Диагностика

Вносит в журнал запись, содержащую диагностические сведения.

Например, возможно вносить запись в журнал до и после каждого вызова к внешнему поставщику данных. Дополнительные сведения см. в разделе Устранение неполадок выполнения пакетов.

В пакете и во многих задачах есть пользовательские записи журнала, которые можно включить для ведения журнала. Например, задача «Отправка почты» предоставляет запись журнала SendMailTaskBegin, которая производит запись данных в начале выполнения задачи «Отправка почты», но перед тем, как задача осуществляет отправку почты. Дополнительные сведения см. в разделе Пользовательские сообщения для ведения журнала.

Различие копий пакета

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

Чтобы устранить неоднозначность, следует обновить имя и идентификатор GUID новых пакетов. В среде Business Intelligence Development Studio можно заново сформировать идентификатор GUID для свойства ID и обновить значение свойства Name в окне свойств. Можно также изменить имя и идентификатор GUID программно или с помощью команды dtutil . Дополнительные сведения см. в разделах Установка свойств пакета и Программа dtutil.

Параметры родительского ведения журналов

Часто параметры ведения журналов задач и контейнеров «цикл по элементам» и «цикл по каждому элементу», а также контейнеров последовательности соответствуют параметрам пакета или родительского контейнера. В этом случае можно настроить их для наследования настроек ведения журналов от родительского контейнера. Например, в контейнере «цикл по элементам», включающем задачу «Выполнение SQL», эта задача может использовать параметры ведения журналов, установленные для контейнера «цикл по элементам». Для использования родительских параметров ведения журналов установите свойство контейнера LoggingMode в UseParentSetting. Можно установить это свойство в окне Свойства среды Business Intelligence Development Studio или через диалоговое окно Настройка журналов служб SSIS в конструкторе служб SSIS.

Шаблоны ведения журналов

В диалоговом окне Настройка журналов SSIS также можно создать и сохранить часто используемые параметры ведения журналов в качестве шаблонов, и затем использовать эти шаблоны во многих пакетах. Это облегчает применение согласованной стратегии ведения журналов многочисленных пакетов и изменения параметров ведения журналов пакетов путем обновления шаблонов с последующим их применением. Шаблоны хранятся в XML-файлах.

Настройка ведения журналов с помощью диалогового окна «Конфигурация журналов служб SSIS»

  1. Включите журналирование пакета и его задач. Журналирование может происходить на уровне пакета, контейнера или задачи. Можно указать различные журналы для пакетов, контейнеров и задач.

  2. Выберите регистратора и добавьте журнал пакета. Журналы могут быть созданы только на уровне пакета, а задача или контейнер должны использовать один из журналов, созданных для пакета. Каждый из журналов ассоциирован с одним из следующих регистраторов: текстовый файл, Приложение SQL Server Profiler, SQL Server, журнал событий Windows или XML-файл. Дополнительные сведения см. в разделе Как Включение ведения журналов в пакете.

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

Просмотр записи журнала во время разработки пакета

Значок служб Integration Services (маленький) Будьте в курсе новых возможностей cлужб Integration Services

Чтобы загрузить новейшую документацию, статьи, образцы и видеоматериалы от корпорации Майкрософт, а также лучшие решения от участников сообщества, посетите страницу служб Integration Services на сайтах MSDN или TechNet:

Чтобы получать автоматические уведомления об этих обновлениях, подпишитесь на RSS-каналы, предлагаемые на этой странице.