воскресенье, 4 сентября 2016 г.

Как перенести SSIS пакеты с одного сервера на другой (package deployment model)

В предыдущем посте я рассказывал о том, как делать массовую загрузку SSIS пакетов в хранилище. Сегодня расскажу, как скопировать пакеты с одного сервера на другой. Например, у вас есть сервер QA, на который вы загрузили все ваши пакеты SSIS, а теперь нужно сделать тоже самое на основном сервере (PRD). При небольшом количестве пакетов можно это сделать стандартными средствами, ну а для массового копирования я предлагаю использовать скрипт, который будет запускать утилиту  dtutil. Прежде чем писать скрипты, я посмотрел советы специалистов в интернете. Вот здесь неплохая статья, на основании которой я строил свое решение : Using dtutil to copy SSIS packages stored in SQL Server

Что нужно сделать:
1. Скопировать структуру папок на сервере SSIS, в которые установлены наши пакеты
2. Создать скрипт для переноса всех пакетов на основании утилиты dtutil
3. Запустить скрипт


четверг, 25 августа 2016 г.

Как далать массовую загрузку пакетов SSIS в хранилище

Не так давно на моей работе мы проводили миграцию с MSSQL2008 на MSSQL2014. Больше всего хлопот доставил перенос пакетов SSIS. Учитывая, что в новой версии SSIS поменялись типы объектов и вообще структура пакета, для преобразования придется открыть все проекты и конвертировать пакеты штатными средствами. Это простой, но довольно утомительный процесс, который я здесь не буду описывать.

Когда все пакеты преобразованы, их нужно установить на новом сервере (здесь я имею ввиду, что хранилище пакетов MSSQL сервера). Если вы используете project deployment model, то, возможно, этот процесс будет тривиальным. Проблемы могут возникнуть при использовании package deployment model. Штатными средствами Visual Studio нет возможности осуществить деплоймент всех пакетов проекта одной операцией - нужно каждый пакет устанавливать отдельно. Если вы используете утилиту BIDSHelper, то она позволяет осуществлять массовую установку пакетов проекта. В свойствах проекта на закладке Deploy нужно лишь указать куда устанавливать пакеты. К сожалению, у утилиты BIDSHelper не очень много настроек для управления процессами деплоймента пакетов, и поэтому, если ваши пакеты хранят sensitive данные (ProtectionLevel = EncryptSensitiveWithPassword) и обычно вы его сохраняете в хранилище с опцией rely on server storage and roles for access control, то утилита сохранит их некорректно.

Что можно сделать в данной ситуации?