Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проблема с Single-user Mode: Database ... is already open  [new]
design21
Member

Откуда: Minsk
Сообщений: 59
Мы проводим обноволения на базе с помощью своей утилиты DatabaseUpdater.
При этом перед началом обновления апдейтер переводит базу в SINGLE_USER mode:
ALTER DATABASE [" + _databaseName + "] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
После завершения возвращает базу обратно в MULTI_USER mode:
ALTER DATABASE [" + _databaseName + "] SET MULTI_USER WITH ROLLBACK IMMEDIATE\n

Все обычно работает хорошо, но иногда на некоторых серверах возникает ошибка: Database ... is already open and can only have one user at a time.

Контролирую процесс профайлером: логаутов не происходит, и нет никаких дополнительных подключений к базе, просто в какой-то момент сервер выдает ошибку.

Что может быть причиной?
13 сен 13, 17:22    [14837915]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с Single-user Mode: Database ... is already open  [new]
асинхронный автоапдейт статистик
Guest
асинхронный автоапдейт статистики
13 сен 13, 17:25    [14837930]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с Single-user Mode: Database ... is already open  [new]
design21
Member

Откуда: Minsk
Сообщений: 59
это проверял - выключено
13 сен 13, 18:11    [14838107]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с Single-user Mode: Database ... is already open  [new]
Crimean
Member

Откуда:
Сообщений: 13148
угу. говорили мне про такое. так что, в принципе, верю. а вот как лечить - не подскажу..
p.s.
а DAC использовать - не предлагать?
13 сен 13, 18:55    [14838172]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с Single-user Mode: Database ... is already open  [new]
mike909
Member

Откуда:
Сообщений: 662
design21,

Сколько лет уж прошло, а проблемы все те-же.
Может поможет SINGLE_USER(924, 5064, 5068, 5069, 5070) - тема для FAQ

PS. Описанный способ у меня работает как часы - с тех пор ни одного сбоя.
13 сен 13, 19:36    [14838259]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с Single-user Mode: Database ... is already open  [new]
design21
Member

Откуда: Minsk
Сообщений: 59
Crimean,
DAC доступен только локально, мне не подойдет.

mike909,
Спасибо за подсказку. Долбится к базе в цикле конечно выход, но что если необходимо вызвасть DDL операцию которая должна быть первой в пакете?
Динамический SQL... но тут возникают особенности написаня скриптов обновления (экраниврование кавычек и т.д.)

Если SINGLE_USER не работает, неужели нет других способов предотвратить подключения других пользователей при выполении обновления?
16 сен 13, 16:09    [14845612]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с Single-user Mode: Database ... is already open  [new]
Glory
Member

Откуда:
Сообщений: 104760
design21
Если SINGLE_USER не работает, неужели нет других способов предотвратить подключения других пользователей при выполении обновления?

Ваша "утилита DatabaseUpdater" - это тоже другой пользователь.
А базу для обновлений надо переводить в RESTRICTED_USER
16 сен 13, 16:18    [14845707]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить