Database Mirroring Witness

Применимо к: даSQL Server (все поддерживаемые версии)

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

Примечание

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

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

Сеанс зеркального отображения со следящим сервером

В этом разделе:

Использование следящего сервера в нескольких сеансах

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

Экземпляр следящего сервера для двух баз данных

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

Рекомендации к выбору оборудования и программного обеспечения

Рекомендуется располагать следящий сервер на отдельном компьютере, который не используется участниками зеркального отображения. Участники зеркального отображения баз данных поддерживаются только выпусками SQL Server Standard и SQL Server Enterprise. Однако следящие серверы поддерживаются также в выпусках SQL Server Workgroup и SQL Server Express. Кроме как во время обновления предыдущей версии SQL Server, на всех экземплярах серверов в сеансе зеркального отображения должна работать одна и та же версия SQL Server. Например, в SQL Server 2008 следящий сервер при обновлении от конфигурации зеркального отображения SQL Server 2008 поддерживается, но не может быть добавлен в существующую или новую конфигурацию зеркального отображения SQL Server 2008 R2 или более поздних версий.

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

Роль следящего сервера в автоматический переход на другой ресурс

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

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

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

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

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

Добавление или удаление следящего сервера

Добавление следящего сервера

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

См. также:

Переключение ролей во время сеанса зеркального отображения базы данных (SQL Server)
Режимы работы зеркального отображения базы данных
Кворум. Как следящий сервер влияет на доступность базы данных (зеркальное отображение базы данных)
Возможные неполадки при зеркальном отображении базы данных
Состояния зеркального отображения (SQL Server)