Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SQL6.5 - да старье, но деваться некуда, как отключить всех юзеров перед восстано / 4 сообщений из 4, страница 1 из 1
24.04.2002, 10:38
    #32028650
Gizar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL6.5 - да старье, но деваться некуда, как отключить всех юзеров перед восстано
Уважаемые эксперты!

Ситуация следующая:
Ежедневно необходимо восстанавливать базу на SQL Server 6.5
Но для этого необходимо отключать всех юзеров подключенных к базе данных.
Подскажите пожалуйста как это сделать при помощи какого нибудь SQL скрипта.

Я искал ответ на этот вопрос в форуме (на sql.ru), но нашел только пример
который видимо работает только под SQL 7 и выше.

Пожалуйста помогите.... я в этом деле еще новичок, а ведь это системные процедуры.
Боюсь напартачу.

Заранее благодарен
Gizar
...
Рейтинг: 0 / 0
25.04.2002, 04:33
    #32028722
Andrew+Kurilov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL6.5 - да старье, но деваться некуда, как отключить всех юзеров перед восстано
Раз ежедневно, то наверное с помощью SQL Executive? А если так, то не обязателен SQL-script.
1. net stop mssqlserver
2. net start mssqlserver
3. LOAD...
Под руками 6.5 нет, проверить не могу. Наверное существует теоретическая вероятностьтого, что между 2 и 3 кто-нибудь успеет приконнектиться. Можно заложить 2-3 попытки выполнения (Retry Attempts in Options). Можно перестраховаться и заложить перевод базы в режим "dbo use only" (Не забыть вернуть в норму) (sp_dboption [dbname, optname, {true | false}]).
Если восстановление идет с бэкапа, полученного на другом сервере, то появится проблема Users-Logins, но она решаема. Только это другая задача.
У меня ощущение, что фактически решается задача передачи базы с сервера на сервер. Тогда лучше через Transfer. Заодно, база будет проверена, переиндексирована и обновятся статистики. Только при трансфере лучше передавать все обьекты. Если начнешь творить, наткнешься на глюки.
...
Рейтинг: 0 / 0
25.04.2002, 04:37
    #32028723
Andrew Kurilov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL6.5 - да старье, но деваться некуда, как отключить всех юзеров перед восстано
Наверное net stop and net start надо делать из системного планировщика.
...
Рейтинг: 0 / 0
25.04.2002, 06:10
    #32028731
gizar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL6.5 - да старье, но деваться некуда, как отключить всех юзеров перед восстано
Да действительно, речь идет о переносе базы с сервера на сервер. Но использовать Трансфер я немогу.
Базы огромные. И поэтому все перерасчеты будут идти очень долго, а во вторых останавливать сервера нет возможности потому что необходимо их дополнительно про скриптовывать. А восстановление производиться при помощи моей собственной проги, поэтому хотелось увидеть скрипт что то на подобии вот такого:

CREATE PROCEDURE sp_Clear_DB (@db_Name varchar(100)) AS
declare @spid int
declare @sql varchar(100)
declare cur_Processes cursor for
select
p.spid
from sysprocesses p
inner join sysdatabases d on p.dbid = d.dbid
where d.Name=@db_Name
open cur_Processes
fetch next from cur_Processes into @spid
while @@fetch_status=0
begin
set @sql='kill '+convert(varchar(100), @spid)
exec(@sql)
--print @spid
fetch next from cur_Processes into @spid
end
close cur_Processes.

Но это почему то не работает. Переправляю ошибки..и все же немогу добраться до нормального результата.
Если есть возможность, то нельзяли перевести это в простой скрипт, а не в сохраненную процедуру (как здесь).

Заранее благодарен
Gizar
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SQL6.5 - да старье, но деваться некуда, как отключить всех юзеров перед восстано / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]