Часто бывает так, что после каких-то действий по обновлению или из-за перезагрузки сервера процесс зеркалирование базы может приостановиться. База висит в статусе SUSPENDED.
При этом БД не жмётся, лог транзакций постоянно растёт, что может привести к остановке БД. Бэкап тоже может перестать работать из-за разросшегося лога.
Можно разобрать зеркало и снова собрать. Однако, если БД большая, этот процесс может занять много времени. Более правильный способ — попытаться восстановить зеркалирование.
Классический метод прост, на основной БД нужно запустить:
ALTER DATABASE [имя_вашей_бд] SET PARTNER RESUMEОднако, как показывает практика, это не всегда работает. База переводится в режим SYNCHRONIZED, при этом ничего не происходит. Database Mirroring Monitor показывает, что данные не передаются.
В этом случае идём на зеркальную БД и тоже её пинаем:
ALTER DATABASE [имя_вашей_бд] SET PARTNER RESUMEНемного ждём.

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

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

Ещё через пол часа данные улетели полностью, но на зеркальном сервере не восстанавливаются.
Передёргиваем зеркальную базу:
ALTER DATABASE [имя_вашей_бд] SET PARTNER SUSPEND
ALTER DATABASE [имя_вашей_бд] SET PARTNER RESUME
Так же лучше. Дождусь синхронизации и запланирую перезагрузку сервера.
