Доставка журнала транзакций — восстановление не удается из-за исключительного доступа, хотя у меня установлен параметр «Отключить пользователей».

#sql-server #log-shipping

Вопрос:

У меня есть доставка журналов транзакций в моей основной базе данных, и она работает нормально, за исключением того, что во вторичной базе данных задание LSRestore иногда завершается неудачно, потому что оно не может получить эксклюзивный доступ к базе данных. Когда я смотрю на шаги, он обычно пытается восстановить более одного журнала, поэтому первый журнал может работать нормально, но следующий завершается с этой ошибкой. Вот недавний пример, один из которых отлично обрабатывает:

2021-07-09 06:20:09.72 Восстановлен файл резервной копии журнала. Вторичная база данных: ‘xxxxx’, Файл: ‘xxxx_20210709095000.trn’

Затем следующий сбой:

2021-07-09 06:20:29.73 *** Ошибка: Не удалось применить файл резервной копии журнала «xxx20210709100000.trn» к базе данных-получателю «xxxx».(Microsoft.SQLServer.Управление.Доставка журналов) *** 2021-07-09 06:20:29.73 *** Ошибка: Не удалось получить эксклюзивный доступ, так как используется база данных. ЖУРНАЛ ВОССТАНОВЛЕНИЯ завершается ненормально.(Поставщик данных .NET SqlClient) ***

Когда я смотрю на шаги задания, оно просто выполняется "C:Program FilesMicrosoft SQL Server140ToolsBinnsqllogship.exe" -Restore 65D5E4F5-B882-413C-B26E-B5C9FE8C4FD4 -server xxxx

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

Кто-нибудь знает, что я могу попробовать?