База данных MSDB не может быть открыта
У меня есть эта проблема в локальном экземпляре SQL Server 2008 R2 на моей машине. В данном случае имеется несколько баз данных. Но я не могу видеть ни одного из них из Обозревателя объектов.
Я могу запросить базы данных из нового окна запроса. Но не в состоянии увидеть никого из них.
всякий раз, когда я пытаюсь исследовать базы данных, я получаю эту ошибку :
база данных "msdb" не может быть открыта. Он был отмечен как "подозреваемый". Видеть дополнительные сведения см. В журнале ошибок SQL Server. (Microsoft SQL Server, ошибка: 926).
Я пробовал
- обновление соединения
- повторное подключение
- перезапуск службы Sql Server (MSSQLSERVER).
- перезапуск среды SQL Server Management Studio
- перезапуск моей машине
Я также пробовал комбинации выше, но ничего завод.
моя операционная система Windows 7 Максимальная (64 бит).
версия SQL Server Management Studio-10.50.2500.0.
3 ответов
я нашел свой ответ в этой ссылка.
EDIT: включая оба решения из ссылки из-за возможного Linkrot в будущем.
войти sa
account, для обоих решений.
Решение 1
открыть новое окно запроса
EXEC sp_resetstatus 'DB_Name';
(пояснение :sp_resetstatus
отключает флаг подозреваемого в базе данных. Этот процедура обновляет столбцы mode и status именованной базы данных вsys.databases
. Также обратите внимание, что это могут выполнять только логины с правами sysadmin.)ALTER DATABASE DB_Name SET EMERGENCY;
(объяснение: как только база данных установлена в аварийный режим, она становится копией READ_ONLY, и только члены фиксированных ролей сервера sysadmin имеют права доступа к ней.)DBCC checkdb('DB_Name');
(объяснение: проверьте целостность среди всех объекты.)ALTER DATABASE DB_Name SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
(пояснение : перевести базу данных в однопользовательский режим.)DBCC CheckDB ('DB_Name', REPAIR_ALLOW_DATA_LOSS);
(объяснение: исправить ошибки)ALTER DATABASE DB_Name SET MULTI_USER;
(объяснение: установите базу данных в многопользовательский режим, чтобы теперь к ней могли получить доступ другие.)
решение 2
в Обозревателе объектов --> открытый элемент подключения --> щелкните правой кнопкой мыши --> Остановка
Панель Управления --> Администрирование --> Службы
выберите
Sql Server (MSSQLSERVER)
пункт из служб --> rightclick --> Stopоткрыть
C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA
движение
MSDBData.mdf
&MSDBlog.ldf
в любое другое место-
затем скопируйте эти файлы снова с нового места и поместите его в старый место
C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA
в открытом соединении в обозревателе объектов --> rightclick --> Start
Затем Обновить Базу Данных.
затем вы можете отсоединить файл MSDB
2-е решение сработало для меня.
Примечание : мне пришлось получить mdf-файлы базы данных" msdb " и ldf с другой рабочей машины, чтобы заставить ее работать.
что мгновенно исправило мою проблему, чтобы заменить существующие MSDBData.mdf & MSDBlog.ldf файлы
in C:\Program файлы\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA. Я получил эти 2 файла, скопированные с другой рабочей машины, остановил службу SQL, запущенную на моей машине, удалил выше существующие 2 файла из их местоположения и добавил новые 2 скопированные. Как только я перезапустил службу , проблемы были исправлены.
"база данных в подозрительном режиме" является одной из распространенных ошибок, с которыми сталкиваются многие пользователи SQL и DBA. Общей причиной этой ошибки может быть поврежденный файл журнала, неправильное завершение работы SQL Server,отсутствие места в памяти и т. д. Вы можете восстановить его, выполнив команды repair. Вот пошаговый подход к восстановление базы данных из подозрительного режима.