База данных скрыта в SQL Server
Во время прерванного импорта TFS (с 2008 по 2010) мне удалось "потерять" базу данных в 2008 году. База данных не видна в Management Studio, но исполняемый файл SQL Server имеет дескриптор файла.mdf (согласно UnLocker), он говорит, что не может присоединить его, потому что файл используется, и он не может прикрепить копию файла (созданную, когда SQL Server был остановлен), так как он говорит, что БД с тем же именем уже присоединена.
Учитывая, что я использую ту же учетную запись администратора TFS, которую я всегда использовал и всегда мог видеть базу данных, почему эта база данных отсутствует и, что более важно, как я могу вернуть ее снова?
3 ответа
Это довольно странно!
Возможно ли, что у вас запущен другой именованный экземпляр сервера sql и к нему прикреплена база данных?
Вы входите в SQL Server как системный администратор или sa и до сих пор не видите базу данных? Если вы не являетесь пользователем sa и не являетесь пользователем этой базы данных, возможно, вы не сможете увидеть ее при текущем входе в систему.
Разрешение VIEW ANY DATABASE может быть отказано в вашем текущем входе в систему или разрешение может быть отозвано из общедоступной роли.
Самый простой способ исправить это - сделать так, чтобы ваша учетная запись пользователя TFS (логин) была пользователем в базе данных.
Может показаться глупым, но... вы пытались перезапустить службу SQL Server?
Иногда файловые блокировки просто зависают без видимой причины.
Есть ли у вас доступ для просмотра всей активности базы данных, т. Е. Для просмотра открытых соединений с этой базой данных? Если вы видите процесс, работающий с этим именем базы данных, вы можете попытаться убить процесс.
У меня была такая проблема с БД, заблокированной Management Studio без четкой причины и убившей SPID, разобрали ее, чтобы я мог продолжить обслуживание, которое я пытался сделать.
Попробуйте запустить sp_who2 в окне запроса.