Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
tunknown Member Откуда: Сообщений: 768 |
При ручном логшиппинге, когда база находится в Standby / Read-Only и кем-то используется, то при восстановлении очередного .trn получаем:Msg 3101, Level 16, State 1, Line 5 Exclusive access could not be obtained because the database is in use. Очевидно, что из-за Read-Only не сработает и ALTER DATABASE *** SET SINGLE_USER WITH ROLLBACK IMMEDIATE Видна единственная возможность- kill в цикле. Но приложения могут уметь autoreconnect, поэтому результат борьбы неочевиден. Как работает автоматический логшиппинг sqllogship.exe при заданном параметре sys.sp_add_log_shipping_secondary_database.@disconnect_users=1 ? Применяет обычный kill или делает что-то ещё? |
2 дек 19, 14:08 [22030328] Ответить | Цитировать Сообщить модератору |
tunknown Member Откуда: Сообщений: 768 |
select distinct spid from sysprocesses where dbid= *** and hostprocess= '' union select distinct req_spid from syslockinfo where rsc_dbid= *** |
||||
3 дек 19, 13:43 [22031190] Ответить | Цитировать Сообщить модератору |
komrad Member Откуда: Сообщений: 5516 |
вот так очевидно: 1) блокировка подключенных логинов (deny connect) 2) отстрел сессий из п.1 3) [необходимые манипуляции с базой] 4) разблокировка логинов из п.1 |
||||
3 дек 19, 14:48 [22031271] Ответить | Цитировать Сообщить модератору |
felix_ff Member Откуда: Moscow Сообщений: 1698 |
при выставленном флаге @disconnect_users =1 он переводит базу в single_mode с принудительным rollback immediate |
||||
3 дек 19, 16:21 [22031364] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |