Odin | База знаний 1С

Как устранить завис...
 

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


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

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

как убрать ?



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

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

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

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

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

ALTER DATABASE [Имя_Базы] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

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

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

RESTORE DATABASE [Имя_Базы] WITH RECOVERY;

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

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

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

ALTER DATABASE [Имя_Базы] SET EMERGENCY;

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

DBCC CHECKDB ('Имя_Базы');

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

DBCC CHECKDB ('Имя_Базы', REPAIR_ALLOW_DATA_LOSS);

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

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 с параметрами восстановления.



   
ОтветитьЦитата