Чрезвычайное время ожидания при переводе базы данных SQL Server в автономный режим - PullRequest
270 голосов
/ 30 апреля 2009

Я пытаюсь выполнить автономное обслуживание (восстановление базы данных dev из оперативного резервного копирования) в моей базе данных dev, но команда «Отключить» через SQL Server Management Studio выполняет крайне медленно - на порядка 30 минут плюс сейчас. Я почти сошел с ума и не могу найти в Интернете никаких ссылок на то, что может быть причиной проблемы со скоростью, или как ее исправить.

Некоторые сайты предполагают, что открытые соединения с базой данных вызывают это замедление, но единственное приложение, которое использует эту базу данных, - это экземпляр IIS моей машины разработчика, и служба остановлена ​​- больше нет открытых соединений.

Что может быть причиной этого замедления и что я могу сделать, чтобы ускорить его?

Ответы [ 17 ]

1 голос
/ 01 февраля 2016

В SSMS установите базу данных только для чтения, а затем обратно. Соединения будут закрыты, что освобождает замки.

В моем случае был веб-сайт, который имел открытые соединения с базой данных. Этот метод был достаточно прост:

  1. Щелкните правой кнопкой мыши базу данных -> Свойства -> Параметры
  2. Установите Database Read-Only в True
  3. Нажмите «Да» в диалоговом окне с предупреждением, что SQL Server закроет все подключения к базе данных.
  4. Повторно открыть параметры и отключить только чтение
  5. Теперь попробуйте переименовать базу данных или перевести ее в автономный режим.
1 голос
/ 17 августа 2015

Кроме того, закройте все окна запросов, которые у вас могут быть открыты и которые связаны с рассматриваемой базой данных;)

1 голос
/ 03 октября 2018

Я перепробовал все предложения, приведенные ниже, и ничего не помогло.

  1. EXEC sp_who
  2. Убить

  3. ALTER DATABASE SET SINGLE_USER с немедленным откатом

    ALTER DATABASE УСТАНОВЛЕНА В ОФФЛАЙНЕ С НЕМЕДЛЕННОЙ РОЛБЭК

    Результат: обе вышеуказанные команды также застряли.

4. Щелкните правой кнопкой мыши базу данных -> Свойства -> Параметры Установите для базы данных только для чтения значение True Нажмите «Да» в диалоговом окне с предупреждением, что SQL Server закроет все подключения к базе данных.

Результат: окно зависло при выполнении.

В качестве последнего средства я перезапустил службу SQL-сервера из диспетчера конфигурации, а затем запустил команду ALTER DATABASE SET OFFLINE с опцией ROLLBACK IMMEDIATE. Это работает как шарм

0 голосов
/ 02 июля 2015

Для меня мне просто нужно было войти в Монитор активности заданий и остановить две вещи, которые обрабатывались. Затем он сразу же отключился. Хотя в моем случае я знал, что это были за эти два процесса, и что было нормально их остановить.

0 голосов
/ 02 декабря 2015

В моем случае я остановил сервер Tomcat. затем БД немедленно отключилась.

0 голосов
/ 19 сентября 2018

В следующий раз в диалоговом окне «Выключить» не забудьте установить флажок «Удалить все активные подключения». Я также был на SQL_EXPRESS на локальной машине без подключений, но это замедление произошло для меня, если я не установил этот флажок.

0 голосов
/ 11 августа 2016

В моем случае база данных была связана со старой установкой Sharepoint. Остановка и отключение связанных служб в диспетчере сервера «отменили» действие «Выключить», которое выполнялось в течение 40 минут и сразу завершилось.

Возможно, вы захотите проверить, используют ли какие-либо службы базу данных в настоящее время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...