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

Откуда:
Сообщений: 759
При ручном логшиппинге, когда база находится в 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]     Ответить | Цитировать Сообщить модератору
 Re: Log shipping и параметр @disconnect_users  [new]
tunknown
Member

Откуда:
Сообщений: 759
tunknown
Видна единственная возможность- kill в цикле.
Если применить этот метод, то будет ли достаточно этого для отлова мешающих восстановлению лога, например, use и запросов, где база указана явным образом?
select	distinct
	spid
from
	sysprocesses
where
		dbid=		***
	and	hostprocess=	''
union
select	distinct
	req_spid
from
	syslockinfo
where
	rsc_dbid=	***
3 дек 19, 13:43    [22031190]     Ответить | Цитировать Сообщить модератору
 Re: Log shipping и параметр @disconnect_users  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5233
tunknown

Видна единственная возможность- kill в цикле. Но приложения могут уметь autoreconnect, поэтому результат борьбы неочевиден.

вот так очевидно:
1) блокировка подключенных логинов (deny connect)
2) отстрел сессий из п.1
3) [необходимые манипуляции с базой]
4) разблокировка логинов из п.1
3 дек 19, 14:48    [22031271]     Ответить | Цитировать Сообщить модератору
 Re: Log shipping и параметр @disconnect_users  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1357
tunknown

Как работает автоматический логшиппинг sqllogship.exe при заданном параметре sys.sp_add_log_shipping_secondary_database.@disconnect_users=1 ? Применяет обычный kill или делает что-то ещё?


при выставленном флаге @disconnect_users =1

он переводит базу в single_mode с принудительным rollback immediate
3 дек 19, 16:21    [22031364]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить