Переподключите зеркальный сервер SQL Server 2008 R2


10

Отказоустойчивый сервер имеет статус (Зеркальный, Отключен, При восстановлении), а основной сервер имеет статус (Основной, Отключен).

Как происходит переподключение этих серверов?


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

Ответы:


6

Иногда перезапуск конечной точки зеркального отображения на основном сервере может решить эту проблему.

Для этого используйте следующий T-SQL.

ALTER ENDPOINT Endpoint_Name STATE = STOPPED

ALTER ENDPOINT Endpoint_Name STATE = STARTED

Чтобы получить имя конечной точки.

SELECT * FROM sys.endpoints
WHERE type = 4

См. KB 2490051 для более подробной информации.


1
Мне пришлось перезапустить конечную точку на зеркальном сервере, так как КБ предлагает второй вариант.
Ян Zahradník

4

Во-первых, попытайтесь заставить их повторно соединиться с этой командой T-SQL на основном сервере:

ALTER DATABASE AdventureWorks2012 SET PARTNER RESUME;

Если это не помогло, у вас возникла проблема связи между принципалом и зеркалом, и вот тут начинается самое интересное. Это может быть что угодно: от IP-соединения до безопасности на конечных точках зеркального отображения и различных методов шифрования. Я бы порекомендовал книгу Роберта Дэвиса Pro SQL Server 2008 Mirroring, если вам нужно углубиться в устранение неполадок.


2

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

Вы можете проверить срок действия сертификата, участвующего в аутентификации конечной точки, выполнив

SELECT * FROM sys.certificates  

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


1

Я исправил эту проблему с помощью следующих шагов, перезапуск конечной точки только на PRIMARY не помог

  1. НА ПЕРВИЧНОМ:

    SELECT * FROM sys.endpoints WHERE type = 4
    
    ALTER ENDPOINT Mirroring STATE = STOPPED
    
    ALTER ENDPOINT Mirroring STATE = STARTED
  2. На ЗЕРКАЛО:

    SELECT * FROM sys.endpoints WHERE type = 4
    
    ALTER ENDPOINT Mirroring STATE = STOPPED
    
    ALTER ENDPOINT Mirroring STATE = STARTED
  3. Вернуться на ПЕРВИЧНЫЙ:

    ALTER DATABASE PACXDSite SET PARTNER RESUME;

0

Случай:

Когда вы запускаете следующую команду на главном сервере:

alter database  'Database_Name' set partner off

После выполнения вышеуказанной команды ваша БД переходит в [mirror, disconnected]состояние на зеркальном сервере.

Разрешение:

Шаг 1: Запустите ниже запрос на зеркало

exec sp_resetstatus 'Database_Name'

Шаг 2: После выполнения команды ниже ваша БД будет доступна.

restore database 'Database_Name' with recovery

Примечание. Шаг 2 займет некоторое время для восстановления.


Это делает зеркало полностью отключенным, и вам нужно снова установить зеркальное отображение
Алексей Ф

0

Если «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';

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.