Зеркальные базы данных отключены после перезапуска зеркального отображения базы данных в SQL Server

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

Исходная версия продукта: SQL Server
Исходный номер базы знаний: 2490051

Симптом

Рассмотрим следующий сценарий.

  • У вас есть компьютер, на котором выполняется вторичный экземпляр Microsoft SQL Server в зеркале двухсерверной базы данных.

  • Использование ЦП достигает 100 процентов на компьютере, и вы не можете остановить службу SQL Server с помощью средств управления SQL Server.

  • Завершите процесс вторичного экземпляра SQL Server с помощью диспетчера задач.

  • Перезапустите дополнительный экземпляр SQL Server.

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

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

Причина

Эта проблема возникает из-за проблем в конечных точках зеркального отображения базы данных SQL Server.

Решение

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

Метод 1

Перезапустите конечную точку в зеркале базы данных. Для этого выполните следующие шаги.

  1. В основной базе данных выполните следующий скрипт SQL, чтобы остановить конечную точку:

    ALTER ENDPOINT <Endpoint Name> STATE=STOPPED
    
  2. Выполните следующий скрипт SQL, чтобы перезапустить конечную точку:

    ALTER ENDPOINT <Endpoint Name> STATE=STARTED
    

    Примечание.

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

    ALTER DATABASE <Database Name> SET PARTNER RESUME
    

Метод 2.

Удалите и повторно создайте конечные точки зеркального отображения базы данных на обоих серверах.