Ошибка входа при запуске SQL Server
У меня есть служба Windows, которая должна подключаться к базам данных SQL Server (SQL Server 2008 R2, Windows Server 2008 R2). Этот сервис зависит от SQL Server. Проблема заключается в том, что служба SQL Server запускается:
Не удалось войти в систему для пользователя "База данных". Причина: не удалось открыть явно указанную базу данных. [КЛИЕНТ:]
2011-09-20 17: 18: 29.47 Вход в систему
Ошибка: 18456, серьезность: 14, состояние: 38.
Прочитав несколько постов в интернете, я проверил свойство auto close db (false), проверил права пользователей, но не могу быть этой проблемой, потому что мой сервис работает нормально через несколько секунд после MSSQLSERVER
служба запуска.
Есть что-то странное в моем журнале:
Восстановление завершено для базы данных (идентификатор базы данных 8) за 5 секунд (анализ 909 мс, повторить 0 мс, отменить 809 мс.) Это только информационное сообщение. От пользователя не потребуется никаких действий.
Есть идеи по этому поводу?
Спасибо
3 ответа
Возможно, база данных по умолчанию для входа в учетную запись службы - это та, для запуска которой требуется значительное время (потому что она большая или имеет какую-то другую проблему?). Чтобы проверить это, вы можете изменить базу данных этого логина по умолчанию на tempdb.
ALTER LOGIN [domain\user] WITH DEFAULT_DATABASE = tempdb;
Вы также можете рассмотреть возможность добавления TRY/CATCH
обработка ошибок или логика ожидания для вашего сервиса, чтобы он не вышел из строя сразу из-за кратковременной невозможности подключения (особенно во время запуска).
На самом деле это не дает сбоя, исключение обрабатывается правильно, но следующий процесс не запускается.
На самом деле, кто-то дал решение через этот пост:
Наконец, я применил некоторую логику для решения этой проблемы (проверьте состояние БД, пока он не подключен)
Спасибо за ответ
Попробуйте настроить свой сервис на автоматический (DelayedStart).