Устранение неполадок выполнения пакетов

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

Во время разработки в среде Business Intelligence Development Studio можно использовать точки останова выполнения пакета, окно хода выполнения и средства просмотра данных для наблюдения за потоком данных. Однако эти возможности недоступны при выполнении уже развернутых пакетов. Основными методами устранения неполадок в развернутых пакетах являются следующие.

  • Перехват и обработка ошибок пакетов с помощью обработчиков событий.

  • Обнаружение недопустимых данных с помощью вывода ошибок.

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

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

Перехват и обработка ошибок пакетов с помощью обработчиков событий

Обработчики событий могут реагировать на многие события, вызванные пакетами и объектами в них.

  • Создайте обработчик события для события OnError. В обработчике события с помощью задачи «Отправка почты» можно уведомить администратора о сбое, использовать задачу «Сценарий» и специальную логику для получения системных сведений, чтобы устранить неполадки или очистить временные ресурсы и неполные выходные данные. Дополнительные сведения см. в разделе Обработчики событий служб Integration Services и Добавление обработчиков событий в пакетах.

Устранение неполадок недопустимых данных с помощью вывода ошибок

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

  • Захват недопустимых данных с помощью вывода ошибок. Отправляйте строки, содержащие ошибки, в отдельное назначение, например в таблицу ошибок или текстовый файл. Вывод ошибок автоматически добавляет два цифровых столбца, которые содержат номер ошибки, вызвавшей отбрасывание строки, и идентификатор столбца, в котором произошла ошибка. Дополнительные сведения см. в разделе Обработка ошибок в данных в потоке данных и Как настроить вывод ошибок в компоненте потока данных.

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

    Добавление описания ошибки. С помощью задачи «Сценарий» можно легко найти описание ошибки. Дополнительные сведения см. в разделе Расширение вывода ошибок с помощью компонента сценария.

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

    1. Создание таблицы уточняющих запросов имен столбцов. Создайте отдельное приложение, использующее API-интерфейс служб Integration Services для перебора всех сохраненных пакетов, всех потоков данных в пакете, всех объектов в потоке данных и всех входных и выходных данных в объекте потока данных. Это приложение должно сохранять идентификатор столбца и имя каждого столбца в таблице уточняющих запросов вместе с идентификатором родительской задачи потока данных и идентификатором пакета;

    2. Добавление имени столбца к выходным данным. Добавьте к выводу ошибок преобразование «Уточняющий запрос», выполняющее поиск имени столбца в таблице уточняющих запросов, которая была создана на предыдущем шаге. Поиск может использовать идентификатор столбца в выводе ошибок, идентификатор пакета (доступный в системной переменной System::PackageID) и идентификатор задачи потока данных (доступный в системной переменной System::TaskID).

Устранение неполадок выполнения пакетов с помощью ведения журналов

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

  • Включите ведение журналов. Выходные данные журналов можно детализировать, выбрав только события и только объекты, сведения о которых требуется захватить. Дополнительные сведения см. в разделе Регистраторы служб Integration Services и Реализация ведения журналов в пакетах.

  • Для устранения неполадок, связанных с поставщиком, выберите событие пакета, называемое «Диагностика». Существуют сообщения журнала, которые могут помочь при устранении неполадок взаимодействия пакета с внешним источником данных. Дополнительные сведения см. в подразделе Устранение неполадок, связанных с внешними поставщиками данных данного раздела.

  • Дополните выходные данные журналов. При обычном ведении журналов строки присоединяются к назначению при каждом выполнении пакета. Хотя каждая строка выходных данных журнала определяет пакет по имени и уникальному идентификатору, а также определяет выполнение пакета по уникальному идентификатору ExecutionID, большой объем выходных данных анализировать трудно.

    В следующем подходе предлагается расширить выходные данные журнала и облегчить создание отчетов:

    1. Создайте родительскую таблицу, в которой регистрируется каждое выполнение пакета. В этой родительской таблице предусматривается одна строка для каждого выполнения пакета, а идентификатор ExecutionID используется для связи с дочерними записями в таблице журналов службы Integration Services. Для создания новой строки и регистрации времени начала можно использовать задачу «Выполнение SQL». Затем при завершении пакета можно обновить строку временем окончания, продолжительностью и состоянием;

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

    3. Рассмотрите возможность захвата данных счетчика строк. Создайте отдельную таблицу для данных счетчика строк, в которой каждый экземпляр выполнения пакета определяется идентификатором ExecutionID. Используйте преобразование «Счетчик строк» для сохранения числа строк в последовательность переменных в критических точках потока данных. После окончания потока данных используйте задачу «Выполнение SQL» для вставки этой последовательности значений в строку таблицы для последующего анализа и отчета.

    Дополнительные сведения об этом подходе см. в разделе «ETL: аудит и ведение журналов» в техническом документе MicrosoftПроект REAL: Рекомендации по разработке ETL-решений для бизнес-аналитики (на английском языке).

