Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
среда выполнения интеграции SSIS в Фабрика данных Azure
Службы SQL Server Integration Services включают поставщики журналов, которые можно использовать для реализации ведения журнала в пакетах, контейнерах и задачах. При ведении журнала можно записать текущие сведения о пакете, что поможет при каждом выполнении пакета проводить его аудит и устранять неисправности. Например, журнал может записать имя оператора, запускающего пакет, и время, в которое пакет был начат или завершен.
Вы можете настроить область журналирования при выполнении пакета на сервере Integration Services. Дополнительные сведения см. в разделе Включение ведения журналов при выполнении пакета на сервере служб SSIS.
Можно также включить ведение журнала при выполнении пакета из командной строки с помощью программы dtexec . Дополнительные сведения об аргументах командной строки, относящихся к ведению журналов, см. в разделе служебная программа dtexec.
Настройка журналирования в SQL Server Data Tools
Журналы ассоциируются с пакетами и настраиваются на уровне пакета. Каждая задача или контейнер в пакете может записывать сведения в любой журнал пакета. Для задач и контейнеров в пакете можно включить ведение журнала, даже если для самого пакета оно не включено. Например, можно включить ведение журнала для задачи «Выполнение SQL», не включая ведение журнала для родительского пакета. Пакет, контейнер и задача могут делать записи в нескольких журналах. Можно включить ведение журнала только для пакета либо для любой индивидуальной задачи или контейнера, содержащегося в пакете.
При добавлении журнала в пакет вы выбираете поставщика журналов и место хранения журнала. Поставщик журналов задает формат данных журнала: например, базу данных SQL Server или текстовый файл.
Службы Integration Services включают следующие поставщики журналов:
Поставщики журналов текстовых файлов, которые ведут журнальные записи в текстовых файлах ASCII в формате значений, разделенных запятыми (CSV). Расширением имени файла по умолчанию для этого поставщика является .log.
Поставщик журналов SQL Server Profiler, записывающий трассировки, которые можно просматривать в SQL Server Profiler. Расширение имени файла по умолчанию для этого поставщика — .trc.
Примечание.
Невозможно использовать поставщик журналов SQL Server Profiler в пакете, работающем в 64-разрядном режиме.
Поставщик журналов SQL Server, который записывает записи журнала в таблицу sysssislog в базе данных SQL Server. Вы можете снизить производительность при входе в системную базу данных, например master или msdb. Рекомендуется создать отдельную базу данных для ведения журнала Integration Services.
Поставщик службы Windows «Журнал событий», который ведет журнальные записи в прикладном журнале службы Windows «Журнал событий» на локальном компьютере.
Поставщик журнала XML File, который записывает журнальные файлы в XML-файл. По умолчанию для имени файла данного регистратора используется расширение XML.
Если вы добавляете поставщика журналов в пакет или настраиваете ведение журнала программным способом, вы можете использовать ProgID или ClassID для идентификации поставщика журналов, а не использовать имена, отображаемые конструктором служб SSIS в диалоговом окне "Настройка журналов служб SSIS".
В следующей таблице перечислены идентификаторы ProgID и ClassID поставщиков журналов, включённых в Integration Services, а также расположение журналов, в которые эти поставщики журналов выполняют запись.
| Поставщик журналов | ProgID | ClassID: | Расположение |
|---|---|---|---|
| Текстовый файл | DTS.LogProviderTextFile | {0A039101-ACC1-4E06-943F-279948323883} | Диспетчер соединений с файлами, используемый поставщиком журналов, задает путь к текстовому файлу. |
| Профилировщик SQL Server | DTS.LogProviderSQLProfiler | {E93F6300-AE0C-4916-A7BF-A8D0CE12C77A} | Диспетчер подключений к файлам, используемый поставщиком журналов, указывает путь к файлу, используемому SQL Server Profiler. |
| SQL Server | DTS.LogProviderSQLServer | {94150B25-6AEB-4C0D-996D-D37D1C4FDEDA} | Диспетчер соединений OLE DB, используемый поставщиком журналов, указывает базу данных SQL Server, содержащую таблицу sysssislog с записями журнала. |
| Журнал событий Windows | DTS.LogProviderEventLog | {071CC8EB-C343-4CFF-8D58-564B92FCA3CF} | Журнал приложений в Просмотре событий Windows содержит сведения из журнала Integration Services. |
| XML-файл | DTS.LogProviderXMLFile | {440945A4-2A22-4F19-B577-EAF5FDDC5F7A} | Используемый регистратором диспетчер соединения файлов определяет путь к XML-файлу. |
Вы также можете создавать пользовательские поставщики журналирования. Дополнительные сведения см. в разделе Creating a Custom Log Provider.
Поставщики журналов в пакете входят в коллекцию поставщиков журналов пакета. При создании пакета и реализации ведения журнала с помощью конструктора служб SSIS можно просмотреть список элементов коллекции в папках поставщика журналов на вкладке обозревателя пакетов конструктора служб SSIS.
Настройка поставщика журналов выполняется путем указания имени и описания поставщика журналов, а также диспетчера подключений, который он использует. Поставщик журналов SQL Server использует диспетчер соединений OLE DB. Текстовый файл, SQL Server Profiler и поставщики журналов XML-файлов используют диспетчеры подключений к файлам. Регистратор журнала событий Windows не использует диспетчер соединений, потому что он напрямую обращается к журналу регистрации событий Windows. Дополнительные сведения см. в разделах Диспетчер соединений OLE DB и диспетчер подключения файлов.
Настройка ведения журналов
Чтобы настроить ведение журнала события или пользовательского сообщения, службы Integration Services предоставляет схему часто регистрируемых сведений для включения в записи журнала. Схема журнала Integration Services определяет, какие сведения можно заносить в журнал. Можно выбрать элементы схемы журнала для каждой записи.
Пакету и его контейнерам и задачам не требуется производить запись одних и тех же данных, и задачи одного пакета или контейнера могут производить запись различных данных. Например, пакет может производить запись сведений об операторе при запуске, одна задача может производить запись об источнике ошибки, а другая задача может производить запись о времени этой ошибки. Если пакет и его задачи, а также контейнеры используют несколько журналов, то одни и те же данные записываются во все журналы.
Можно выбрать необходимый уровень ведения журналов, указав события и данные каждого события для записи. Можно обнаружить, что одни события предоставляют более полезные сведения, чем другие. Например, можно записывать в журнал не только имена компьютеров и операторов для события PreExecute , но и все доступные данные о событии Error .
Для предотвращения использования журналами больших объемов дискового пространства или во избежание избыточного ведения журналов, которое может уменьшить производительность, можно ограничить ведение журналов, выбрав отдельные события и элементы данных для записи. Например, можно настроить журнал на запись только даты и имени компьютера для каждой ошибки.
В конструкторе служб SSIS вы определяете параметры ведения журнала с помощью диалогового окна "Настройка журналов служб SSIS".
Схема журнала
Следующая таблица описывает элементы схемы журнала.
| Элемент | Описание |
|---|---|
| Компьютер | Имя компьютера, на котором было зарегистрировано событие в журнале. |
| Оператор | Удостоверение пользователя, выполнившего запуск пакета. |
| SourceName | Название контейнера или задачи, в которых было зарегистрировано событие в журнале. |
| SourceID | Уникальный идентификатор пакета, контейнера «For Loop», «Foreach Loop» или «Sequence», либо задачи, в которой произошло событие журнала. |
| ExecutionID | Идентификатор GUID экземпляра выполнения пакета. Примечание. Запуск одного пакета может создать записи в журнале с разными значениями для элемента ExecutionID. Например, при запуске пакета в SQL Server Data Tools этап проверки может создавать записи журнала с элементом ExecutionID, соответствующим SQL Server Data Tools. Однако на этапе выполнения могут быть созданы записи журнала с элементом ExecutionID, соответствующим файлу dtshost.exe. Другой пример, когда запускается пакет, содержащий задачи «Выполнение пакета», каждая из этих задач запускается в дочернем пакете. Эти дочерние пакеты могут создавать записи в журнале, имеющие отличные элементы ExecutionID от тех, что создаются в родительском пакете. |
| MessageText | Сообщение, связанное с записью журнала. |
| DataBytes | Байтовый массив, специфичный для записи журнала. Значение этого поля изменяется в зависимости от записи журнала. |
В следующей таблице описываются три дополнительных элемента схемы журнала, которые недоступны во вкладке Подробные сведения диалогового окна Настройка журналов служб SSIS .
| Элемент | Описание |
|---|---|
| Время начала | Время начала работы контейнера или задачи. |
| Время окончания | Время прекращения работы контейнера или задачи. |
| 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 | Производит запись в журнал по каждой фазе проверки и выполнения каждого компонента потока данных. В записях журнала указывается время обработки каждой фазы. |
|
Диагностика DiagnosticEx |
Вносит в журнал запись, содержащую диагностические сведения. Например, возможно вносить запись в журнал до и после каждого вызова к внешнему поставщику данных. Дополнительные сведения см. в разделе Инструменты устранения неполадок при выполнении пакетов. Записывайте в журнал событие DiagnosticEx, если необходимо найти имена столбцов в потоке данных, которые содержат ошибки. Это событие записывает в журнал карту происхождения потока данных. Затем вы сможете найти имя столбца в этой схеме происхождения данных с помощью идентификатора столбца, зафиксированного в выводе ошибок. Дополнительные сведения см. в разделе Обработка ошибок в данных. Обратите внимание, что событие DiagnosticEx не сохраняет пробелы в выводе XML, чтобы уменьшить размер журнала. Для улучшения удобочитаемости скопируйте журнал (например, в решении Visual Studio) в редактор XML, поддерживающий форматирование XML и выделение синтаксиса. Примечание. При записи события DiagnosticEx в журнал с помощью регистратора SQL Server, отображаемый результат может быть усечен. Поле message регистратора SQL Server имеет тип nvarchar(2048). Во избежание усечения при записи события DiagnosticEx в журнал используйте другой регистратор. |
Пакет и многие задачи содержат настраиваемые записи журнала, которые можно включить при ведении журнала. Например, задача «Отправка почты» предоставляет пользовательскую запись журнала SendMailTaskBegin, в которую заносится информация при запуске задачи «Отправка почты», но до того, как задача отправит сообщение электронной почты. Дополнительные сведения см. в разделе Настраиваемые сообщения для ведения журнала.
Различение копий пакета
Данные журнала содержат имя и идентификатор GUID пакета, которому принадлежит запись журнала. Если вы создаете новый пакет, копируя существующий, имя и GUID существующего пакета также копируются. Это приводит к появлению двух элементов с одинаковыми именами и идентификаторами GUID, что приводит к трудностям при выделении пакетов из данных журнала.
Чтобы устранить неоднозначность, следует обновить имя и идентификатор GUID новых пакетов. В SQL Server Data Tools (SSDT) можно повторно сгенерировать GUID в свойстве ID и обновить значение свойства Name в окне "Свойства". Можно также изменить имя и идентификатор GUID программно или с помощью команды dtutil . Дополнительные сведения см. в разделах Установка свойств пакета и Программа dtutil.
Параметры родительского ведения журналов
Часто параметры ведения журнала задач, а также контейнеров «цикл For», «цикл Foreach» и «последовательность» совпадают с параметрами пакета или родительского контейнера. В этом случае можно настроить их для наследования настроек ведения журналов от родительского контейнера. Например, в контейнере «цикл по элементам», включающем задачу «Выполнение SQL», эта задача может использовать параметры ведения журналов, установленные для контейнера «цикл по элементам». Для использования родительских параметров ведения журналов установите для свойства контейнера LoggingMode значение UseParentSetting. Это свойство можно задать в окне свойств SQL Server Data Tools (SSDT) или в диалоговом окне "Настройка журналов служб SSIS" в конструкторе служб SSIS.
Шаблоны ведения журналов
В диалоговом окне Настройка журналов SSIS также можно создать и сохранить часто используемые параметры ведения журналов в качестве шаблонов, и затем использовать эти шаблоны во многих пакетах. Это облегчает применение согласованной стратегии ведения журналов многочисленных пакетов и изменения параметров ведения журналов пакетов путем обновления шаблонов с последующим их применением. Шаблоны хранятся в XML-файлах.
Настройка ведения журналов с помощью диалогового окна «Конфигурация журналов служб SSIS»
Включите журналирование пакета и его задач. Журналирование может происходить на уровне пакета, контейнера или задачи. Можно указать различные журналы для пакетов, контейнеров и задач.
Выберите поставщика журналов и добавьте журнал для пакета. Журналы могут быть созданы только на уровне пакета, а задача или контейнер должны использовать один из журналов, созданных для пакета. Каждый журнал связан с одним из следующих поставщиков журналов: текстовый файл, SQL Server Profiler, SQL Server, журнал событий Windows или XML-файл. Дополнительные сведения см. в разделе Включение средств ведения журналов в SQL Server Data Tools.
Выберите события и схему данных журнала для этих событий, запись о которых должна содержаться в журнале. Дополнительные сведения см. в разделе Настройка ведения журналов с помощью сохраненного файла конфигурации.
Настройка поставщика журналов
Свойства могут быть заданы с помощью конструктора SSIS или программным путем.
Поставщик журналирования создаётся и настраивается на этапе реализации журналирования в пакете.
После создания поставщика журналов можно просмотреть и изменить его свойства в окно свойств SQL Server Data Tools (SSDT).
Дополнительные сведения о программной установке этих свойств см. в документации по классу LogProvider .
Ведение журналов для задач потока данных
Задача потока данных предоставляет много пользовательских записей журнала, которые можно использовать для мониторинга и настройки производительности. Например, можно отслеживать компоненты, вызывающие утечку памяти, или следить за скоростью запуска отдельного компонента. Список пользовательских записей журнала и образец их вывода см. в разделе Задача потока данных.
Фиксировать имена столбцов, в которых возникают ошибки
При настройке вывода ошибок в потоке данных по умолчанию вывод ошибок отображает только числовой идентификатор столбца, в котором произошла ошибка. Дополнительные сведения см. в разделе Обработка ошибок в данных.
Вы можете найти имена столбцов, включив ведение журнала и выбрав событие DiagnosticEx . Это событие записывает в журнал карту происхождения потока данных. Затем в этой карте происхождения данных можно найти имя столбца по его идентификатору. Обратите внимание, что событие DiagnosticEx не сохраняет пробелы в выводе XML, чтобы уменьшить размер журнала. Для улучшения удобочитаемости скопируйте журнал (например, в решении Visual Studio) в редактор XML, поддерживающий форматирование XML и выделение синтаксиса.
Использование события PipelineComponentTime
Возможно, самой полезной записью журнала является событие PipelineComponentTime. Эта запись журнала сообщает о времени в миллисекундах, которое каждый компонент потока данных тратит на каждом из пяти основных шагов обработки. В следующей таблице описываются эти шаги обработки. Разработчики служб Integration Services распознают эти шаги как основные методы PipelineComponent.
| Этап | Описание |
|---|---|
| Проверить | Компонент проверяется на допустимость значений свойств и параметров настройки. |
| Предварительное выполнение | Компонент выполняет однократную обработку перед началом обработки строк данных. |
| PostExecute | Компонент выполняет однократную обработку после обработки всех строк данных. |
| ProcessInput | Компонент преобразования или назначения обрабатывает входящие строки данных, которые передает ему вышестоящий источник или преобразование. |
| PrimeOutput | Компонент источника или преобразования заполняет буферы данных, которые должны передаваться в нижестоящий компонент преобразования или назначения. |
При включении события PipelineComponentTime службы Integration Services регистрируют одно сообщение для каждого шага обработки, выполняемого каждым компонентом. В следующих записях журнала показана часть сообщений, которые регистрируются в журнале образцом пакета CalculatedColumns для Integration Services:
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).
Эти записи показывают, что задача потока данных затратила наибольшее время на следующие шаги, представленные ниже в убывающем порядке.
Источник OLE DB с именем "Извлечение данных" потратил 688 мс на загрузку данных.
Преобразование «Производный столбец» с именем "Calculate LineItemTotalCost" затратило 356 мс на выполнение вычислений для входящих строк.
Преобразование Aggregate с именем "Sum Quantity and LineItemTotalCost" затратило в общей сложности 220 мс: 141 в PrimeOutput и 79 в ProcessInput, выполняя вычисления и передавая данные следующему преобразованию.
Включить ведение журналов для пакета в SQL Server Data Tools
В этой процедуре описывается, как добавлять журналы в пакет, настраивать ведение журналов на уровне пакетов и сохранять настройку ведения журналов в XML-файле. Журнал можно добавить только на уровне пакета, однако пакеты не обязаны осуществлять ведение журналов, чтобы включить ведение журналов в контейнерах, которые содержатся в этих пакетах.
Внимание
Если развернуть проект служб Integration Services на сервере служб Integration Services, то уровень ведения журнала, заданный для выполнения пакета, имеет приоритет над параметрами ведения журнала пакета, настроенными с помощью SQL Server Data Tools (SSDT).
По умолчанию к контейнерам в пакете применяются те же самые настройки ведения журналов, что и к их родительскому контейнеру. Дополнительные сведения об установке параметров ведения журналов для отдельных контейнеров см. в разделе Настройка ведения журналов с помощью сохраненного файла конфигурации.
Включить ведение журнала в пакете
В SQL Server Data Tools откройте проект служб Integration Services, содержащий нужный пакет.
В меню SSIS нажмите Ведение журнала.
Выберите поставщика журналов в списке Тип поставщика, а затем щелкните Добавить.
В столбце Конфигурация выберите диспетчер подключений или щелкните <Создать подключение>, чтобы создать новый диспетчер подключений соответствующего типа для поставщика журналов. В зависимости от выбранного поставщика используйте один из следующих диспетчеров соединений:
Для текстовых файлов используйте диспетчер соединений с файлами. Дополнительные сведения см. в разделе Диспетчер соединений с файлами.
Для SQL Server Profiler используйте диспетчер соединений с файлами.
Для SQL Server используйте диспетчер соединений OLE DB. Дополнительные сведения см. в разделе Диспетчер соединений OLE DB.
Для журнала событий Windows ничего не делайте. Службы SSIS автоматически создают журнал.
Для XML-файлов используется диспетчер подключения файлов.
Для каждого журнала, используемого в пакете, повторите шаги 3 и 4.
Примечание.
Пакет может задействовать более одного журнала каждого типа.
При необходимости установите флажок уровня пакетов, выберите журналы для ведения на уровне пакетов и перейдите на вкладку Подробности .
На вкладке Подробности установите флажок События для сохранения всех записей журнала или снимите флажок События , чтобы выбрать отдельные события.
При необходимости перейдите на вкладку Дополнительно , чтобы указать, какие именно данные следует вносить в журнал.
Примечание.
По умолчанию в журнал вносятся все данные.
На вкладке Сведения нажмите кнопку Сохранить. Откроется диалоговое окно Сохранить как. Выберите папку для хранения настроек ведения журнала, введите имя файла для конфигурации нового журнала и щелкните Сохранить.
Щелкните OK.
Чтобы сохранить обновленный пакет, выберите пункт Сохранить выбранные элементы в меню Файл .
Диалоговое окно «Настройка журналов SSIS»
Используйте диалоговое окно Настройка журналов служб SSIS для настройки параметров ведения журнала для пакета.
Что вы хотите сделать?
Откройте диалоговое окно «Настройка журналов служб SSIS»
Открытие диалогового окна «Настройка журналов служб SSIS»
- В конструкторе служб SSIS щелкните "Ведение журнала" в меню служб SSIS.
Настройка параметров на панели «Контейнеры»
Используйте панель Контейнеры в диалоговом окне Настройка журналов служб SSIS для включения записи в журнал пакета и его контейнеров.
Параметры
Контейнеры
Установите флажки в древовидном представлении, чтобы включить ведение журнала для пакета и его контейнеров:
Если флажок снят, для контейнера не включено ведение журнала. Выберите, чтобы включить ведение журнала.
Если контейнер отображается неактивным, он использует параметры ведения журнала родительского контейнера. Данный параметр недоступен для пакетов.
Если флажок установлен, контейнер определяет собственные параметры записи в журнал.
Если контейнер затенён и требуется задать для него параметры ведения журнала, дважды щёлкните флажок этого контейнера. Первый щелчок снимает флажок, а второй устанавливает его, что позволяет выбрать поставщиков журналов и указать, какие сведения заносить в журнал.
Настройка параметров на вкладке «Поставщики и журналы»
Используйте вкладку Поставщики и журналы диалогового окна Конфигурация журналов служб SSIS , чтобы создать и конфигурировать журналы, регистрирующие события выполнения.
Параметры
Тип поставщика
Выберите тип поставщика журналов из списка.
Прибавить
Добавьте средство ведения журнала указанного типа в коллекцию поставщиков журналов пакета.
Имя
Включите или отключите журналы для контейнеров или задач, выбранных на панели Контейнеры диалогового окна Настройка журналов служб SSIS с помощью флажков. Поле имени является редактируемым. Используйте для поставщика имя по умолчанию или введите уникальное описательное имя.
Description
Поле описания является редактируемым. Нажмите и отредактируйте описание журнала по умолчанию.
Конфигурация
Выберите диспетчер подключений из списка или щелкните <Создать соединение...>, чтобы создать его. В зависимости от типа регистратора можно настраивать диспетчер соединений OLE DB или диспетчер соединений файлов. Поставщик журналов для журнала событий Microsoft Windows не требует подключения.
См. также: Диспетчер соединений OLE DB, Диспетчер соединений файлов
Удаление
Выберите поставщика журналов, а затем нажмите Удалить.
Настройка параметров на вкладке «Подробные сведения»
Вкладка Подробности в диалоговом окне Настройка журналов служб SSIS позволяет задать события, по которым включается запись в журнал, и определить записываемые в журнал сведения. Выбранные сведения применяются ко всем поставщикам журналов в пакете. Например, вы не можете записать некоторые сведения в экземпляр SQL Server и другие сведения в текстовый файл.
Параметры
События
Включить или отключить события для записи в журнал.
Description
Просмотрите описание события.
Расширенные
Выберите или удалите события для записи, выберите или удалите сведения, которые должны записываться в журнал для каждого события. Чтобы скрыть сведения, записываемые в журнал, и оставить только список событий, нажмите кнопку Основной . Записывать в журнал можно следующие сведения:
| значение | Описание |
|---|---|
| Компьютер | Имя компьютера, на котором произошло записываемое в журнал событие. |
| Оператор | Имя пользователя, запустившего пакет. |
| SourceName | Имя пакета, контейнера или задачи, в котором произошло записываемое в журнал событие. |
| SourceID | Глобально уникальный идентификатор (GUID) пакета, контейнера или задачи, в которой произошло зарегистрированное событие. |
| ExecutionID | Глобально уникальный идентификатор экземпляра выполнения пакета. |
| MessageText | Сообщение, связанное с записью журнала. |
| DataBytes | Зарезервировано для последующего использования. |
Базовая
Выберите или удалите события для записи в журнал. Этот параметр позволяет скрыть записываемые в журнал сведения, за исключением списка событий. Если выбрать событие, то все записываемые в журнал сведения для события выбираются автоматически. Чтобы просмотреть все записываемые в журнал сведения, выберите параметр Дополнительно .
Загрузка
Укажите XML-файл, используемый в качестве шаблона настройки параметров журнала.
Сохранить
Сохраните детализацию настройки в виде шаблона в XML-файл.
Настройка ведения журналов с помощью сохраненного файла конфигурации
Эта процедура описывает, как настроить ведение журнала для новых контейнеров в пакете с помощью загрузки предварительно сохраненного файла конфигурации ведения журнала.
По умолчанию все контейнеры пакета используют такую же конфигурацию ведения журнала, что и родительский контейнер. Например, задачи в цикле Foreach используют ту же конфигурацию ведения журнала, что и цикл Foreach.
Настройка ведения журнала для контейнера
В SQL Server Data Tools откройте проект служб Integration Services, содержащий нужный пакет.
В меню SSIS нажмите Ведение журнала.
Разверните представление пакета в виде дерева и выберите контейнер для настройки.
На вкладке Поставщики и журналы выберите журналы, которые будут использоваться для контейнера.
Примечание.
Создавать журналы можно только на уровне пакета. Дополнительные сведения см. в разделе Включение средств ведения журналов в SQL Server Data Tools.
Перейдите на вкладку Подробности и нажмите кнопку Загрузить.
Найдите файл конфигурации ведения журнала, который необходимо использовать, и нажмите кнопку Открыть.
Можно выбрать другую запись журнала, установив соответствующий ей флажок в столбце События . Нажмите кнопку Дополнительно , чтобы выбрать тип сведений для занесения в журнал для этой записи.
Примечание.
Новый контейнер может включать дополнительные записи журнала, которые недоступны для контейнера, изначально использованного для создания конфигурации ведения журнала. Эти дополнительные записи журнала должны быть выбраны вручную, если необходимо их ведение.
Чтобы сохранить обновленную версию конфигурации ведения журнала, нажмите кнопку Сохранить.
Чтобы сохранить обновленный пакет, выберите пункт Сохранить выбранные элементы в меню Файл .
Включить ведение журнала при выполнении пакета на сервере SSIS
В этом разделе описывается настройка или изменение уровня ведения журнала пакета при запуске пакета, развернутого на сервере Служб Integration Services. Уровень ведения журнала, заданный при запуске пакета, переопределяет ведение журнала пакетов, настраиваемого во время разработки в SQL Server Data Tools (SSDT). Дополнительные сведения см. в разделе Включение средств ведения журналов в SQL Server Data Tools .
Просмотреть и настроить свойство уровня ведения журнала по умолчанию для сервера
В экземпляре SQL Server перейдите к пакету в обозревателе объектов.
Выберите Integration Services Catalog.
Щелкните правой кнопкой мыши SSISDB и выберите Свойства.
В Свойствах каталога найдите группу Журнал операций и параметр Уровень ведения журнала по умолчанию для всей службы.
Вы можете выбрать один из встроенных уровней ведения журнала, описанных в этой статье, или существующий пользовательский уровень. Выбранный уровень ведения журнала по умолчанию применяется ко всем пакетам, развернутым в каталоге SSIS. По умолчанию это также применяется к шагу задания SQL Server Agent, который запускает пакет SSIS.
Кроме того, вы можете указать уровень ведения журнала для отдельного пакета с помощью одного из следующих методов. Этот раздел охватывает первый метод.
Настройка экземпляра выполнения пакета с помощью диалогового окна «Выполнение пакета»
Задание параметров экземпляра исполнения с помощью catalog.set_execution_parameter_value (база данных SSISDB)
Настройка задания агента SQL Server для выполнения пакета с помощью диалогового окна «Новый шаг задания».
Настройка уровня ведения журнала для пакета с помощью диалогового окна "Выполнение пакета"
В SQL Server Management Studio найдите пакет в обозревателе объектов.
Щелкните пакет правой кнопкой мыши и выберите команду Выполнить.
Выберите в диалоговом окне Выполнение пакета вкладку Дополнительно .
В разделе Уровень ведения журналавыберите уровень ведения журнала. В этом разделе содержится описание доступных значений.
Настройте другие параметры пакета, а затем нажмите кнопку ОК , чтобы запустить пакет.
Выбор уровня ведения журнала
Доступны следующие встроенные уровни ведения журнала. Кроме того, вы можете выбрать существующий пользовательский уровень ведения журнала. В этой статье содержится описание пользовательских уровней ведения журнала.
| Уровень журналирования | Описание |
|---|---|
| Нет | Ведение журнала выключено. Регистрируется только состояние выполнения пакета. |
| Базовый | Записываются все события, за исключением пользовательских и диагностических событий. Это значение по умолчанию. |
| RuntimeLineage | Собирает данные, необходимые для отслеживания информации о происхождении данных в потоке данных. Вы можете обработать эту информацию о происхождении данных, чтобы сопоставить связи зависимости между задачами. Независимые поставщики программного обеспечения и разработчики могут на основе этой информации создавать собственные инструменты для сопоставления происхождения данных. |
| Производительность | Регистрируются только статистика производительности, а также события OnError и OnWarning. Отчет Производительность выполнения показывает активное и общее время компонентов потока данных пакета. Эта информация доступна, если уровень ведения журнала выполнения последнего пакета был задан как Производительность или Подробно. Дополнительные сведения см. в статье Reports for the Integration Services Server. Представление catalog.execution_component_phases отображает время начала и время окончания для компонентов потока данных для каждого этапа выполнения. Это представление содержит данные для этих компонентов, только если в качестве уровня ведения журнала выполнения пакета установлено значение Производительность или Подробно. |
| Подробный | Регистрируются все события, в том числе пользовательские и диагностические события. Пользовательские события включают те события, которые регистрируются задачами службы Integration Services. Дополнительные сведения о пользовательских событиях см. в разделе Пользовательские сообщения для ведения журнала. Пример диагностического события — событие DiagnosticEx . Когда задача "Выполнение пакета" выполняет дочерний пакет, это событие всегда записывает значения параметра, передаваемые в дочерние пакеты. Событие DiagnosticEx , кроме того, помогает получить имена столбцов, в которых на уровне строк происходят ошибки. Это событие записывает в журнал карту происхождения потока данных. Затем вы сможете найти имя столбца в этой схеме происхождения данных с помощью идентификатора столбца, зафиксированного в выводе ошибок. Дополнительные сведения см. в разделе Обработка ошибок в данных. Значение столбца сообщения для DiagnosticEx — это XML-текст. Для просмотра текста сообщения о выполнении пакета выполните запрос к представлению catalog.operation_messages (база данных SSISDB). Обратите внимание, что событие DiagnosticEx не сохраняет пробелы в выводе XML, чтобы уменьшить размер журнала. Для улучшения удобочитаемости скопируйте журнал (например, в решении Visual Studio) в редактор XML, поддерживающий форматирование XML и выделение синтаксиса. Представление catalog.execution_data_statistics отображает строку каждый раз, когда компонент потока данных передает данные в компонент, находящийся ниже в иерархии, для выполнения пакета. Чтобы фиксировать эту информацию в представлении, уровень ведения журнала должен быть установлен в значение Подробно. |
Создание пользовательских уровней ведения журнала и управление ими с помощью диалогового окна "Управление пользовательскими уровнями ведения журнала"
Вы можете создавать пользовательские уровни ведения журнала, в рамках которых собираются только нужные вам события и статистика. При необходимости можно записывать также контекст событий, который включает значения переменных, строки подключений и свойства компонентов. При запуске пакета можно выбрать настраиваемый уровень ведения журнала везде, где можно выбрать встроенный уровень ведения журнала.
Совет
Чтобы записать значения переменных пакета, для свойства IncludeInDebugDump переменных следует задать значение True.
Чтобы создать настраиваемые уровни ведения журнала и управлять ими, в SQL Server Management Studio щелкните правой кнопкой мыши базу данных SSISDB и выберите настраиваемый уровень ведения журнала, чтобы открыть диалоговое окно "Управление настраиваемым уровнем ведения журнала". Список настраиваемых уровней журналирования содержит все имеющиеся настраиваемые уровни журналирования.
Чтобы создать пользовательский уровень, щелкните Создатьи введите имя и описание. На вкладках Статистика и События выберите статистические данные и события, которые требуется собирать. На вкладке События при необходимости выберите Включить контекст для определенных событий. Нажмите кнопку Сохранить.
Чтобы обновить существующий пользовательский уровень ведения журнала, выберите его в списке, перенастройте, а затем нажмите кнопку Сохранить.
Чтобы удалить существующий пользовательский уровень ведения журнала, выберите его в списке и нажмите кнопку Удалить.
Разрешения для пользовательских уровней ведения журнала.
Когда пользователи базы данных SSISDB запускают пакеты, они видят пользовательские уровни ведения журнала и могут их выбирать.
Только пользователи с ролью ssis_admin или sysadmin могут создавать, обновлять и удалять пользовательские уровни ведения журнала.
Пользовательские сообщения для журналирования
Службы SQL Server Integration Services предусматривают большой набор пользовательских событий, предполагающих добавление записей в журнал для пакетов и многих задач. Записывая стандартные события или определенные пользователем сообщения с целью последующего анализа, можно сохранить подробные сведения о процессе выполнения, результатах и проблемах. Например, можно регистрировать моменты начала и окончания пакетной вставки, чтобы выявить проблемы с производительностью при запуске пакета.
Пользовательские записи журнала представляют собой набор записей, отличный от набора стандартных событий журналирования, доступных для пакетов, всех контейнеров и задач. Пользовательские записи журнала настраиваются для сбора полезной информации о конкретной задаче в пакете. Например, одна из настраиваемых записей журнала для задачи «Выполнить SQL» записывает в журнал SQL-инструкцию, которую выполняет эта задача.
Все записи в журнале содержат сведения о дате и времени, в том числе записи, которые автоматически формируются в начале и в конце выполнения пакета. Многие события создают несколько записей в журнале. Это обычно происходит в том случае, когда событие состоит из нескольких стадий. Например, событие журнала ExecuteSQLExecutingQuery формирует три записи: одну запись после того, как задача устанавливает соединение с базой данных, вторую после того, как задача приступает к подготовке инструкции SQL, и еще одну после того, как выполнение инструкции SQL завершается.
Следующие объекты службы Integration Services имеют настраиваемые записи в журнале:
Задача «Передача сообщений об ошибках»
Задача «Передача главных хранимых процедур»
Задача «Передача объектов SQL Server»
Задача «Считыватель данных WMI»
Задача «Отслеживание событий WMI»
Записи журнала
Пакет
В следующей таблице перечислены пользовательские записи журнала для пакетов.
| Запись журнала | Описание |
|---|---|
| PackageStart | Указывает, что выполнение пакета началось. Эта запись журнала формируется автоматически. Ее нельзя исключить. |
| PackageEnd | Указывает, что выполнение пакета завершено. Эта запись журнала формируется автоматически. Ее нельзя исключить. |
| Диагностика | Предоставляет сведения о настройках системы, влияющих на выполнение пакета, таких как количество одновременно исполняемых объектов. Запись журнала Diagnostic также включает записи, сделанные до и после обращения к внешним поставщикам данных. |
задача пакетной вставки
В следующей таблице приведены настраиваемые записи журнала для задачи «Массовая вставка».
| Запись журнала | Описание |
|---|---|
| DTSBulkInsertTaskBegin | Указывает, что массовая вставка началась. |
| DTSBulkInsertTaskEnd | Указывает, что массовая вставка завершена. |
| DTSBulkInsertTaskInfos | Предоставляет описательные сведения о задаче. |
Задача потока данных
В следующей таблице перечислены пользовательские записи в журнале для задачи потока данных.
| Запись журнала | Описание |
|---|---|
| Настройка размера буфера | Указывает, что задача потока данных изменила размер буфера. Эта запись журнала описывает причины изменения размера и фиксирует новый временный размер буфера. |
| OnPipelinePostEndOfRowset | Означает, что компонент получил сигнал конца набора строк, который устанавливается при последнем вызове метода ProcessInput . Запись делается для каждого компонента в потоке данных, который обрабатывает ввод. Запись содержит имя компонента. |
| OnPipelinePostPrimeOutput | Указывает, что компонент завершил последний вызов метода PrimeOutput . В зависимости от потока данных, возможно формирование нескольких записей в журнале. Если компонент является источником, это означает, что компонент завершил обработку строк. |
| OnPipelinePreEndOfRowset | Показывает, что компонент уже готов получить сигнал конца набора строк, который устанавливается при последнем вызове метода ProcessInput . Запись делается для каждого компонента в потоке данных, который обрабатывает ввод. Запись содержит имя компонента. |
| OnPipelinePrePrimeOutput | Показывает, что компонент готов получить свой вызов из метода PrimeOutput . В зависимости от потока данных, возможно формирование нескольких записей в журнале. |
| OnPipelineRowsSent | Сообщает количество строк, предоставленных входу компонента с помощью вызова метода ProcessInput . Запись журнала включает имя компонента. |
| PipelineBufferLeak | Предоставляет сведения о любых компонентах, из-за которых буферы продолжают существовать после того, как менеджер буферов перестаёт работать. Это означает, что ресурсы буферов не были освобождены и могут вызвать утечку памяти. Запись журнала предоставляет имя компонента и идентификатор буфера. |
| PipelineExecutionPlan | Сообщает о плане выполнения потока данных. Предоставляет сведения о том, как буферы будут отсылаться компонентам. Эти сведения в сочетании с записью PipelineExecutionTrees описывают, что происходит в задаче. |
| PipelineExecutionTrees | Выводит деревья выполнения схемы в потоке данных. Планировщик подсистемы обработки потока данных использует эти деревья для построения плана выполнения потока данных. |
| PipelineInitialization | Предоставляет сведения об инициализации задачи. Эти сведения включают каталоги, используемые для временного хранения данных большого объема типа BLOB, размер буфера по умолчанию и количество строк в буфере. В зависимости от настройки задачи потока данных, возможно формирование нескольких записей в журнале. |
Задача «Выполнение пакета служб DTS 2000»
В следующей таблице перечислены настраиваемые записи журнала для задачи «Execute DTS 2000».
| Запись журнала | Описание |
|---|---|
| ExecuteDTS80PackageTaskBegin | Указывает, что задача начала выполнение пакета DTS 2000. |
| ExecuteDTS80PackageTaskEnd | Указывает, что выполнение задачи завершено. Примечание. Пакет служб DTS 2000 может продолжить свое выполнение после завершения задачи. |
| ExecuteDTS80PackageTaskTaskInfo | Предоставляет описательные сведения о задаче. |
| ExecuteDTS80PackageTaskTaskResult | Сообщает результат выполнения пакета служб DTS 2000, запущенного задачей. |
Выполнить задачу процесса
В следующей таблице перечислены пользовательские записи журнала для задачи «Выполнение процесса».
| Запись журнала | Описание |
|---|---|
| ВыполнениеПроцессаИсполнениеПроцесса | Предоставляет сведения о процессе выполнения исполняемого объекта, на запуск которого настроена задача. В журнале формируются две записи. Одна из них предоставляет сведения об имени и месте выполнения исполняемого объекта, на запуск которого настроена задача, другая фиксирует выход из исполняемого объекта. |
| ExecuteProcessVariableRouting | Предоставляет сведения о том, какие переменные направляются на вход и выходы исполняемого объекта. Записи журнала ведутся для stdin (входной поток), stdout (выходной поток) и stderr (поток ошибок). |
Задача "Выполнение SQL"
В следующей таблице перечислены пользовательские записи журнала для задачи «Выполнение SQL».
| Запись журнала | Описание |
|---|---|
| ExecuteSQLExecutingQuery | Предоставляет сведения об этапах выполнения инструкции SQL. Записи журнала формируются в тот момент, когда задача устанавливает соединение с базой данных, когда задача приступает к подготовке инструкции SQL, и после того, как завершается выполнение инструкции SQL. Запись журнала для этапа подготовки содержит инструкцию SQL, которая используется задачей. |
Задача "Файловая система"
В следующей таблице перечислены пользовательские записи журнала для задачи «Файловая система».
| Запись журнала | Описание |
|---|---|
| FileSystemOperation | Сообщает об операции, выполняемой задачей. Эта запись журнала формируется, когда операция файловой системы начинается и включает сведения об источнике и назначении. |
Задача «FTP»
В следующей таблице перечислены пользовательские записи журнала для задачи «FTP».
| Запись журнала | Описание |
|---|---|
| FTPConnectingToServer | Указывает, что задача инициализировала соединение с FTP-сервером. |
| FTPOperation | Сообщает о начале FTP-операции, выполняемой задачей, и о типе этой операции. |
Задача «Очередь сообщений»
В следующей таблице перечислены пользовательские записи в журнале для задачи «Очередь сообщений».
| Запись журнала | Описание |
|---|---|
| MSMQAfterOpen | Указывает, что задача завершила открытие очереди сообщений. |
| MSMQBeforeOpen | Указывает, что задача начала открывать очередь сообщений. |
| MSMQBeginReceive | Указывает, что задача начала получать сообщение. |
| MSMQBeginSend | Указывает, что задача начала отправку сообщения. |
| MSMQEndReceive | Указывает, что задача завершила прием сообщения. |
| MSMQEndSend | Указывает, что задача завершила отправку сообщения. |
| MSMQTaskInfo | Предоставляет описательные сведения о задаче. |
| MSMQTaskTimeOut | Указывает, что время ожидания выполнения задачи истекло. |
Задача «Скрипт»
В следующей таблице перечислены пользовательские записи журнала для задачи «Скрипт».
| Запись журнала | Описание |
|---|---|
| ScriptTaskLogEntry | Сообщает о результатах выполнения операции ведения журнала в скрипте. Запись журнала формируется для каждого вызова метода Log объекта Dts . Эта запись формируется в момент запуска кода. Дополнительные сведения см. в разделе Ведение журнала в задаче скрипта. |
Задача «Отправка почты»
В следующей таблице перечислены пользовательские записи в журнале для задачи «Отправка почты».
| Запись журнала | Описание |
|---|---|
| SendMailTaskBegin | Указывает, что задача начала отправку сообщения электронной почты. |
| SendMailTaskEnd | Указывает, что задача завершила отправку сообщения электронной почты. |
| SendMailTaskInfo | Предоставляет описательные сведения о задаче. |
Задача «Передача базы данных»
В следующей таблице перечислены настраиваемые записи журнала для задачи «Перенос базы данных».
| Запись журнала | Описание |
|---|---|
| SourceDB | Указывает базу данных, которую скопировала задача. |
| SourceSQLServer | Указывает компьютер, с которого копируется база данных. |
Задача «Передача сообщений об ошибках»
В следующей таблице перечислены пользовательские записи в журнале для задачи «Передача сообщений об ошибках».
| Запись журнала | Описание |
|---|---|
| Задача завершила передачу объектов | Указывает, что задача завершила передачу сообщений об ошибках. |
| TransferErrorMessagesTaskStartTransferringObjects | Указывает, что задача начала передачу сообщений об ошибках. |
Задача переноса заданий
В следующей таблице перечислены настраиваемые записи журнала для задачи «Передача заданий».
| Запись журнала | Описание |
|---|---|
| Задание переноса завершило передачу объектов | Указывает, что задача завершила перенос заданий агент SQL Server. |
| TransferJobsTaskStartTransferringObjects | Указывает, что задача начала перенос заданий агента SQL Server. |
Задача «Передача имен входа»
В следующей таблице перечислены настраиваемые записи журнала для задачи «Перенос учетных данных».
| Запись журнала | Описание |
|---|---|
| TransferLoginsTaskFinishedTransferringObjects | Указывает, что задача завершила передачу имен входа. |
| TransferLoginsTaskStartTransferringObjects | Указывает, что задача приступила к передаче имен входа. |
Задача переноса хранимых процедур Master
В следующей таблице перечислены пользовательские записи в журнале для задачи «Передача главных хранимых процедур».
| Запись журнала | Описание |
|---|---|
| TransferStoredProceduresTaskFinishedTransferringObjects | Указывает, что задача завершила передачу пользовательских хранимых процедур, хранящихся в базе данных master . |
| TransferStoredProceduresTaskStartTransferringObjects | Указывает, что задача приступила к передаче пользовательских хранимых процедур, хранящихся в базе данных master . |
Задача «Передача объектов SQL Server»
В следующей таблице перечислены пользовательские записи журнала для задачи "Передача объектов SQL Server".
| Запись журнала | Описание |
|---|---|
| Задача переноса объектов SQL Server завершила перенос объектов | Указывает, что задача завершила передачу объектов базы данных SQL Server. |
| TransferSqlServerObjectsTaskStartTransferringObjects | Указывает, что задача начала перенос объектов базы данных SQL Server. |
Задача «Веб-служба»
В следующей таблице перечислены пользовательские записи журнала, которые можно включить для задачи «Веб-службы».
| Запись журнала | Описание |
|---|---|
| WSTaskBegin | Задача начала обращаться к веб-службе. |
| WSTaskEnd | Задача завершила выполнение метода веб-службы. |
| WSTaskInfo | Описательные сведения об этой задаче. |
Задача чтения данных WMI
В следующей таблице перечислены пользовательские записи журнала для задачи «WMI Data Reader».
| Запись журнала | Описание |
|---|---|
| WMIDataReaderGettingWMIData | Указывает, что задача начала чтение данных WMI. |
| WMIDataReaderOperation | Сообщает о WQL-запросе, выполняемом задачей. |
Задача «Отслеживание событий WMI»
В следующей таблице перечислены пользовательские записи в журнале для задачи «Отслеживание событий WMI».
| Запись журнала | Описание |
|---|---|
| WMIEventWatcherEventOccurred | Указывает, что произошло событие, за которым следила задача. |
| WMIEventWatcherTimedout | Указывает, что время ожидания выполнения задачи истекло. |
| WMIEventWatcherWatchingForWMIEvents | Указывает, что задача приступила к выполнению WQL-запроса. Эта запись содержит запрос. |
Задача «XML»
В приведенной ниже таблице перечислены пользовательские записи журнала для задачи «XML».
| Запись журнала | Описание |
|---|---|
| XMLOperation | Предоставляет сведения об операции, выполняемой задачей |
Связанные задачи
В следующем списке приведены ссылки на разделы, в которых описывается выполнение задач, связанных с функцией ведения журналов.