Почему рабочая база данных SQL Server перешла в состояние Restoring и как ее вернуть в рабочее состояние?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Состояние базы данных Restoring (Восстановление) в Microsoft SQL Server Management Studio означает, что база данных находится в процессе выполнения операции восстановления и не доступна для обычных подключений. Это часто происходит, когда при создании копии базы данных или выполнении бэкапа были выбраны специфические параметры, препятствующие завершению процесса.

Рассмотрим, почему это случается и как вернуть базу данных в работоспособное состояние, чтобы пользователи могли снова продолжить работу.

Основные причины возникновения статуса Restoring

Ситуация чаще всего возникает при создании резервной копии или попытке сделать копию базы данных «на лету». Основными причинами являются:

Способ 1: Использование команды восстановления с параметром RECOVERY

Если база «зависла» и нет необходимости применять дополнительные журналы транзакций, самым быстрым и правильным методом будет принудительное завершение процесса восстановления. Для этого воспользуйтесь редактором запросов в SQL Server Management Studio.

Выполните следующий запрос:


RESTORE DATABASE [ИмяВашейБазы] WITH RECOVERY;
GO

Важно: Если SQL Server сообщает об ошибке доступа, это означает, что база данных все еще используется каким-либо процессом. В этом случае необходимо сначала принудительно отключить всех пользователей и фоновые процессы:


ALTER DATABASE [ИмяВашейБазы] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
RESTORE DATABASE [ИмяВашейБазы] WITH RECOVERY;
ALTER DATABASE [ИмяВашейБазы] SET MULTI_USER;
GO

После выполнения этих команд база должна перейти в режим Online.

Способ 2: Остановка служб сервера 1С

Зачастую препятствием для смены режима базы данных выступает сервер 1С:Предприятие. Даже если в базе нет активных пользователей, фоновые задания и сеансы сервера 1С могут удерживать монопольное соединение.

  1. Остановите службу 1C:Enterprise Server Agent.
  2. Повторите команду из Способа 1.
  3. После того как база перейдет в рабочий режим, снова запустите службу 1C:Enterprise Server Agent.

Способ 3: Метод замены файлов (для критических случаев)

Если стандартные SQL-команды не приносят результата, можно воспользоваться «физическим» методом пересоздания базы данных. Внимание: перед началом манипуляций обязательно сделайте копию файлов .mdf и .ldf!

  1. Полностью остановите службу SQL Server.
  2. Скопируйте файлы .mdf (данные) и .ldf (журнал) зависшей базы в надежное место.
  3. Запустите службу SQL Server.
  4. Удалите «зависшую» базу данных через консоль управления (Drop).
  5. Создайте новую пустую базу данных с точно таким же именем.
  6. Переведите созданную пустую базу в автономный режим (Offline) или остановите SQL Server.
  7. Замените файлы созданной пустой базы (п. 6) на ваши сохраненные файлы (п. 2).
  8. Запустите службу SQL Server и переведите базу в оперативный режим (Online).

Данный метод позволяет «обмануть» SQL Server и заставить его подключить базу данных заново через процедуру Attach.

Рекомендации по предотвращению проблемы

Чтобы избежать подобных ситуаций в будущем, примите к сведению следующие советы:

Применяя данные методы, вы сможете восстановить работоспособность вашей системы в кратчайшие сроки.

← На главную