Устранение неполадок выполнения пакетов с помощью ведения отладочных файлов дампа

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

Устранение неполадок проверки времени выполнения

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

  • Настройка свойства DelayValidation элементов пакета, не допустимых при загрузке пакета. Свойству DelayValidation элемента пакета с недопустимой настройкой можно присвоить значение True, чтобы избежать ошибок проверки во время загрузки пакета. Например, может существовать задача потока данных, использующая целевую таблицу, которая не существует до тех пор, пока задача «Выполнение SQL» не создаст таблицу в процессе выполнения. Свойство DelayValidation можно включить на уровне пакета или на уровне отдельных задач или контейнеров, содержащихся в пакете.

    Свойство DelayValidation устанавливается в задаче потока данных, но не в отдельных компонентах потока данных. Тех же результатов можно добиться, присвоив свойству ValidateExternalMetadata отдельного компонента потока данных значение false. Однако если значение этого свойства равно false, компонент не узнает об изменениях метаданных внешних источников данных. Если свойству ValidateExternalMetadata присвоено значение true, это может помочь избежать критических препятствий, возникающих из-за блокировки базы данных, особенно при использовании пакетом транзакций.

Устранение неполадок разрешений времени выполнения

Если возникают ошибки при попытке выполнения развернутых пакетов с использованием агента служб SQL Server, их причина может заключаться в отсутствии нужных разрешений у учетных записей агента. Сведения о решении проблем с пакетами, запускаемыми из агента заданий SQL Server, см. в статье базы знаний Пакет служб SSIS не выполняется при вызове пакета из шага задания агента SQL Server. Дополнительные сведения о запуске пакетов из заданий агента SQL Server см. в разделах Расписание выполнения пакетов служб SSIS в агенте SQL Server и Как запустить пакет.

Чтобы подключиться к источникам данных Excel или Access, агент SQL Server требует учетной записи с разрешением считывать, записывать, создавать и удалять временные файлы в папке, указанной переменными среды TEMP и TMP.

Устранение неполадок для 64-разрядных платформ

При возникновении на 64-разрядном сервере ошибок пакетов, которые успешно выполняются в 32-разрядном режиме или на 32-разрядных серверах, необходимо учитывать следующие распространенные проблемы. Дополнительные сведения см. в разделе Особенности работы служб Integration Services в 64-разрядной среде.

  • Некоторые поставщики данных недоступны на 64-разрядных платформах. Особенно часто в 64-разрядной версии недоступен поставщик OLE DB Microsoft Jet, который требуется для подключения к источникам данных Excel и Access.

  • Пакеты служб DTS не могут выполняться в 64-разрядном режиме. Если пакет использует задачу «Выполнение пакета служб DTS 2000» для выполнения пакетов служб SQL Server 2000 Data Transformation Services (DTS), необходимо выполнить этот пакет в 32-разрядном режиме. Для пакетов служб DTS не существует поддержки 64-разрядного режима.

Устранение неполадок при ошибках без описаний

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

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

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

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