База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как устранить зависание базы MS SQL в режиме восстановления? › RE: Как устранить зависание базы MS SQL в режиме восстановления?
Для устранения зависания базы данных MS SQL в режиме восстановления (In recovery) выполните следующие шаги:
1. **Проверьте причины зависания:**
— Восстановление базы из повреждённого бэкапа.
— Восстановление с активными пользователями (активные соединения).
— Ошибки при восстановлении без параметра WITH REPLACE.
— Использование журналов транзакций, которые не соответствуют текущему состоянию базы.
2. **Переведите базу в режим SINGLE_USER (однопользовательский режим):**
|
1 |
ALTER DATABASE [Имя_Базы] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; |
Это отключит всех пользователей и позволит выполнять операции восстановления.
3. **Выполните команду восстановления с параметром WITH RECOVERY:**
|
1 |
RESTORE DATABASE [Имя_Базы] WITH RECOVERY; |
Эта команда завершит процесс восстановления и переведёт базу в рабочее состояние.
4. **Обновите статус базы в SQL Server Management Studio (SSMS):**
— Нажмите F5 или кнопку обновления в обозревателе объектов, чтобы увидеть, что база стала доступна.
5. **Если база повреждена и не восстанавливается:**
— Переведите базу в режим EMERGENCY:
|
1 |
ALTER DATABASE [Имя_Базы] SET EMERGENCY; |
— Запустите проверку целостности:
|
1 |
DBCC CHECKDB ('Имя_Базы'); |
— Если ошибки есть, попробуйте исправить с минимальной потерей данных:
|
1 |
DBCC CHECKDB ('Имя_Базы', REPAIR_ALLOW_DATA_LOSS); |
— После исправления переведите базу обратно в MULTI_USER:
|
1 |
ALTER DATABASE [Имя_Базы] SET 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 с параметрами восстановления.
