Как мне использовать другое подключение к базе данных для настройки пакета?

StackOverflow https://stackoverflow.com/questions/38766

  •  09-06-2019
  •  | 
  •  

Вопрос

У меня есть пакет SSIS, который устанавливает некоторые переменные данные из таблицы конфигурации пакета SQL Server.(Выбираем опцию "Указать настройки конфигурации напрямую")

Это хорошо работает, когда я использую подключение к базе данных, которое я указал при разработке пакета.Однако, когда я запускаю его на сервере (64-разрядном) в среде тестирования (либо как задание агента, либо запускаю пакет напрямую) и указываю новую строку подключения в менеджерах подключений, пакет по-прежнему считывает настройки с сервера БД, которые я указал при разработке.

Все остальные подключения используют правильные строки подключения, кажется, что это только конфигурация пакета, которая считывается из неправильного места.

Есть идеи или я делаю что-то действительно неправильно?

Это было полезно?

Решение

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

Другие советы

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

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

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

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

Если вы используете конфигурацию пакета SQL Server, то все свойства пакетов будут получены из таблицы SQL Server. Убедитесь, что

Безопасность SSIS в ее нынешнем виде ужасна. Никто не сможет поддержать вещи, когда меня не будет в офисе. Работа никогда не читает из файла конфигурации ... Я сдаюсь. Это работает только когда я редактирую строку на вкладке Источники данных. Однако пароль теряется, если вы попали на работу во второй раз. Ужасный дизайн, абсолютно ужасный. Можно подумать, что когда вы укажете XML-файл на шаге задания, он прочитает оттуда строку подключения, которая определена, но это не так. Это действительно работает для кого-то еще?

Перейдите в свойства пакета и установите True для развертывания. Это должно работать на то, что вы сделали.

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

Это, к сожалению, не работает в моей установке dev, где две среды размещены на одной машине. Я закончил тем, что следовал подходу Скотта Коулмана, который подробно описан на SQL Server Central [Free sign- и хороший сайт. Хитрость заключается в том, что вы создаете представление для хранения параметров конфигурации на одном центральном сервере, а затем используете подключенный к нему компьютер, чтобы определить, какая среда активна.

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

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

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

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

Похоже, когда вы запускаете пакет SSIS в качестве шага в запланированной задаче, он работает в таком порядке:

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top