SQLServer 2012 Установленная копия показывает проблемы:

Моя проблема такова: на моем компьютере была установлена ​​копия SqlServer 2012. Это было там больше 3 лет без каких-либо глюков. Всего 4-5 дней назад возникла проблема. Когда я запустил Management Studio, мне сказали, что

msdb поврежден, поэтому его нельзя открыть.

Полное сообщение примерно так:

Невозможно отобразить состояние работоспособности политики на уровне сервера, поскольку у пользователя нет разрешения. Для корректной работы этой функции требуется разрешение базы данных msdb.

Так что здесь может быть не так? Какие внезапные изменения / аномалии могли закрасться, что сделало это нестабильным? Кто-то сказал мне, что это может быть связано с широким спектром возможностей. Причиной может быть что угодно. Даже некоторые пакеты nuget влияют на базу данных. Первоначально я думал, что это могло быть проблемой с логином, разрешениями и т. Д. Поэтому я попытался работать от имени администратора. Нет, это не вылечило эту проблему. Если вы попытаетесь создать новую базу данных, она просто скажет мне, что я не могу этого сделать. Сообщение примерно так:

Возникла исключительная ситуация при выполнении оператора или пакета T-SQL.[Microsoft.SqlServer.ConnectionInfo]. База данных msdb не может быть открыта. Он был помечен как SUSPECT при восстановлении. [Microsoft Sql Server, ошибка:926]

Как мне восстановиться после этого? Можете ли вы дать мне руководство? Или подсказка, где именно искать намеки на проблему? Вся моя работа зашла в тупик. Любая помощь в восстановлении моей больной установки sqlserver будет смиренно получена.

Итак, я прошу всех вас показать мне путь. Спасибо в ожидании.

2 ответа

Я исправил мой с решением C со следующего сайта. мой MSDB был поврежден и не загружался, поэтому я остановил службы и заменил их файлами из шаблона в каталоге SQL Server.

https://www.mssqltips.com/sqlservertip/3191/how-to-recover-a-suspect-msdb-database-in-sql-server/

"Шаблоны сохраняются в папке"C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn\Templates" (путь зависит от версии и варианта установки, это значение по умолчанию для SQL Server 2012). и заменив неверные данные MSDB (msdbdata.mdf) и файлы журнала транзакций (msdblog.ldf) файлами шаблонов, я смог перезапустить экземпляр без ошибок!" (только если ссылка на сайт не работает, я привел это здесь).

FiSSH

Если ваша MSDB повреждена, восстановитесь из последней резервной копии. Это самое безопасное, и поэтому у нас есть резервные копии для начала.

Если у вас нет резервной копии MSDB, у вас есть несколько вариантов.

  1. Воссоздайте это. Подробные инструкции здесь: https://msdn.microsoft.com/en-us/library/dd207003(v=sql.110).aspx. Это лучший способ убедиться, что вы получаете чистую, функциональную MSDB, и это самый быстрый способ начать работу снова. ВАЖНО: Это означает, что вы потеряете все задания, историю резервного копирования и т. Д., Которые хранятся в MSDB. Не забудьте воссоздать все задания по обслуживанию после того, как вы это сделаете, иначе вы просто ждете, пока не упадет следующая вещь (например, резервные копии журнала транзакций больше не запускаются, tlogs увеличиваются, пока вы не исчерпаете место на диске - теперь вы не можете запускать любые запросы, которые будут совершать транзакции).

  2. DBCC CHECKDB WITH Repair_allow_data_loss - это еще один вариант, который вы, вероятно, найдете, если решите проблему с Google / Bing. Это может работать, но это не рекомендуется. Проблема в том, что вы не знаете, что будет потеряно. Он работает, удаляя то, что он не может прочитать, а затем исправляет ссылки, чтобы снова восстановить работоспособность базы данных. Как только это будет сделано, вам придется вернуться и выяснить, что остается и остается функциональным. Это утомительно и подвержено ошибкам. Кроме того, если вы собираетесь выполнить эту очень тщательную ручную проверку, чтобы убедиться, что все ваши работы не повреждены, вам лучше просто заново создать их на новой чистой MSDB.

Другие вопросы по тегам