SQL 2012 - пакет SSIS не заполняет текстовый файл по расписанию

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

Позвольте мне объяснить сценарии;
1) При запуске вручную из BIDS они работают правильно, файлы txt создаются и заполняются данными.
2) При развертывании в SSISDB и запуске из задания агента они также работают как и ожидалось — файлы создаются и заполняются данными.
3) Если задание агента запланировано на вечер, задание запускается и сообщает об успешном выполнении. Файлы создаются, но данные не заполняются.

Я проверил отчеты в каталогах служб Integration Services и сравнил сообщения построчно из файла OnInformation. Оба запуска сообщают, что назначение плоского файла записало xxxx строк.

Данные есть, учетная запись Агента имеет правильный доступ. Я не могу понять, почему задание работает при запуске вручную, но ведет себя по-другому по расписанию.

Кто-нибудь видел что-нибудь подобное? Похоже на очень странный баг....

С уважением,

Джеймс


person user3665980    schedule 22.05.2014    source источник


Ответы (2)


Убедитесь, что учетная запись, которую вы настроили в качестве прокси-сервера для задачи SSIS, имеет доступ для чтения и записи к файлу.

IMX, когда вы запускаете задание агента SQL вручную, оно, по-видимому, использует контекст пользователя, который каким-то образом его инициирует. Я всегда предполагал, что это побочный эффект подражания. Только когда он действительно работает по расписанию, все использует назначенные права безопасности.

Кроме того, я думаю, что когда пользователь запускает задание, он выдает себя за прокси, но когда задание запускается по расписанию, учетная запись агента выдает себя за прокси. Убедитесь, что учетная запись службы имеет право олицетворять прокси. Взгляните на sp_grant_login_to_proxy и sp_enum_login_for_proxy.

Вот ссылка, которая примерно описывает процесс: http://www.mssqltips.com/sqlservertip/2163/running-a-ssis-package-from-sql-server-agent-using-a-proxy-account/

Я также помню, что это видео было полезным: http://msdn.microsoft.com/en-us/library/dd440761%28v=SQL.100%29.aspx

person Bacon Bits    schedule 22.05.2014
comment
Спасибо - к сожалению, это не так. Моей первой мыслью были разрешения, но агент использует ту же учетную запись службы, которую мы всегда использовали, и имеет привилегии для пункта назначения. Я также проверил историю заданий, и она использует учетную запись службы для выполнения пакета, даже если он вызывается учетной записью пользователя. Вчера я также попробовал еще один тест - планирование задания по расписанию типа «Выполнить один раз» на установленное время в течение дня. Удивительно, но это тоже работало нормально, но проблема снова возникла вчера вечером, когда выполнялась по повторяющемуся расписанию. - person user3665980; 23.05.2014
comment
Ладно, причина была не в этом - я был дураком. Я не отключал предыдущие задания на старом сервере, поэтому они все время работали правильно, но перезаписывались заданиями на старом сервере. Не могу поверить, что мой первый пост был st00pid! - person user3665980; 23.05.2014

У меня была такая же проблема с файлами Excel. Это были права разрешения.

Что сработало для меня, так это добавление учетной записи SERVICE на вкладку безопасности папки. Затем агент SQL может получить доступ к файлам.

Безопасность папки

person Pepys    schedule 25.11.2015