Отказоустойчивый сервер имеет статус (Зеркальный, Отключен, При восстановлении), а основной сервер имеет статус (Основной, Отключен).
Как происходит переподключение этих серверов?
Отказоустойчивый сервер имеет статус (Зеркальный, Отключен, При восстановлении), а основной сервер имеет статус (Основной, Отключен).
Как происходит переподключение этих серверов?
Ответы:
Иногда перезапуск конечной точки зеркального отображения на основном сервере может решить эту проблему.
Для этого используйте следующий T-SQL.
ALTER ENDPOINT Endpoint_Name STATE = STOPPED
ALTER ENDPOINT Endpoint_Name STATE = STARTED
Чтобы получить имя конечной точки.
SELECT * FROM sys.endpoints
WHERE type = 4
См. KB 2490051 для более подробной информации.
Во-первых, попытайтесь заставить их повторно соединиться с этой командой T-SQL на основном сервере:
ALTER DATABASE AdventureWorks2012 SET PARTNER RESUME;
Если это не помогло, у вас возникла проблема связи между принципалом и зеркалом, и вот тут начинается самое интересное. Это может быть что угодно: от IP-соединения до безопасности на конечных точках зеркального отображения и различных методов шифрования. Я бы порекомендовал книгу Роберта Дэвиса Pro SQL Server 2008 Mirroring, если вам нужно углубиться в устранение неполадок.
В нашем случае мы используем проверку подлинности сертификата для подключения конечных точек зеркального отображения, и проблема заключалась в том, что истек срок действия одного из сертификатов, которые использовали конечные точки зеркального отображения.
Вы можете проверить срок действия сертификата, участвующего в аутентификации конечной точки, выполнив
SELECT * FROM sys.certificates
Если это так, вам нужно будет создать новые сертификаты на любой срок действия, а затем сделать это ALTER ENDPOINT
после того, как они были импортированы.
Я исправил эту проблему с помощью следующих шагов, перезапуск конечной точки только на PRIMARY не помог
НА ПЕРВИЧНОМ:
SELECT * FROM sys.endpoints WHERE type = 4
ALTER ENDPOINT Mirroring STATE = STOPPED
ALTER ENDPOINT Mirroring STATE = STARTED
На ЗЕРКАЛО:
SELECT * FROM sys.endpoints WHERE type = 4
ALTER ENDPOINT Mirroring STATE = STOPPED
ALTER ENDPOINT Mirroring STATE = STARTED
Вернуться на ПЕРВИЧНЫЙ:
ALTER DATABASE PACXDSite SET PARTNER RESUME;
Случай:
Когда вы запускаете следующую команду на главном сервере:
alter database 'Database_Name' set partner off
После выполнения вышеуказанной команды ваша БД переходит в [mirror, disconnected]
состояние на зеркальном сервере.
Разрешение:
Шаг 1: Запустите ниже запрос на зеркало
exec sp_resetstatus 'Database_Name'
Шаг 2: После выполнения команды ниже ваша БД будет доступна.
restore database 'Database_Name' with recovery
Примечание. Шаг 2 займет некоторое время для восстановления.
Если «RESUME PARTNER» не работает
ALTER DATABASE AdventureWorks2016 SET PARTNER RESUME;
Я бы разбил зеркало для этой базы данных и перенастроил бы ее.
- STEP 1 ON PRINCIPAL, разбить зеркало для базы данных
ALTER DATABASE AdventureWorks2016 SET PARTNER OFF;
- STEP 2 ON MIRROR, разбить зеркало для базы данных
ALTER DATABASE AdventureWorks2016 SET PARTNER OFF;
- ШАГ 3 НА ЗЕРКАЛО
RESTORE LAST FULL BACKUP DATABASE WITH NO RECOVERY
RESTORE TRAN BACKUP DATABASE WITH NO RECOVERY
- ШАГ 4 НА ЗЕРКАЛО
ALTER DATABASE AdventureWorks2016 SET PARTNER = 'TCP://PRINCIPAL.MyDomain.COM:5022';
- ШАГ 5 НА ОСНОВАНИИ
ALTER DATABASE AdventureWorks2016 SET PARTNER = 'TCP://MIRROR.MyDomain.COM:5022';
- STEP 6 ON PRINCIPAL, если WITNESS уже настроен
ALTER DATABASE AdventureWorks2016 SET WITNESS = 'TCP://WITNESS.MyDomain.COM:5022';
Стоит отметить, что все вышеперечисленное может быть выполнено в рабочее время, так как основная база данных всегда будет онлайн и доступна.