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


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

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

Во время разработки в среде SQL Server Data Tools (SSDT) можно использовать точки останова выполнения пакета, окно хода выполнения и средства просмотра данных для наблюдения за потоком данных. Однако эти возможности недоступны при выполнении уже развернутых пакетов. Основными методами устранения неполадок в развернутых пакетах являются следующие.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Стандартные отчеты об операциях доступны в среде Среда SQL Server Management Studio и помогают при наблюдении за пакетами служб Службы Integration Services, развернутых в каталоге служб Службы Integration Services. Они позволяют просмотреть состояние пакета и журнал и, если необходимо, определить причину сбоев.

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

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

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

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

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

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

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

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

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

    1. Создайте родительскую таблицу, в которой регистрируется каждое выполнение пакета. В этой родительской таблице предусматривается одна строка для каждого выполнения пакета, а идентификатор ExecutionID используется для связи с дочерними записями в таблице журналов службы Службы Integration Services. Для создания новой строки и записи времени начала можно использовать задачу «Выполнение SQL». Затем можно использовать еще одну задачу «Выполнение 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 см. в разделе Пакеты служб из заданий агента SQL Server.

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

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

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

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

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

Связанные задачи

Настройка вывода ошибок в компоненте потока данных

См. также

Запись в блоге Добавления имени столбца с ошибкой к выводу ошибок на сайте dougbert.com.

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

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


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