Я работаю с SQL SERVER 2005 SP2.
У меня достаточно долгое время работающая и стабильная среда LOG SHIPPING.
Вчера задание восстановления доставки журнала на сервере DR завершилось с ошибкой блокировки (журнал начинается с последней строки и идет вверх):
05:02:38.34 *** Error: The log backup file 'C:\database\LogShipping\20100927021501.trn' was verified but could not be applied to secondary database ''
05:02:37.42 *** Error: Could not apply log backup file 'C:\database\LogShipping\20100927021501.trn' to secondary database ''.
05:02:37.42 *** Error: Exclusive access could not be obtained because the database is in use.
05:02:17.04 Restored log backup file. Secondary DB: ''<c/> File: 'C:\database\LogShipping\.trn'
05:00:01.01 Disconnecting users. Secondary DB: ''
05:00:00.64 Starting transaction log restore. Secondary ID: 'f89bba95-6fa8-4ee3-8883-3bb3b63f6127'<nl/>
05:00:00.64 Retrieving restore settings. Secondary ID: 'f89bba95-6fa8-4ee3-8883-3bb3b63f6127'<nl/>
05:00:00.65 Retrieved common restore settings. Primary Server: ''<c/> Primary Database: ''<c/>
Backup Destination Directory: 'C:\database\LogShipping'<c/> File Retention Period: 4320 minute(s)<nl/>
05:00:00.65 Retrieved database restore settings. Secondary Database: ''<c/> Restore Delay: 0<c/> Restore All: True<c/> Restore Mode: Standby<c/>
Disconnect Users: True<c/> Last Restored File: C:\database\LogShipping\20100927014500.trn<c/> Block Size: Not Specified<c/> Buffer Count: Not Specified<c/> Max Transfer Size: Not Specified
05:00:00.54 ----- START OF TRANSACTION LOG RESTORE -----
Следующее задание восстановления прошло без проблем, и оно восстановило ВСЕ журналы, даже самые старые.
Так что же случилось?
У меня установлен флажок «Отключить пользователей в базе данных при восстановлении резервных копий» установлен в конфигурации LOG SHIPPING.
Вы можете видеть в журнале выше, что есть этап ОТКЛЮЧЕНИЯ ПОЛЬЗОВАТЕЛЕЙ.
В моих поисках в Google я нахожу только ссылки, которые говорят мне поставить флажок выше или создать процедуру, которая убивает сеансы и запускает ее перед заданием восстановления.
Но - там было отключение пользователей перед восстановлением. возможно, аппликативный пользователь пытался соединить БД в доли секунды между окончанием восстановления первого журнала и восстановлением второго журнала?
Если так, как я могу предотвратить это?
Спасибо,
Рони.