====== Восстановление баз в MSSQL ====== Несколько простых но полезных правил: * Не суетись! Как говорится, "суета - подруга хуеты". Успокойся и действуй вдумчиво; * В процессе восстановления базы ничего не удаляй - иногда может пригодиться; * Внимательно читай сообщения сервера, если они непонятны (а оно практически всегда так и есть) - читай Гугл, куча народу уже решала подобные проблемы; * Если совсем все плохо - проконсультируйся с умными людьми. Если совсем трындец - заплати денег, дешевле обойдется; * Когда все заработает - настрой бэкапы, будь мужиком! ===== База стала "Подозрительная" (SUSPECT) ===== Волшебные команды: 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 - переводит базу в многопользовательский режим ===== Предварительная проверка системных таблиц: идентификатор объекта O_ID содержит ошибку в цепочке ссылок. P_ID1->next = P_ID2, но P_ID2->prev = P_ID3. Инструкция проверки прервана из-за непоправимой ошибки. ===== Вкратце: это жопа. Подробнее тут: [[https://msdn.microsoft.com/ru-ru/library/ms365223(v=sql.120).aspx]] Что делать: **Восстановление из резервной копии** Если неполадка не связана с оборудованием и есть безошибочная резервная копия, восстановите базу данных из этой копии. **Запуск DBCC CHECKDB** Неприменимо. Эта ошибка не может быть исправлена автоматически. Если восстановить базу данных из резервной копии не удается, свяжитесь со службой поддержки пользователей Майкрософт. {{tag>mssql dbcc checkdb repair пиздец починка восстановление}}