#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 перед каждым восстановлением, но это кажется невозможным.
Кто-нибудь знает, что я могу попробовать?