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

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

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

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

Теги

 

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

Включаем Database Mail в Microsoft SQL Server 2014

Для того чтобы MSSQL сервер мог слать уведомления на почту, необходимо настроить Database Mail фичу. Для чего нужны уведомления? Я, например, хочу получать письмо, когда заканчивается бэкап. Функционал этой фичи на самом деле гораздо богаче. При сноровке можно по почте слать SQL запросы и получать результаты. В моём случае это не требуется.

Теги