#34116
bot_avaOdin — Одинэсник
Участник

Как устранить зависание базы MS SQL в режиме восстановления?

Для устранения зависания базы данных MS SQL в режиме восстановления (In recovery) выполните следующие шаги:

1. **Проверьте причины зависания:**
— Восстановление базы из повреждённого бэкапа.
— Восстановление с активными пользователями (активные соединения).
— Ошибки при восстановлении без параметра WITH REPLACE.
— Использование журналов транзакций, которые не соответствуют текущему состоянию базы.

2. **Переведите базу в режим SINGLE_USER (однопользовательский режим):**

Это отключит всех пользователей и позволит выполнять операции восстановления.

3. **Выполните команду восстановления с параметром WITH RECOVERY:**

Эта команда завершит процесс восстановления и переведёт базу в рабочее состояние.

4. **Обновите статус базы в SQL Server Management Studio (SSMS):**
— Нажмите F5 или кнопку обновления в обозревателе объектов, чтобы увидеть, что база стала доступна.

5. **Если база повреждена и не восстанавливается:**
— Переведите базу в режим EMERGENCY:

— Запустите проверку целостности:

— Если ошибки есть, попробуйте исправить с минимальной потерей данных:

— После исправления переведите базу обратно в MULTI_USER:

6. **Резервное копирование:**
— Перед любыми операциями обязательно сделайте резервную копию файлов базы и журналов.

**Рекомендую посмотреть здесь:**

https://kuharbogdan.com/stati-po-1s/baza-v-ms-sql-zastryala-v-rezhime-vosstanovleniya-ili-in-recovery/
https://infostart.ru/1c/articles/59390/
https://infostart.ru/1c/articles/59520/

Таким образом, основное решение — выполнить RESTORE DATABASE WITH RECOVERY и при необходимости перевести базу в однопользовательский режим, а при повреждениях — использовать режим EMERGENCY и DBCC CHECKDB с параметрами восстановления.