У меня есть приложение, которое использует файловые DSN для подключения к центральному серверу базы данных. Этот сервер базы данных зеркалируется на вторичный сервер, и в случае аварийного переключения, насколько я понимаю, добавление строки в файле DSN «Failover_Partner =» позволит приложению автоматически подключаться к вторичному серверу.
Однако, похоже, это не работает. Ниже приведено содержимое моих DSN на серверах приложений.
[ODBC]
ДРАЙВЕР = собственный клиент SQL Server 10.0
UID = "имя пользователя"
failover_partner = "вторичный сервер"
Сеть = DBMSSOCN
DATABASE = "имя базы данных"
APP = подключение к открытой базе данных Microsoft
СЕРВЕР = "основной сервер"
Я протестировал отказоустойчивость баз данных, и некоторые из наших приложений, которые используют строки соединений с партнером по отработке отказа, указанным в их файлах app.config или web.config, работают нормально. Они автоматически выбирают вторичный сервер и продолжают работать. Они используют одни и те же базы данных и одинаковые имена пользователей, поэтому я знаю, что это не проблема с разрешениями.
Приложения, которые продолжают работать, находятся в той же подсети, что и те, которые не работают, поэтому я знаю, что это не проблема сети.
Я могу подключиться к соответствующим базам данных вручную в SSMS с правильными именами пользователей и паролями.
Я здесь в растерянности. Я не могу найти причину, почему это не должно работать. Я могу только предположить, что с DSN что-то не так, но я не знаю, что это такое, и кажется, что он терпит неудачу только тогда, когда необходимо использовать партнера по отработке отказа. Когда я запускаю приложение и основной доступный, все в порядке.