Настройки Transact-SQL и режимы зеркального отображения базы данных

В этом разделе рассматривается работа сеанса зеркального отображения базы данных с точки зрения параметров инструкции ALTER DATABASE и состояний зеркальной базы данных и следящего сервера. Он предназначен для пользователей, которые производят зеркальное отображение базы данных частично или целиком при использовании инструкций языка Transact-SQL, а не в среде Microsoft Среда SQL Server Management Studio. Дополнительные сведения о режимах зеркального отображения см. в разделе Сеансы зеркального отображения базы данных.

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

В качестве альтернативы языку Transact-SQL управление рабочим режимом сеанса в обозревателе объектов может осуществляться на странице Зеркальное отображение диалогового окна Свойства базы данных. Дополнительные сведения см. в разделе Как настроить сеанс зеркального отображения базы данных (среда SQL Server Management Studio).

Влияние безопасности транзакций и состояния следящего сервера на режим работы

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

Безопасность транзакций

Безопасность транзакций — специфичное для зеркального отображения свойство базы данных, которое определяет, будет ли работать сеанс зеркального отображения базы данных в синхронном или асинхронном режиме. Имеются два уровня безопасности: FULL и OFF.

  • SAFETY FULL

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

    При создании сеанса инструкцией ALTER DATABASE он начинается с установки SAFETY в значение FULL. Это означает, что сеанс начинается в режиме высокой безопасности. После начала сеанса можно добавить следящий сервер.

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

  • SAFETY OFF

    При отключении обеспечения безопасности транзакций (уровень OFF) сеанс работает асинхронно, в высокопроизводительном режиме. Если параметр SAFETY установлен в OFF, параметр WITNESS также должен быть установлен в OFF (значение по умолчанию). Сведения о влиянии следящего сервера на высокопроизводительный режим содержатся в приведенном ниже разделе «Состояние следящего сервера». Дополнительные сведения о работе при отключенной безопасности транзакций см. в разделе Асинхронное зеркальное отображение баз данных (режим высокой производительности).

Параметры безопасности транзакций для каждого участника на экземпляре сервера доступны через представление каталога sys.database_mirroring, в столбцах mirroring_safety_level и mirroring_safety_level_desc. Дополнительные сведения см. в разделе sys.database_mirroring (Transact-SQL).

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

Состояние следящего сервера

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

При наличии следящего сервера он может находиться в одном из двух состояний:

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

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

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

Состояние каждого из следящих серверов на экземпляре сервера доступно через представлении каталога sys.database_mirroring, в столбцах mirroring_witness_state и mirroring_witness_state_desc. Дополнительные сведения см. в разделе sys.database_mirroring (Transact-SQL).

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

Режим работы

Безопасность транзакций

Состояние следящего сервера

Высокопроизводительный режим

OFF

NULL (нет следящего сервера)2

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

FULL

NULL (нет следящего сервера)

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

FULL

CONNECTED

1 Если следящий сервер будет отключен, рекомендуется установить параметр WITNESS в OFF, пока экземпляр следящего сервера не станет доступен.

2. Если в высокопроизводительном режиме присутствует следящий сервер, то он не участвует в сеансе. Но для обеспечения доступности базы данных необходимо, чтобы по крайней мере два экземпляра сервера оставались подключенными. Поэтому для сеансов, выполняющихся в высокопроизводительном режиме, рекомендуется оставить параметр WITNESS в состоянии OFF. Дополнительные сведения см. в разделе Кворум: как следящий сервер влияет на доступность базы данных.

Просмотр установки безопасности и состояния следящего сервера

Для просмотра настройки безопасности и состояния следящего сервера для базы данных используется представление каталога sys.database_mirroring. Соответствующие данные отображаются в следующих столбцах:

Фактор

Столбцы

Описание

Безопасность транзакций

mirroring_safety_level или mirroring_safety_level_desc

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

UNKNOWN

OFF

FULL

NULL = база данных находится не в оперативном режиме.

Существует ли следящий сервер?

mirroring_witness_name

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

Состояние следящего сервера

mirroring_witness_state или mirroring_witness_state_desc

Состояние следящего сервера в базе данных этого участника:

UNKNOWN

CONNECTED

DISCONNECTED

NULL = нет следящего сервера, либо база данных находится не в оперативном режиме.

Например, на основном или на зеркальном сервере введите:

SELECT mirroring_safety_level_desc, mirroring_witness_name, mirroring_witness_state_desc FROM sys.database_mirroring

Дополнительные сведения об этом представлении каталога см. в разделе sys.database_mirroring (Transact-SQL).

Факторы, влияющие на работу в случае потери основного сервера

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

Безопасность транзакций

Состояние зеркального отображения зеркальной базы данных

Состояние следящего сервера

Действия в случае потери связи с основным сервером

FULL

SYNCHRONIZED

CONNECTED

Производится автоматический переход на другой ресурс.

FULL

SYNCHRONIZED

DISCONNECTED

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

OFF

SUSPENDED или DISCONNECTED

NULL (нет следящего сервера)

Обслуживание может быть принудительно переключено на зеркальный сервер (с возможностью потери данных).

FULL

SYNCHRONIZING или SUSPENDED

NULL (нет следящего сервера)

Обслуживание может быть принудительно переключено на зеркальный сервер (с возможностью потери данных).

См. также

Задания

Справочник

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