Введение
Когда база данных повреждается – это нормальное явление и не стоит сразу впадать в панику. Это может происходить по различным причинам. Поэтому, делать резервную копию БД рекомендуется всем и как можно чаще.
Случаются такие моменты, когда база данных повреждена, а резервная копия последний раз делалась пару дней назад, а база данных повредилась и Вам в данный момент нужна только актуальная БД. Поэтому восстановление из резервной копии в данном случае не подойдет, необходимо в таких ситуациях использовать всевозможные средства восстановления поврежденных баз данных.
Восстановление базы данных
Если у Вас база данных в режиме «Подозрительный (Suspect Mode)», то ее в большинстве случаях можно восстановить. Для этого необходимость установить Microsoft SQL Management Studio. Подключаемся к серверу и видим состояние БД:
В таком случае создаем запрос и переводим базу данных в «Аварийный режим (EMERGENCY)». Для этого необходимо выполнить следующее:
EXEC sp_resetstatus 'ИмяБазыДанных';
ALTER DATABASE ИмяБазыДанных SET EMERGENCY
Не забудьте только в запросе указать имя своей базы данных:
Затем необходимо запустить тестирование базы. Для этого выполняем следующее:
DBCC checkdb('ИмяБазыДанных')
ALTER DATABASE 'ИмяБазыДанных'SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DBCC CheckDB ('ИмяБазыДанных', REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE 'ИмяБазыДанных'SET MULTI_USER
В большинстве случаях данные действия помогают восстановить поврежденную базу данных MS SQL Server. Если же Вам не помогли эти действия, то необходимо смотреть логи сервера и искать другие способы решения проблемы.
Заключение
В любом случае, чем чаще будете делать резервные копии, тем лучше будет для Вас, но если же резервная копия по каким-то причинам не была сделана, то можно попробовать воспользоваться «классикой» восстановления БД MS SQL Server.
Не стоит забывать также и про отдельные программные продукты, которые способны восстанавливать поврежденные MDF-файлы, существуют как платные, так и бесплатные аналоги.