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

Откуда:
Сообщений: 573
MS SQL 2000, 1C 7.7 Как быстро отключить пользователей от SQl базы ? Что можете посоветовать ?
Хотелось бы на Java Script
11 янв 08, 12:34    [5139435]     Ответить | Цитировать Сообщить модератору
 Re: Отключить пользователей от базы  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Зачем жаба то?

ALTER DATABASE database
SET SINGLE_USER ROLLBACK IMMEDIATE
11 янв 08, 12:38    [5139489]     Ответить | Цитировать Сообщить модератору
 Re: Отключить пользователей от базы  [new]
МИхаил__________________
Member

Откуда:
Сообщений: 573
хотелось бы чтобы это было что-то вроде батника
11 янв 08, 12:43    [5139534]     Ответить | Цитировать Сообщить модератору
 Re: Отключить пользователей от базы  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Ну так пропишите в батнике вызов этого скрипта через osql.exe.
11 янв 08, 12:44    [5139542]     Ответить | Цитировать Сообщить модератору
 Re: Отключить пользователей от базы  [new]
МИхаил__________________
Member

Откуда:
Сообщений: 573
ALTER DATABASE database
SET SINGLE_USER ROLLBACK IMMEDIATE
а использование этой команды не повредит базе?
11 янв 08, 12:59    [5139697]     Ответить | Цитировать Сообщить модератору
 Re: Отключить пользователей от базы  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
МИхаил__________________
ALTER DATABASE database
SET SINGLE_USER ROLLBACK IMMEDIATE
а использование этой команды не повредит базе?

не повредит....убёт только все незакоммиченные транзакции
11 янв 08, 13:03    [5139728]     Ответить | Цитировать Сообщить модератору
 Re: Отключить пользователей от базы  [new]
МИхаил__________________
Member

Откуда:
Сообщений: 573
так?
osql -S (local) -d master -E -i myfile1.sql
11 янв 08, 13:13    [5139815]     Ответить | Цитировать Сообщить модератору
 Re: Отключить пользователей от базы  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
МИхаил__________________
так?
osql -S (local) -d master -E -i myfile1.sql

можно и так
11 янв 08, 13:14    [5139828]     Ответить | Цитировать Сообщить модератору
 Re: Отключить пользователей от базы  [new]
МИхаил__________________
Member

Откуда:
Сообщений: 573
WITH ROLLBACK IMMEDIATE ???
11 янв 08, 13:30    [5139964]     Ответить | Цитировать Сообщить модератору
 Re: Отключить пользователей от базы  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
МИхаил__________________
WITH ROLLBACK IMMEDIATE ???

ага...в БОЛ же написано
11 янв 08, 13:30    [5139968]     Ответить | Цитировать Сообщить модератору
 Re: Отключить пользователей от базы  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Можете время задать, через которое он всех незакомиченых откатит.
Подробности в документации.
11 янв 08, 13:31    [5139974]     Ответить | Цитировать Сообщить модератору
 Re: Отключить пользователей от базы  [new]
МИхаил__________________
Member

Откуда:
Сообщений: 573
после использования команды на базе значок появился single user
11 янв 08, 13:35    [5140016]     Ответить | Цитировать Сообщить модератору
 Re: Отключить пользователей от базы  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
МИхаил__________________
после использования команды на базе значок появился single user

ну так после этого верните её в "Мультик"
11 янв 08, 13:36    [5140029]     Ответить | Цитировать Сообщить модератору
 Re: Отключить пользователей от базы  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
ALTER DATABASE database
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO

ALTER DATABASE database
SET MULTI_USER 
GO
11 янв 08, 13:37    [5140040]     Ответить | Цитировать Сообщить модератору
 Re: Отключить пользователей от базы  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Ну, так добавьте в скрипт команду перевода в мультипользовательский режим. Синтаксис аналогичен и освещен в доке.
11 янв 08, 13:37    [5140042]     Ответить | Цитировать Сообщить модератору
 Re: Отключить пользователей от базы  [new]
МИхаил__________________
Member

Откуда:
Сообщений: 573
а без переключения в режим single user никак нельзя?
11 янв 08, 13:41    [5140089]     Ответить | Цитировать Сообщить модератору
 Re: Отключить пользователей от базы  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
МИхаил__________________
а без переключения в режим single user никак нельзя?

в цикле KILL все процессы в этой БД
11 янв 08, 13:42    [5140110]     Ответить | Цитировать Сообщить модератору
 Re: Отключить пользователей от базы  [new]
МИхаил__________________
Member

Откуда:
Сообщений: 573
СПАСИБО
11 янв 08, 13:46    [5140151]     Ответить | Цитировать Сообщить модератору
 Re: Отключить пользователей от базы  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
Ток не убейте полезные процессы - там бэкап БД, или в течении часа ктото делает массовую заливку - а тут вы, и еще час у него откат идет...
11 янв 08, 15:59    [5141320]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Отключить пользователей от базы  [new]
Skyp
Member

Откуда:
Сообщений: 2
Шел мимо и решил написать (T-SQL)
+

set nocount on 
declare @dbname varchar(100)
declare @query varchar(max) 
set @query = ''
set @dbname = 'DBNAME'  -- к какой бд подключены
select @query=coalesce(@query,',' )+'kill '+convert(varchar, t.spid)+ '; ' from (select hostname as 'HOST', loginame as 'Login',nt_username as 'Name' ,status, spid,login_time from sys.sysprocesses 
where upper(db_name(dbid))=upper(@dbname) -- БД  --- Далее идет куча условий как пример. если вам просто всех надо грохнуть- условия не писать (НИже есть не маловажное условие на sa)
 and login_time<(CURRENT_TIMESTAMP-1) and  -- Время авторизации меньше чем текущие сутки -1;
 len (hostname)>0 and upper(program_name) like upper('%M%') -- Пока длинна hostname > 0 чтоб не убить системный sa ; пока программа M (включает, может быть равна)
 and upper(status)=upper('sleeping')--) t --- Пока статус процесса сон
 and upper(nt_username) =upper('login')) t  --- для теста пока логин ='Login'
if len(@query) > 0  -- если запрос длинее 0 то выполняем его
begin 
exec(@query)
end 
5 июл 17, 14:26    [20615892]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить