Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Замечание
Эта функция будет удалена в будущей версии Microsoft SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Вместо этого используйте группы доступности Always On.
Зеркальное отображение базы данных, введенное в SQL Server 2005, — это решение для повышения доступности базы данных и избыточности данных. Собственный клиент SQL Server обеспечивает неявную поддержку зеркального отображения базы данных, поэтому разработчику не нужно писать код или выполнять какие-либо другие действия после настройки базы данных.
Зеркальное отображение базы данных, которое реализуется на основе каждой базы данных, сохраняет копию рабочей базы данных SQL Server на резервном сервере. Этот сервер является горячим или теплым резервным сервером в зависимости от конфигурации и состояния сеанса зеркального отображения базы данных. Горячий резервный сервер поддерживает быструю отработку отказа без потери зафиксированных транзакций, а теплый резервный сервер поддерживает принудительное обслуживание (с возможной потерей данных).
Рабочая база данных называется основной базой данных, а резервная копия называется зеркальной базой данных. Основная база данных и зеркальная база данных должны находиться в отдельных экземплярах SQL Server (экземплярах сервера), и они должны находиться на отдельных компьютерах, если это возможно.
Рабочий экземпляр сервера, называемый основным сервером, взаимодействует с резервным экземпляром сервера, который называется зеркальным сервером. Основные и зеркальные серверы действуют в качестве партнеров в сеансе зеркального отображения базы данных. Если основной сервер завершается ошибкой, зеркальный сервер может сделать базу данных в основную базу данных с помощью процесса, вызываемого отработкой отказа. Например, Partner_A и Partner_B являются двумя серверами партнеров, а основная база данных изначально находится на Partner_A в качестве основного сервера, а зеркальная база данных, размещенная на Partner_B в качестве зеркального сервера. Если Partner_A переходит в автономный режим, база данных на Partner_B может выполнить отработку отказа, чтобы стать текущей основной базой данных. Когда Partner_A повторно присоединиться к сеансу зеркального отображения, он становится зеркальным сервером, а ее база данных становится зеркальной базой данных.
Альтернативные конфигурации зеркального отображения баз данных обеспечивают различные уровни производительности и безопасности данных и поддерживают различные формы отработки отказа. Дополнительные сведения см. в статье Зеркальное отображение базы данных (SQL Server).
При указании зеркального имени базы данных можно использовать псевдоним.
Замечание
Сведения о начальных попытках подключения и повторном подключении к зеркальной базе данных см. в разделе "Подключение клиентов к сеансу зеркального отображения базы данных ( SQL Server)".
Рекомендации по программированию
Если основной сервер базы данных завершается ошибкой, клиентское приложение получает ошибки в ответ на вызовы API, которые указывают на то, что подключение к базе данных было потеряно. Когда это происходит, все незафиксированные изменения в базе данных теряются, а текущая транзакция откатывается. Если это происходит, приложение должно закрыть подключение (или освободить объект источника данных) и повторно открыть его. Подключение прозрачно перенаправится в зеркальную базу данных, которая теперь выступает в качестве основного сервера.
Когда соединение восстанавливается, основной сервер отправляет клиенту идентификационные данные партнера по обеспечению отработки отказа, который должен использоваться при отработке отказа. Когда приложение попыталось установить подключение после сбоя основного сервера, клиент не знает удостоверения партнера отработки отказа. Чтобы клиенты могли справиться с этим сценарием, свойство инициализации и связанное ключевое слово строки подключения позволяют клиенту самостоятельно указать удостоверение партнера отработки отказа. Атрибут клиента используется только в этом сценарии; Если основной сервер доступен, он не используется. Если сервер партнера отработки отказа, предоставленный клиентом, не ссылается на сервер, действующий в качестве партнера по отработки отказа, подключение отказывается от сервера. Чтобы разрешить приложениям адаптироваться к изменениям конфигурации, удостоверение фактического партнера отработки отказа можно определить путем проверки атрибута после установки подключения. Следует рассмотреть возможность кэширования сведений о партнере, чтобы обновить строку подключения или разработать стратегию повторных попыток в случае сбоя первой попытки подключения.
Замечание
Необходимо явно указать базу данных, используемую подключением, если вы хотите использовать эту функцию в DSN, строке подключения или атрибуте подключения. Sql Server Native Client не попытается выполнить отработку отказа в партнерской базе данных, если это не сделано.
Зеркальное отображение — это функция базы данных. Приложения, использующие несколько баз данных, могут не использовать эту функцию.
Кроме того, имена серверов не учитывает регистр, но имена баз данных чувствительны к регистру. Поэтому следует убедиться, что в DSN и строках подключения используется тот же регистр.
Поставщик OLE DB для собственного клиента SQL Server
Поставщик OLE DB собственного клиента SQL Server поддерживает зеркальное отображение базы данных через атрибуты строки подключения и подключения. Свойство SSPROP_INIT_FAILOVERPARTNER добавлено в набор свойств DBPROPSET_SQLSERVERDBINIT, а FailoverPartner ключевое слово — новый атрибут строки подключения для DBPROP_INIT_PROVIDERSTRING. Дополнительные сведения см. в разделе "Использование ключевых слов строки подключения" с собственным клиентом SQL Server.
Кэш отработки отказа сохраняется до загрузки поставщика, который до вызова CoUninitialize или до тех пор, пока приложение имеет ссылку на какой-либо объект, управляемый поставщиком OLE DB собственного клиента SQL Server, например объектом источника данных.
Дополнительные сведения о поддержке поставщика OLE DB собственного клиента SQL Server см. в разделе "Свойства инициализации и авторизации".
Драйвер ODBC для собственного клиента SQL Server
Драйвер ODBC собственного клиента SQL Server поддерживает зеркальное отображение базы данных через атрибуты строки подключения и подключения. В частности, атрибут SQL_COPT_SS_FAILOVER_PARTNER добавлен для использования с функциями SQLSetConnectAttr и SQLGetConnectAttr ; и ключевое Failover_Partner слово было добавлено в качестве нового атрибута строки подключения.
Кэш отработки отказа сохраняется до тех пор, пока приложение имеет по крайней мере один дескриптор среды. И наоборот, он теряется при освобождении последнего дескриптора среды.
Замечание
Диспетчер драйверов ODBC был улучшен для поддержки спецификации имени сервера отработки отказа.
См. также
Компоненты собственного клиента SQL Server
Подключение клиентов к сеансу зеркального отображения базы данных (SQL Server)
Зеркалирование базы данных (SQL Server)