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

Область применения:SQL Server

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

Примечание.

В режиме высокой производительности свидетель может отрицательно сказаться на доступности. Если для сеанса зеркального отображения базы данных настроен сервер-свидетель, то основной сервер должен быть подключен по крайней мере к одному из двух других экземпляров сервера: зеркальному серверу, серверу-свидетелю или к обоим. В противном случае база данных становится недоступной, а принудительное восстановление службы невозможным, при этом могут быть потеряны данные. Таким образом, для режима высокой производительности мы настоятельно рекомендуем всегда оставлять параметр witness в положении OFF. Сведения о влиянии свидетеля на режим высокой производительности см. в разделе Режимы работы зеркального отображения базы данных.

На следующем рисунке показан сеанс в режиме повышенной безопасности со свидетелем.

Сеанс зеркалирования со свидетелем

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

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

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

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

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

Мы настоятельно рекомендуем размещать сервер-свидетель на отдельном компьютере от серверов-партнеров. Партнеры зеркального отображения баз данных поддерживаются только выпуском SQL Server Standard и выпуском SQL Server Enterprise. Свидетели, напротив, также поддерживаются рабочей группой SQL Server и SQL Server Express. За исключением случаев обновления с более ранней версии SQL Server, все экземпляры сервера в сеансе зеркального отображения должны использовать одну и ту же версию SQL Server. Например, свидетель SQL Server 2008 (10.0.x) поддерживается при обновлении с конфигурации зеркального отображения SQL Server 2008 (10.0.x), однако его нельзя добавить в существующую или новую конфигурацию зеркального отображения SQL Server 2008 R2 (10.50.x) или более поздней версии.

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

Роль свидетеля при автоматическом аварийном переключении

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

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

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

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

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

Добавление или удаление свидетеля

Добавить свидетель

Удалить свидетель