Строка подключения SSIS 2012 oledb с использованием зеркального отображения

Я пытаюсь настроить проект SSIS 2012 для нескольких зеркальных баз данных. Я надеялся, что смогу использовать поставщика OLEDB, но, похоже, он не поддерживает атрибут Failover Partner в строке подключения. Я попытался добавить ключи «Партнер по отработке отказа», «Партнер по отработке отказа» и «Партнер по отказоустойчивости», но ни один из них не работает — соединение никогда не пытается подключиться к партнеру по отработке отказа, даже если он содержит основную базу данных. Все мои тесты проводились со всеми тремя вариантами ключа атрибута.

Если я использую соединение ADO.NET, в диспетчере соединений есть встроенный параметр под названием «Партнер по отработке отказа», который работает как шарм и может подключаться к базе данных с субъектом, находящимся на любом из серверов. ... как и должно быть.

Мой вопрос: правильно ли, что OLEDB не работает с зеркальными базами данных при использовании SSIS 2012 против зеркальной базы данных SQL Server 2012?

Как я тестирую Мой тест очень прост: у меня есть «Выполнение задачи SQL» с диспетчером соединений OLEDB со следующей строкой соединения: Data Source=srv1;Initial Catalog=MyDatabase;Provider=SQLOLEDB.1; Интегрированная безопасность=SSPI;Автоматический перевод=False;Имя приложения=Мое приложение; Я попытался добавить разные версии Failover Partner, как указано выше:

Источник данных = srv1.domain.local; Исходный каталог = MyDatabase; Поставщик = SQLOLEDB.1; Интегрированная безопасность = SSPI; Автоматический перевод = False; Имя приложения = Мое приложение; Партнер по отработке отказа = srv2.domain.local;

Если MyDatabase является основным на srv1, то это работает. Если база данных является основной на srv2, то службы SSIS завершаются со следующей ошибкой: Ошибка: код ошибки служб SSIS DTS_E_OLEDBERROR. Произошла ошибка OLE DB. Код ошибки: 0x80004005. Доступна запись OLE DB. Источник: «Поставщик Microsoft OLE DB для SQL Server».

и следующее зарегистрировано на srv1 в журнале ошибок: Ошибка входа в систему для пользователя «ДОМЕН \ Мой пользователь». Причина: Не удалось открыть явно указанную базу данных «MyDatabase». [КЛИЕНТ: 10.0.0.3]

Что я делаю неправильно? Или мне нужно перейти на ADO.NET, который работает на 100%, как и ожидалось?

Спасибо, Сян


person Henrik Sjang Davidsen    schedule 14.09.2012    source источник


Ответы (1)


Если вы используете строку подключения OleDB/SQLNCLI11.1, существует параметр партнера по отработке отказа:

Data Source=srv1;Initial Catalog=myDB;Provider=SQLNCLI11.1;Integrated Security=SSPI;Failover Partner=failover_partner_name;
person milivojeviCH    schedule 22.10.2012
comment
Идеально! Корень моих проблем на самом деле оказался в том, что у меня также была задача сценария, которая использовала ту же строку подключения, но с объектом SqlConnection. И это не поддерживает ключевое слово Provider, поэтому я удалил его и сломал зеркалирование. Моей настоящей проблемой было отсутствие навыков работы с .net. Используя вместо этого OleDbConnection, теперь я могу использовать правильную строку подключения как в источниках данных, так и в задачах сценария. Спасибо! - person Henrik Sjang Davidsen; 16.11.2012