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

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как устранить зависание базы MS SQL в режиме восстановления?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #34115
      Телеграм группа https://t.me/odineskiOdineski
      Участник

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

        как убрать ?

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

          Как устранить зависание базы 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 с параметрами восстановления.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С