Проблема с подключением к базе данных после восстановления. SQL Server 2005 и классический ASP
У меня есть несколько тестовых сценариев Selenium, которые я использую для тестирования классического веб-приложения ASP, но у меня возникают проблемы после восстановления базы данных (SQL Server 2005) с помощью файла резервной копии перед каждым тестом. Сразу после успешного восстановления (из сценария Python, выполняющего sqlcmd ...), когда ASP пытается подключиться к базе данных, я получаю следующую ошибку...
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionWrite (send()).,,,Microsoft OLE DB Provider for ODBC
Это генерируется ADODB с использованием этой строки подключения...
"DSN=mydbdsn;UID=myuser;PWD=mypass;"
Но попытка соединиться с объектом C++ ActiveX через ODBC также не удалась с той же ошибкой.
Перезапуск IIS возвращает все в нормальное состояние. И SQL Server 2008 демонстрирует ту же проблему.
Кто-нибудь есть какие-либо идеи, почему я не могу подключиться к базе данных после восстановления?
Спасибо,
2 ответа
От RESTORE
технические характеристики:
Во время автономного восстановления, если указанная база данных используется, RESTORE принудительно отключает пользователей после небольшой задержки.
Поэтому убедитесь, что вы открываете новые соединения после восстановления. Все существующие соединения из пула соединений отключаются RESTORE, как четко задокументировано. Очистите пул соединений перед каждым тестом.
Перезапустите приложение Classic ASP после восстановления. Это очистит существующие соединения перед восстановлением.
В качестве альтернативы, вы можете установить базу данных в режим SINGLE USER перед восстановлением (которое должно исключать любые существующие соединения), выполнить восстановление перед продолжением ваших тестов.
Сценарий SQL для настройки однопользовательского режима:
ALTER DATABASE <DB_NAME_HERE> SET SINGLE_USER WITH ROLLBACK IMMEDIATE