23.04.2021 | Восстанавливаем базу данных SQL Server из режима “suspect” |
Автор: Waqas, журналист в сфере информационной безопасности В случае выхода базы данных из строя может быть потеряна важная информация. Последствия потери данных могут быть катастрофическими как для пользователя, так и для бизнеса. Если крупные организации понесут огромные убытки, малые предприятия могут поплатиться своим существованием. По словам разработчиков, ошибка присутствует в каждой программе. Даже самое лучшее программное обеспечение может иногда давать сбой. Иногда работа и жизнь людей зависят от функциональности программного обеспечения. Корректная работа ПО влияет на финансовое благополучие или здоровье людей. Поэтому особенно важно, чтобы при сбоях программного обеспечения, имелась возможность быстро его вернуть в нормальное рабочее состояние. Программы работают с базами данных. В случае выхода базы данных из строя, может быть повреждена важная информация, потеря которой обернется катастрофическими последствиями как для пользователя, так и для бизнеса. Большинство баз данных работают на сервере Microsoft SQL. В случае проблем с сервером для восстановления базы потребуется много времени и сил. Существует несколько способов восстановить базу данных после инцидента. Во-первых, следует разобраться с таблицей подозрительных(suspect) страниц. Информация в таблице подозрительных страниц доступна любому пользователю, имеющему доступ к базе данных MSDB . Обновлять базу также может любой пользователь, имеющий разрешение на обновление. Владельцы базы, исправив роль базы данных в MSDB, или сисадмин, исправив роль сервера, могут вставлять, обновлять и удалять записи. Способы восстановления базы данных из подозрительного режима: Сброс статуса базы данных + DBCC CHECKDB DBCC CHECKDB Используйте программное обеспечение Recovery Toolbox for SQL Server Таблица подозрительных страниц содержит информацию о потенциально поврежденных страницах и используется при принятии решения о восстановлении страниц. Подозрительная страница из таблицы находится в базе данных MSDB. Страница считается «подозрительной», если при попытке ее чтения ядром СУБД SQL Server обнаруживается одна из следующих ошибок.
Идентификатор каждой «подозрительной» страницы записывается в таблицу подозрительных страниц. В данную таблицу компонент Database Engine записывает все подозрительные страницы, с которыми сталкивается во время обработки, в частности:
Во время операции восстановления, исправления DBCC или удаления базы данных таблица подозрительных страниц также обновляется по мере необходимости. Ниже приведены несколько способов восстановления базы данных, если она перешла в режим “suspected”. Способ 1. Во время своей работы я однажды столкнулся с ситуацией, когда рабочая база данных в конце дня перешла в режим “suspected”. Причем в последний раз база была заархивирована много часов назад. К сожалению, вернуться в штатный режим не получилось. DBCC checkdb также отказался запускаться. Я очень расстроился, пока не нашел решение. Рассмотрим первый способ восстановления базы данных. Сначала необходимо перевести базу данных в АВАРИЙНЫЙ режим, выполнив следующие действия:
Затем требуется протестировать базу данных:
Способ 2. Если не получилось восстановить базу первым способом У вас имеется поврежденная база данных сервера ( MS SQL 2005 ) и она неисправна. Такую базу невозможно восстановить путем тестирования-исправления (возникает ошибка контрольной суммы). В таком случае база данных не выгружается в файл – выдается та же ошибка. Вы попробовали несколько раз, и это не помогло. Попробуйте восстановить базу данных, протестировав сам SQL. Команды для тестирования SQL приведены ниже:
Если обе команды не работают, можно использовать третью. Рекомендуем использовать данную команду только в крайнем случае в связи с опасностью возможной потери данных. DBCC CHECKDB (‘database’, REPAIR_ALLOW_DATA_LOSS) Если команда не выполняется из-за не однопользовательского режима, используйте команду: Alter database db-name set SINGLE_USER ! Перед тестированием обязательно сделайте бэкап! Способ 3 Используйте программу Recovery Toolbox for SQL Server - важный инструмент в работе любого системного администратора. Программа позволяет работать с файлами MS SQL Server любой версии. Программа позволяет комплексно восстанавливать файлы базы данных. Особенности программы Recovery Toolbox for SQL Server приведены ниже: 1. Данные из нечитаемых баз данных можно восстановить в приостановленном состоянии (suspended state); 2. Программа работает со всеми версиями Microsoft SQL Server; 3. Программа позволяет восстановить самое важное и ценное в базе данных; 4. В базе данных несколько элементов - тоже не проблема; 5. Восстановливает таблицы при работе с MDF файлами; 6. SQL MDF Recovery экспортирует данные непосредственно в Microsoft SQL Server; 7. Информация сохраняется в том числе в виде скриптов; 8. Извлеченные данные напрямую экспортируются в новую базу данных; 9. Программа работает с любой версией Windows; 10. Мультиязычный интерфейс; 11. Возможен просмотр данных перед восстановлением; Сбой базы данных после сбоя сервера является самым страшным сном любого сисадмина. Как в такой ситуации восстановить поврежденную базу? Для восстановления данных после сбоя обычно используется резервная копия. Однако, если по какой-то причине копия не была сделана, попробуйте использовать Recovery Toolbox for SQL Server. Скорее всего, вам удастся восстановить рабочее состояние базы данных. Для этого необходимо выполнить следующие действия: 1. Установите Recovery Toolbox for SQL Server на свой компьютер. Нет необходимости использовать полную версию, достаточно демонстрационной версии; 2. Выберите файл; 3. После выполнения действий начнется анализ базы данных; 4. Изучите список всех восстановленных таблиц; 5. Просматривайте данные в таблицах; 6. Изучайте восстановленные объекты; 7. Настройте параметры сохранения; 8. Выберите необходимые данные; 9. Сохраните их (для этого потребуется полная версия) Восстановление базы данных Как видим, для быстрого исправления MDF файла потребовалось нажать всего несколько кнопок. Все восстановленные данные копируются в новую базу данных или в виде скриптов на диск. Таким образом, программа никак не влияет на поврежденные файлы.
Как это работает? 1. Выбираем поврежденную базу данных. 2. Смотрим, какие данные можно восстановить. 3. Определяемся с вариантом экспорта. 4. Выбираем данные для восстановления. 5. Просматриваем отчет после сохранения. Программа условно-бесплатная, стоит 99 долларов. Скачать программу можно здесь . |
Проверить безопасность сайта