Настройки 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 (нет следящего сервера) |
Обслуживание может быть принудительно переключено на зеркальный сервер (с возможностью потери данных). |
См. также
Задачи
Как изменить безопасность транзакций в сеансах зеркального отображения базы данных (Transact-SQL)
Как удалить следящий сервер из сеанса зеркального отображения базы данных (Transact-SQL)
Основные понятия
Асинхронное зеркальное отображение баз данных (режим высокой производительности)
Состояния зеркального отображения
Следящий сервер зеркального отображения базы данных
Синхронное зеркальное отображение базы данных (режим высокой безопасности)
Другие ресурсы
sys.database_mirroring (Transact-SQL)