У меня есть 3 сервера, настроенных для зеркалирования SQL и автоматического переключения на другой ресурс с использованием сервера-свидетеля. Это работает так, как ожидалось.Автоматический переход на другой ресурс с зеркалированием SQL и строками подключения
Теперь мое приложение, которое подключается к базе данных, похоже, имеет проблемы при возникновении сбоя - мне нужно вручную вмешаться и изменить строки подключения, чтобы он снова подключался. Лучшее решение, которое я нашел до сих пор, включает в себя параметр Failover Partner
строки подключения, однако он не является ни интуитивным, ни полным: Data Source="Mirror";Failover Partner="Principal"
found here.
Из примера в вышеприведенном блоге (сценарий №3), когда происходит первый переход на другой ресурс, а основной (партнер по отказоустойчивости) недоступен, вместо этого используется источник данных (который является новым директором). Если он снова не работает (и я только пробовал в течение ограниченного периода времени), тогда появляется сообщение об ошибке. Это происходит из-за того, что строка подключения кэшируется, поэтому пока обновление не будет обновлено, оно будет выходить с ошибкой (кажется, строка подключения обновляется через 5 минут после того, как она встречает ошибку). Если после перехода на другой ресурс я заменил источник данных и партнера по отказоустойчивости, у меня снова возникнет еще один «молчащий» переход на другой ресурс.
Есть ли способ полностью автоматизировать переход на другой ресурс для приложений, в которых также используются зеркальные базы данных (без видимых ошибок)?
Я вижу потенциальные обходные пути, используя пользовательские скрипты, которые будут опроса текущего активного имени узла базы данных и соответственно настроить строку соединения, однако на данный момент это кажется излишним.
Тогда почему он работает так, как ожидалось, при объединении соединений? – Shagglez
Когда пулы соединений подключены к основным, имеющим вторичный (с сервера), хранящийся вместе с ним, будут сохранены для дальнейшего использования. Это те, которые не терпят неудачу. При отключении пула соединений создается новое соединение и каждый раз считывается из конфигурации. Они будут работать, поскольку они не могут подключиться к первичной, поэтому использует переход из конфигурации не для основного значения сервера для перехода на другой ресурс. –
См. Здесь для более подробной информации: http://blogs.msdn.com/b/spike/archive/2010/12/08/clarification-on-the-failover-partner-in-the-connectionstring-in-database-mirror -setup.aspx –