Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - Принудительное завершение сессий

Ответить
Настройки темы
MSFT SQL Server - Принудительное завершение сессий

Пользователь


Сообщения: 65
Благодарности: 2

Профиль | Отправить PM | Цитировать


Приветствую!

Связка 1C + SQL 2005.

В целях оптимизации (ускорения) работы 1C, решили нарисовать Maintenance Plan с Rebuild Index Task + backup.

Но как я понимаю, для Rebuild Index Task нужен монопольный доступ к таблицам, в отличии от Reorganize Index Task.

Хоть в расписании jobs указано запускаться ночью, но к сожалению правило "уходя гасите свет" не выполняется, у пользователей остается открытой 1С и Rebuild Index Task пишет:
Цитата:
Source: Rebuild Index Task Executing query "USE [имя БД] ".: 0% complete End Progress Progress: 2012-01-20 23:08:21.51
Как решить проблему принудительного и правильного закрытия сессий?

Заранее спасибо.

Отправлено: 14:29, 21-01-2012

 

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Цитата armid:
принудительного и правильного закрытия сессий »
Принудительно и правильно - вещи несовместимые

Один из вариантов - перевести принудительно базу в режим одного пользователя и вернуть обратно скриптом:
http://stackoverflow.com/questions/1...-2005-database
или ручками:
http://www.kodyaz.com/articles/kill-...-database.aspx

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:34, 21-01-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 65
Благодарности: 2

Профиль | Отправить PM | Цитировать


Delirium, спасибо за ваше участие в теме.

Руками отпадает сразу, в виду нескольких баз и позднего времени.

Скажите правильно все таки я понял, что Rebuild Index Task не может выполнится из-за "сидячих" юзеров?


А насчет перевода в single user и наоборот. Ведь у меня получается данная операция будет выполняться каждые сутки. Не будет ли это чревато?

В статье по второй ссылке приводится такой вариант:


Код: Выделить весь код
DECLARE @DatabaseName nvarchar(50)
DECLARE @SPId int
DECLARE @SQL nvarchar(100)

--SET @DatabaseName = N'AdventureWorks2008'
SET @DatabaseName = DB_NAME()
DECLARE my_cursor CURSOR FAST_FORWARD FOR
SELECT SPId FROM MASTER..SysProcesses
WHERE DBId = DB_ID(@DatabaseName) AND SPId <> @@SPId

OPEN my_cursor

FETCH NEXT FROM my_cursor INTO @SPId

WHILE @@FETCH_STATUS = 0
BEGIN
 SET @SQL = 'KILL ' + CAST(@SPId as nvarchar(10))
 print @SQL
 EXEC sp_executeSQL @SQL
 --KILL @SPId -- Causing Incorrect syntax near '@spid'.

 FETCH NEXT FROM my_cursor INTO @SPId
END

CLOSE my_cursor
DEALLOCATE my_cursor

На каком методе все таки лучше остановится с вашей стороны?

Отправлено: 17:11, 21-01-2012 | #3


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Цитата armid:
данная операция будет выполняться каждые сутки. Не будет ли это чревато? »
Я такую операцию иногда делаю по 5 раз на день, когда необходимо накатить какое либо обновление, либо провести операцию, требующую монопольного доступа. За последние 5 лет проблем не наблюдал

Оба метода по принудительному отключению делают примерно одно и то же:
1. приведенный скрипт просто выбирает все текущие сессии и отключает их командой KILL.
2. Перевод в монопольный доступ делает то же самое, только автоматически.


Цитата armid:
правильно все таки я понял, что Rebuild Index Task не может выполнится из-за "сидячих" юзеров? »
http://www.sql-server-performance.co...lding-indexes/
Цитата:
When a clustered index is rebuilt, an exclusive table lock is put on the table, preventing any table access by your users. Because of this, you should only run this command when users don’t need access to the tables being reorganized.
Да, правильно.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 17:27, 21-01-2012 | #4


Пользователь


Сообщения: 65
Благодарности: 2

Профиль | Отправить PM | Цитировать


Вариант с переводом в режим одного пользователя нравится больше всего. Да и скрипт для него простой

А раз так, тогда и backup пусть создается в таком режиме.

На ночь поставлю задание, завтра отпишусь о результатах.

Отправлено: 17:41, 21-01-2012 | #5


Пользователь


Сообщения: 65
Благодарности: 2

Профиль | Отправить PM | Цитировать


А зачем в скрипте перевода
Код: Выделить весь код
use master
использовать?

Отправлено: 19:12, 21-01-2012 | #6


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Затем, чтобы запустить скрипт, используя подключение к системной базе данных, а не к пользовательской.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 10:51, 22-01-2012 | #7


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Цитата armid:
завтра отпишусь о результатах »
и тишина.... ушел в бекап с головой

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 01:23, 24-01-2012 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Лишь бы не в восстановление без бэкапа.

Отправлено: 02:57, 24-01-2012 | #9


Пользователь


Сообщения: 65
Благодарности: 2

Профиль | Отправить PM | Цитировать


Да не, не тишина. Че то не вышло у меня... Думал не доставать форумчан свои проблемами. Сейчас соберу логи и отпишусь.

Отправлено: 10:37, 24-01-2012 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - Принудительное завершение сессий

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Принудительное завершение работы moonis Microsoft Windows 7 7 20-01-2012 20:53
Службы - Родительский контроль и принудительное завершение программ. benwar Microsoft Windows 7 1 29-05-2011 22:50
Разное - [решено] Принудительное завершение приложений interminable Microsoft Windows 2000/XP 11 18-09-2010 16:52
Разное - [решено] Принудительное завершение сессий под WinXP... DoublE_zone Microsoft Windows 2000/XP 2 27-09-2007 12:30
Принудительное завершение сессий под WinXP... DoublE_zone Microsoft Windows NT/2000/2003 2 25-09-2007 16:13




 
Переход