Я пытаюсь настроить проект 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%, как и ожидалось?
Спасибо, Сян