Поделиться через


Повторное подключение к сеансу зеркального отображения базы данных

Добавления: 14 апреля 2006 г.

Если установленное соединение с сеансом зеркального отображения базы данных по какой-то причине разрывается –– например вследствие перехода с основной базы данных на зеркальную — и приложение пытается подключиться к исходному серверу, поставщик доступа к данным может повторно подключиться, используя имя отказоустойчивого участника, хранящееся в клиентском кэше. Однако повторное подключение не выполняется автоматически. Приложение должно распознать ошибку. Затем приложению необходимо закрыть сбойное соединение и открыть новое, используя те же атрибуты строки соединения. В этом случае поставщик доступа к данным перенаправляет соединение на отказоустойчивого участника. Если экземпляр сервера, определяемый именем отказоустойчивого участника, является в настоящий момент основным сервером, попытка соединения обычно завершается успешно. Если неясно, была ли транзакция зафиксирована или произошел ее откат, приложение должно проверить состояние транзакции таким же образом, как при подключении к автономному экземпляру сервера.

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

ms366199.note(ru-ru,SQL.90).gifПримечание.
Собственный клиент SQL проверяет, подключился ли он к экземпляру основного сервера, но не проверяет, является ли этот экземпляр участником экземпляра сервера, заданного в качестве имени первоначального участника в строке соединения.

Если соединение использует протокол TCP/IP, а клиент использует Windows XP или более позднюю версию, алгоритм повторного подключения определяет количество времени, отведенного на подключение при каждой попытке. Дополнительные сведения см. в разделе Алгоритм повторного соединения (для соединений по протоколу TCP/IP).

ms366199.note(ru-ru,SQL.90).gifВажно!
Если клиент отключается от базы данных, поставщик доступа к данным не будет пытаться возобновить соединение. Клиент должен выдать новый запрос на соединение. Кроме того, если приложение закрывается при потере соединения, оно также теряет кэшированные имена участников. Если соединение было потеряно в результате недоступности основного сервера, единственным способом, с помощью которого приложение может подключиться к зеркальному серверу, является предоставление имени отказоустойчивого участника в строке соединения.

Влияние перенаправления на клиентское приложение

При возникновении ошибки поставщик доступа к данным перенаправляет соединение на текущий экземпляр основного сервера. Однако это перенаправление является прозрачным для клиентов. Для клиента перенаправленное соединение выглядит как соединение с экземпляром сервера, определяемым именем изначального участника. Если первоначальный участник является в настоящее время зеркальным сервером, то клиент считает, что он подключен к зеркальному серверу и обновляет зеркальную базу данных. В действительности же клиент перенаправлен к отказоустойчивому участнику, который является текущей основной базой данных, и обновляет новую основную базу данных.

После перенаправления к отказоустойчивому участнику клиент может получать непредвиденные результаты, если использует инструкцию Transact-SQL USE для работы в другой базе данных. Это может случиться в том случае, если в текущем экземпляре основного сервера (отказоустойчивого участника) имеется набор баз данных, отличающийся от набора баз данных изначального участника.

См. также

Основные понятия

Алгоритм повторного соединения (для соединений по протоколу TCP/IP)
Сетевые протоколы и конечные точки TDS
Обзор зеркального отображения базы данных
Возможные неполадки при зеркальном отображении базы данных

Другие ресурсы

Подключение к компоненту Database Engine SQL Server
Using Connection String Keywords with SQL Native Client
Использование обозревателя SQL Server

Справка и поддержка

Получение помощи по SQL Server 2005