Есть ли способ легко изменить имя сервера в нескольких пакетах служб SSIS программно?

Мы создаем несколько пакетов служб SSIS для переноса большой базы данных в рамках цикла выпуска. Мы можем получить около 5-10 пакетов служб SSIS.

Поскольку у нас есть 4 среды (dev, QA, staging, production и т. Д.), Существует ли эффективный способ изменения целевого сервера для каждого пакета служб SSIS при прохождении через разные серверные среды? В идеале может быть запущен скрипт, который будет принимать в качестве параметра нужный сервер.

3 ответа

Решение

Вы можете использовать файл конфигурации для хранения строк подключения к серверам. Затем, когда вы перешли из среды в среду, вы просто изменили файл конфигурации. Чтобы просто создать файл конфигурации, на панели управления вашего пакета,
1) щелкните правой кнопкой мыши и выберите "Конфигурация пакета" в контекстном меню.
2) Установите флажок Включить конфигурации пакета, если он еще не выбран,
3) затем нажмите кнопку Добавить...
4) Нажмите Далее в диалоговом окне,
5) Затем добавьте имя файла конфигурации: и нажмите "Далее".
6) В представлении "Объекты" в разделе "Диспетчеры подключений" разверните свое подключение, затем разверните "Свойства" и установите флажок рядом с "ConnectionString".
7) Затем нажмите Далее
8) потом заканчивай.

Теперь у вас есть XML-файл с именем, названным вами на шаге 5 выше. Вы можете отредактировать этот файл с помощью текстового редактора и изменить строку подключения для сопоставления с тем сервером, который вам нужен, перед каждым запуском.

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

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

Мы используем таблицу конфигурации, в которой хранятся конфигурации для сервера. Но конфигурационные файлы тоже работают хорошо. Нам нравится таблица, потому что мы создаем отчеты по метаданным пакета служб SSIS, и эти данные (вместе со многими другими данными, которые мы также храним) легче хранить при хранении в таблице.

Ответ Уильяма Тодда Зальцмана охватывает большинство вопросов. У меня есть еще пара, чтобы добавить:

  • Убедитесь, что свойство pacakge ProtectionLevel имеет значение DontSaveSensitive
  • Если вы работаете с различными средами доставки, то таблица SQL Server в качестве источника для конфигураций пакетов может быть не для вас, поскольку вам потребуется одна центральная база данных, содержащая все строки подключения для всех серверов.
  • После работы с конфигурациями пакетов, полученными из реестра, вам необходимо знать, что эти параметры получены из куста HKEY_CURRENT_USER. Это имеет значение для случаев, когда пакет запускается через задание агента SQL.
Другие вопросы по тегам