Восстановление баз в MSSQL

Несколько простых но полезных правил:

  • Не суетись! Как говорится, «суета - подруга хуеты». Успокойся и действуй вдумчиво;
  • В процессе восстановления базы ничего не удаляй - иногда может пригодиться;
  • Внимательно читай сообщения сервера, если они непонятны (а оно практически всегда так и есть) - читай Гугл, куча народу уже решала подобные проблемы;
  • Если совсем все плохо - проконсультируйся с умными людьми. Если совсем трындец - заплати денег, дешевле обойдется;
  • Когда все заработает - настрой бэкапы, будь мужиком!

Волшебные команды:

ALTER DATABASE <Имя БД> SET EMERGENCY
ALTER DATABASE <Имя БД> SET SINGLE_USER
DBCC CHECKDB (<Имя БД>, REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE <Имя БД> SET MULTI_USER

и что они означают:

  • ALTER DATABASE <Имя БД> SET EMERGENCY - переводит базу в режим EMERGENCY (аварийный режим)
  • ALTER DATABASE <Имя БД> SET SINGLE_USER - переводит базу в однопользовательский режим
  • DBCC CHECKDB (<Имя БД>, REPAIR_ALLOW_DATA_LOSS) - проверка базы. Ключ REPAIR_ALLOW_DATA_LOSS говорит что можно восстанавливать с потерей данных. Если неприемлемо, используй ключ REPAIR_REBUILD
  • ALTER DATABASE <Имя БД> SET MULTI_USER - переводит базу в многопользовательский режим

Вкратце: это жопа. Подробнее тут: https://msdn.microsoft.com/ru-ru/library/ms365223(v=sql.120).aspx

Что делать:

Восстановление из резервной копии

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

Запуск DBCC CHECKDB

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

  • software/microsoft/ms-sql-repair.txt
  • Последние изменения: 2018/04/24 22:41
  • fireball