Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Отсоединение пользователя от SINGLE USER базы  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 467
В логе сервера были обнаружены ошибки в базе. Выполнил dbcc checkdb('mybase', repair_rebuild). Часть ошибок осталось. Запустил в QA
alter database your_db set single_user WITH ROLLBACK IMMEDIATE
go
dbcc checkdb ('your_db', REPAIR_ALLOW_DATA_LOSS)
go
alter database your_db set multi_user
Этот команда выполнялась 44 часа, после чего я зашел Activity monitor через Managment Studio на другом компе и Kill process, но соединение осталось и база в стоит в SINGLE USER. Сервер:
Microsoft SQL Server  2000 - 8.00.760 (Intel X86) Developer Edition on Windows NT 5.0 (Build 2195: Service Pack 4)
Как отсоединить подвисшего пользователя (QA удалось закрыть только через Диспетчер задач) и вернуть базу в многопользовательский режим?
alter database your_db set multi_user
не помогает, пишет
Msg 5064, Level 16, State 1, Line 1
Changes to the state or options of database 'your_db' cannot be made at this time. The database is in single-user mode, and a user is currently connected to it.
Msg 5069, Level 16, State 1, Line 1
ALTER DATABASE statement failed.
10 апр 09, 13:07    [7049411]     Ответить | Цитировать Сообщить модератору
 Re: Отсоединение пользователя от SINGLE USER базы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Выполнение команды kill не гарантирует удаление коннекта. А при существующем коннекте нельзя отключить single_user
Надо было ждать завершения dbcc checkdb
10 апр 09, 13:12    [7049456]     Ответить | Цитировать Сообщить модератору
 Re: Отсоединение пользователя от SINGLE USER базы  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 467
Сколько же еще можно было ждать?
DBCC CHECDB('MyDB') выполнился за 20 минут и выдал 600 ошибок.
С опцией REPAIR_REBUILD он проработал 40 минут и исправил около 100 ошибок. Оставалось 500.
С REPAIR_ALLOW_DATA_LOSS команда выполнялась 44 часа(!)
Поможет ли мне простой restart сервера?
10 апр 09, 14:22    [7050109]     Ответить | Цитировать Сообщить модератору
 Re: Отсоединение пользователя от SINGLE USER базы  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 467
Или есть команда вроде "disconnect all users"?
12 апр 09, 12:02    [7053763]     Ответить | Цитировать Сообщить модератору
 Re: Отсоединение пользователя от SINGLE USER базы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Шамиль Фаридович
Или есть команда вроде "disconnect all users"?

Нет. Есть только команда kill
13 апр 09, 10:40    [7055664]     Ответить | Цитировать Сообщить модератору
 Re: Отсоединение пользователя от SINGLE USER базы  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 467
Все разрешилось само собой. Оказывается для kill process нужно тоже какое-то время. В моем случае луче было запустить что-то вроде
KILL <id подвисшего процесса>;
KILL <id подвисшего процесса> WITH STATUSONLY;
GO
13 апр 09, 16:02    [7057139]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Отсоединение пользователя от SINGLE USER базы  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
Столкнулся с такой же проблемой. Перекопал весь форум, ничего не помогало, kill на процесс монопольно завладевший БД бодро рапортовал об успешности, а пользы не приносил абсолютно, не убивал процесс. Рестарт не помогал. Помогла смекалка, собственно как и всегда :) Надо остановить сервер, переименовать файл mdf и запустить заново, БД уходит в suspect\single user, остановить заново, переименовать обратно, запустить. И БД в онлайне, о святые угодники, хотя казалось бы :)
16 янв 13, 01:01    [13775602]     Ответить | Цитировать Сообщить модератору
 Re: Отсоединение пользователя от SINGLE USER базы  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37059
stavgreengo
Столкнулся с такой же проблемой. Перекопал весь форум, ничего не помогало, kill на процесс монопольно завладевший БД бодро рапортовал об успешности, а пользы не приносил абсолютно, не убивал процесс. Рестарт не помогал. Помогла смекалка, собственно как и всегда :) Надо остановить сервер, переименовать файл mdf и запустить заново, БД уходит в suspect\single user, остановить заново, переименовать обратно, запустить. И БД в онлайне, о святые угодники, хотя казалось бы :)
Еще диск C:\ можно форматировать. И новый сервер купить. Простора для смекалки огого.
16 янв 13, 02:07    [13775671]     Ответить | Цитировать Сообщить модератору
 Re: Отсоединение пользователя от SINGLE USER базы  [new]
Glory
Member

Откуда:
Сообщений: 104760
stavgreengo
Рестарт не помогал.

И какой же клиент после рестарта захватывал коннект к базе ?
16 янв 13, 10:12    [13776259]     Ответить | Цитировать Сообщить модератору
 Re: Отсоединение пользователя от SINGLE USER базы  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
Glory
stavgreengo
Рестарт не помогал.

И какой же клиент после рестарта захватывал коннект к базе ?

всё тот же как ни странно, с тем же спид
16 янв 13, 14:23    [13778311]     Ответить | Цитировать Сообщить модератору
 Re: Отсоединение пользователя от SINGLE USER базы  [new]
Glory
Member

Откуда:
Сообщений: 104760
stavgreengo
всё тот же как ни странно, с тем же спид

И откуда же он взялся ? Какое приложение его создало ? Да еще с таким же номером
16 янв 13, 14:26    [13778352]     Ответить | Цитировать Сообщить модератору
 Re: Отсоединение пользователя от SINGLE USER базы  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
Glory
stavgreengo
всё тот же как ни странно, с тем же спид

И откуда же он взялся ? Какое приложение его создало ? Да еще с таким же номером

Вообще это баг какой-то был. Ставил single user в интерфейсе EM, он блокировку и наложил, потом выскочила ошибка DMO и блокировка не снималась ни рестартом, ни килом. Благо сервер тестовый был.
16 янв 13, 14:37    [13778465]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить