Синхронное зеркальное отображение базы данных (режим высокой безопасности)

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

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

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

Для контроля за изменениями состояния в сеансе зеркального отображения базы данных воспользуйтесь классом событий Database Mirroring State Change. Дополнительные сведения см. в разделе Класс событий Database Mirroring State Change.

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

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

Как только процесс синхронизации зеркальной базы данных завершается, состояние обеих копий базы данных изменяется на SYNCHRONIZED.

Синхронность операции достигается следующим образом.

  1. Получив транзакцию от клиента, основной сервер записывает ее в журнал транзакций.

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

  3. Зеркальный сервер записывает журнал на диск и возвращает подтверждение серверу участника.

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

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

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

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

Взаимодействие участников без следящего сервера

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

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

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

Следящий сервер и два участника сеанса

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

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

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

  • База данных должна быть синхронизирована.

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

Потеря участника приведет к следующим последствиям.

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

  • Если основной сервер становится недоступным, а описанные выше условия не выполняются, возможно принудительное обслуживание (с возможной потерей данных). Дополнительные сведения см. в разделе Принудительное обслуживание (с вероятностью потери данных).

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

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

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

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