Как использовать другое соединение с базой данных для конфигурации пакета? - PullRequest
2 голосов
/ 02 сентября 2008

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

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

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

Есть идеи или я что-то не так делаю?

Ответы [ 9 ]

1 голос
/ 30 сентября 2008

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

1 голос
/ 16 ноября 2010

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

1 голос
/ 03 сентября 2008

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

1 голос
/ 02 сентября 2008

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

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

1 голос
/ 02 сентября 2008

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

0 голосов
/ 28 июля 2009

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

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

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

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

0 голосов
/ 06 января 2009

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

0 голосов
/ 30 октября 2008

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

0 голосов
/ 09 сентября 2008

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...