Автоматический переход на другой ресурс

Автоматический переход на другой ресурс поддерживается только в сеансах зеркального отображения базы данных, выполняющихся со следящим сервером в режиме высокой безопасности (режим высокой безопасности с автоматическим переходом на другой ресурс). Если при работе в режиме высокой безопасности с автоматическим переходом на другой ресурс основная база данных становится недоступной, после синхронизации выполняется автоматический переход на другой ресурс. При автоматическом переходе на другой ресурс зеркальный сервер берет на себя роль основного сервера данных и выводит свою копию базы данных в оперативный режим как основную базу данных. Обязательная синхронизация базы данных предотвращает потерю данных во время перехода на другой ресурс, поскольку все транзакции, которые фиксируется в основной базе данных, фиксируются также в зеркальной базе данных.

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

Условия, необходимые для автоматического перехода на другой ресурс

Чтобы произвести автоматический переход на другой ресурс, необходимо выполнение следующих условий.

  • Сеанс зеркального отображения базы данных должен выполняться в режиме высокой безопасности и при наличии следящего сервера. Дополнительные сведения см. в разделе Синхронное зеркальное отображение базы данных (режим высокой безопасности).

  • Зеркальная база данных должна быть синхронизирована. Это обеспечивает гарантированную запись на диск всех данных журналов, отправляемых зеркальному серверу.

  • Основной сервер потерял соединение с остальной частью конфигурации зеркального отображения базы данных, в то время как зеркальная база данных и следящий сервер удерживают кворум. Однако если утрачивается связь со всеми экземплярами серверов, а позднее следящий и зеркальный серверы восстанавливают связь, автоматический переход на другой ресурс не выполняется.

    ПримечаниеПримечание

    Дополнительные сведения см. в разделе Кворум: как следящий сервер влияет на доступность базы данных.

  • Зеркальный сервер обнаружил потерю основного сервера.

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

Принцип работы автоматического перехода на другой ресурс

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

  1. Если основной сервер все еще работает, он изменяет состояние основной базы данных на DISCONNECTED и отсоединяет от нее все клиентские приложения.

  2. Следящий и зеркальный серверы регистрируют недоступность основного сервера.

  3. Если в очереди повтора остался какой-либо журнал, то зеркальный сервер завершает накат зеркальной базы данных.

    ПримечаниеПримечание

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

  4. Бывшая зеркальная база данных переводится в оперативный режим как новая основная база данных, после чего как можно быстрее выполняется откат всех незафиксированных транзакций. Блокировка изолирует эти транзакции.

  5. Когда бывший основной сервер снова присоединяется к сеансу, он определяет, что роль основного сервера перешла к участнику, который является для него резервным сервером. Следовательно, бывший основной сервер берет на себя роль зеркального и делает свою базу данных зеркальной базой данных. Затем новый зеркальный сервер как можно быстрее синхронизирует новую зеркальную базу данных с основной базой данных. Как только новый зеркальный сервер выполнил повторную синхронизацию баз данных, снова становится возможным переход на другой ресурс, но уже в обратном направлении.

Автоматический переход на другой ресурс показан на следующем рисунке.

Автоматический переход на другой ресурс

Первоначально присоединены все три сервера (сеанс имеет полный кворум). Участник А — это основной сервер, а участник Б — зеркальный сервер. Участник_A (или основная база данных на сервере Участник_A) становится недоступным. Как следящий сервер, так и Участник_Б узнают, что этот участник больше недоступен, сеанс удерживает кворум. Участник Б становится основным сервером и создает свою копию базы данных, которая используется как новая основная база данных. Рано или поздно участник А снова присоединяется к сеансу и обнаруживает, что теперь роль основного сервера выполняет участник Б. Выяснив это, участник А берет на себя функции зеркального сервера.

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

ПримечаниеПримечание

Транзакции, подготовленные с помощью координатора распределенных транзакций (Майкрософт), но еще не зафиксированные на момент перехода на другой ресурс, считаются после перехода отмененными.

Отключение автоматического перехода на другой ресурс в среде SQL Server Management Studio

Чтобы отключить автоматический переход на другой ресурс, откройте страницу Зеркальное отображение окна Свойства базы данных и измените режим работы, выбрав один из следующих вариантов:

Изменение режима работы

Отключение автоматического перехода на другой ресурс с помощью Transact-SQL

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

Отключение следящего сервера