Перейти к основному содержанию

MSSQL — восстанавливаем работу зеркала

SQL

Часто бывает так, что после каких-то действий по обновлению или из-за перезагрузки сервера процесс зеркалирование базы может приостановиться. База висит в статусе SUSPENDED.

При этом БД не жмётся, лог транзакций постоянно растёт, что может привести к остановке БД. Бэкап тоже может перестать работать из-за разросшегося лога.

Можно разобрать зеркало и снова собрать. Однако, если БД большая, этот процесс может занять много времени. Более правильный способ — попытаться восстановить зеркалирование.

Классический метод прост, на основной БД нужно запустить:

ALTER DATABASE [имя_вашей_бд] SET PARTNER RESUME

Однако, как показывает практика, это не всегда работает. База переводится в режим SYNCHRONIZED, при этом ничего не происходит. Database Mirroring Monitor показывает, что данные не передаются.

В этом случае идём на зеркальную БД и тоже её пинаем:

ALTER DATABASE [имя_вашей_бд] SET PARTNER RESUME

Немного ждём.

mssql

Потекло. Мне обещают, что через час всё синхронизируется. Естественно, время не точное. Я вижу что отправка пошла, но приём пока медленный. Понаблюдаю.

sql

Прошло пол часа. Половина отстающих данных улетела, но не восстановилась.

sql

Ещё через пол часа данные улетели полностью, но на зеркальном сервере не восстанавливаются.

Передёргиваем зеркальную базу:

ALTER DATABASE [имя_вашей_бд] SET PARTNER SUSPEND
ALTER DATABASE [имя_вашей_бд] SET PARTNER RESUME
sql

Так же лучше. Дождусь синхронизации и запланирую перезагрузку сервера.

Однако, поведение зеркальной базы странное, синхронизации можно не дождаться. Иногда приходится разбирать зеркало, а потом собирать заново.

Теги

 

Похожие материалы

Переименовать Microsoft SQL Server 2014

Иногда требуется переименовать экземпляр Microsoft SQL Server 2014. Это можно сделать с помощью Microsoft SQL Server Management Studio. Запускаем Management Studio на целевом сервере и логинимся на локальный SQL сервер. Для этого в поле Server name указываем точку "." или "localhost".

Теги

Бэкап MSSQL на NAS

Недавно столкнулся с задачкой — настроить резервное копирование MSSQL базы на сетевую шару по SMB. Сам SQL сервер работает под доменной учётной записью, а SMB шара доступна по локальному логину и паролю NAS.

Теги