2015-01-22 6 views
4

В нашей виртуальной среде QA, которая содержит несколько SQL-серверов, я хотел развернуть пакет SSIS 2012 (ispac, развертывание проекта), поддерживаемый через Visual Studio 2010. Целевой сервер SSIS был в 2012 году, но клиент на рабочая станция включала SQL-сервер 2014. Выполняя пакет ispac на рабочей станции и указывая на развертывание на SQL-сервере 2012 года, развертывание прошло без каких-либо ошибок. Но при выполнении пакета на сервере SSIS мы получаем такие ошибки, какПакет SSIS обновлен путем развертывания

"Package Name" : Error: The version number in the package is not valid. The version number cannot be greater than current version
number.

"Package Name" : Error: Error loading value "8" from node "DTS:Property".

"Package Name" : Error: Package migration from version 8 to version 6 failed with error 0xC001700A "The version number in the package is not valid. The version number cannot be greater than current version number.".

Все мой пакет (.dtsx) имеет

<DTS:Property DTS:Name="PackageFormatVersion">6</DTS:Property> 

Как также манифест

<SSIS:Property SSIS:Name="PackageFormatVersion">6</SSIS:Property> 

Это выглядит как клиент SQL 2014 или рабочая станция, обновили мой пакет до V8, хотя мой целевой сервер был V6. Когда я развернулся непосредственно с сервера SQL 2012 (у которого не было SQL 2014), все развернуто и выполнялось так, как ожидалось. Является ли это ожидаемым результатом? или проблема

+0

Вы разработали решение с использованием SQL Server Data Tools 2012. Машина также содержит SSDT 2014. При развертывании на сервере 2012 года он сообщает об ошибке, что вы развернули решение 2014, да? – billinkc

+0

Это не имело ничего общего с машиной, так как было разработано решение, все мои пакеты - версия 6 (это SSIS 2012). Я думаю, проблема связана с рабочей станцией, с которой было развернуто решение, которое содержит SSIS 2014, но на SSIS 2012. Машина разработки содержит SQL2012, VS 2010, VS 2013 –

+2

Правильно, чай еще не догнал мой мозг;) Так что вы видите, это плавное обновление пакетов. Существует два разных мастера развертывания: ISDeploymentWizard.exe в файлах C: \ Program Files (x86) \ Microsoft SQL Server \ 120 \ DTS \ Binn \ ISDeploymentWizard.exe' и 'C: \ Program Files (x86) \ Microsoft SQL Server \ 110 \ DTS \ Binn \ ISDeploymentWizard.exe' и переменная Windows $ PATH сначала содержит 120 в пути поиска. Если вы повторите развертывание, на этот раз, указав, что версия 110 мастера обрабатывает ispac, устраняет проблему? – billinkc

ответ

1

Итак, что вы ожидаете от поведения Код ссылки. Когда SSIS-пакет открывается с использованием API-интерфейсов, пакет обновляется до версии API. Это позволяет запустить пакет V-1 на сервере Vcurrent. Были внесены изменения в форматы и прочее, поэтому есть причины, по которым пакет 2005 года может не работать, но это намерение. Биты на диске остаются неизменными, но обновляется версия в памяти.

Поскольку развертывание использовало ISDeploymentWizard в папке 120 (SQL Server 2014), первое, что он сделал, увидев версию .ispac 2012 года, преобразует ее в формат 2014. Таким образом, версия этого .ispac в памяти должна быть сериализована в SSISDB, и эти API-интерфейсы совпадают между 2012/2014 годами. Метод DeployProject/deploy_project просто берет двоичный объект, он не делает никакой проверки какой версии эти биты, только что он имеет правильную форму.

Но, когда вы идете, чтобы выполнить пакет, API-интерфейс должен смотреть на фактические биты и обнаруживать, это версия, которую я не понимаю.

Некоторые примеры того, что что API выглядит на How to deploy an existing package in SQL Server 2012

+0

. Но моя проблема заключается в том, что я развертываю свой пакет на сервере SQL 2012, но используя API SQL 2014 , Таким образом, пакет не будет запускаться после развертывания. Спасибо за хедз-ап –

1

я смог решить это. Проблема была в том, что на сервере были установлены как SQL Server 2012, так и SQL Server 2014. Я пытался установить пакет на экземпляр SQL 2012, но даже если вы используете VS 2010 Shell для разработки пакета SSIS, когда вы запускаете файл .ispac в файловой системе, он запускает файл ISDeploymentWizard.exe из C: \ Program Files (x86) \ Microsoft SQL Server \ 120 \ DTS \ Binn \ location. Это привело к автоматическому преобразованию пакета в версию 8, и поэтому каждый раз, когда вы выполняли пакет на SQL Server, вы получали «Ошибка загрузки значения« 8 »из ошибки« DTS: Property ».

Чтобы решить проблему просто выполните следующие действия: Если вы развертываете пакет для SQL Server 2012, запустите исполняемый файл в этом месте: C: \ Program Files (x86) \ Microsoft SQL Server \ 110 \ DTS \ Binn \ ISDeploymentWizard.exe

Если вы развертываете пакет на SQL Server 2014, запустите исполняемый файл в этом месте: C: \ Program Files (x86) \ Microsoft SQL Server \ 110 \ DTS \ Binn \ ISDeploymentWizard.exe

Затем следуйте инструкциям мастер как обычно для установки пакета.

Смежные вопросы