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

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

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

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

Теги

 

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

MSSQL — получить список JOB с помощью SQL запроса

Пример вывода списка заданий JOB с помощью запроса из системных таблиц. Запрос выводит только те задания, которые созданы в Database Maintenance. Если вам нужны все, то уберите "AND [sCAT].[name] = N'Database Maintenance'" из запроса:

Теги

Установка SQL Server Management Tools — SSMS

Для управления SQL сервером понадобится SQL Server Management Tools (SSMS). Приложение SSMS можно установить на тот же сервер, что и SQL Server 2019, однако, иногда удобнее выполнить установку на компьютер системного администратора, DBA или разработчика.

Теги