Возможно, Recovery Toolbox for SQL Server восстановит вашу некорректную базу данных Microsoft SQL Server.
Причины неуспешного восстановления базы данных Microsoft SQL Server
Возможные причины, по которым онлайн сервис восстановления баз данных SQL Server не смог восстановить повреждённый MDF-файл Microsoft SQL Server:
- На сервис был загружен не MDF-файл, а был загружен LDF, BAK или другой тип файла, который был только переименован.
- Часть данных базы лежала в дополнительных NDF-файлах, а в онлайн-сервис загрузили только основной MDF-файл. Для восстановления связок файлов MDF+NDF надо использовать программу Recovery Toolbox for SQL Server.
- Файл MDF был обрезан при копировании или загрузке. В конце файла физически не хватает части данных.
- MDF-файл почти полностью забит нулями или мусором из-за поломки диска, и восстанавливать уже нечего.
- Критические служебные страницы базы (boot-страница, GAM, SGAM и т.п.) уничтожены полностью и не поддаются реконструкции.
- Повреждены системные таблицы каталога (список таблиц, колонок и связей) настолько, что нельзя понять структуру данных.
- Большинство страниц данных в файле MDF имеют битые контрольные суммы и не читаются даже по блокам.
- Части файла MDF физически перезаписаны другими данными — одни и те же страницы встречаются в нескольких несовместимых вариантах.
- База данных шифровалась средствами SQL Server (TDE), ключей шифрования у сервиса нет — файл виден как набор зашифрованных блоков.
- Файл MDF был зашифрован вымогателем (ransomware) сильной криптографией; сервис не занимается расшифровкой, а только анализом структуры.
- Перед загрузкой MDF-файл дополнительно зашифровали или упаковали сторонней программой, а в сервис отправили именно зашифрованный вариант.
- Файл MDF повреждён на уровне файловой системы: есть сбойные сектора, которые при чтении всегда возвращают ошибку или нули.
- Во время загрузки по сети MDF-файл испортился (битые пакеты, обрыв соединения) и на сервер дошла уже повреждённая копия.
- Файл был частично загружен (не дождались конца, закрыли вкладку) — сервис работает лишь с тем, что полностью загружено на сервис.
- Пользователь случайно загрузил другой файл: старый MDF-файл без нужных данных, тестовую копию, пустую базу и т.п.
- Между тестовым прогоном и платной попыткой MDF-файл успели ещё раз повредить или перезаписать — и теперь уровень повреждений выше.
- До использования сервиса уже запускали DBCC CHECKDB c параметром REPAIR_ALLOW_DATA_LOSS — проблемные данные были безвозвратно удалены из MDF-файла.
- Из базы ранее сделали SHRINK или другие операции, которые переписали страницы; старые данные физически затёрты и не подлежат восстановлению.
- Нужные записи были давно удалены (выполнена операция TRUNCATE), а страницы уже использованы под новые таблицы. В MDF-файле просто нет старых версий данных.
- Пользователь ожидал восстановить промежуточное состояние «на вчера», но в MDF хранится только текущее состояние без нужных старых данных.
- Связанные с базой файлы стриминга (FILESTREAM, FileTable и т.п.) отсутствуют, поэтому данные из них восстановить невозможно.
- Структура таблиц повреждена так, что одни и те же страницы относятся к разным объектам, и нельзя однозначно собрать таблицы.
- Слишком много перекрёстных повреждений индексов и данных — риски собрать некорректную базу выше, чем допустимо для автоматического сервиса.
- В таблицах нарушена целостность ссылочной структуры (внешние ключи, каскадные связи) настолько, что восстановить согласованный набор данных не удаётся.
- Файл содержит серьёзное логическое несоответствие: размеры объектов, указанные в заголовках, не совпадают с фактическими страницами.
- В MDF-файле присутствуют фрагменты от нескольких разных баз данных (последовательные переиспользования файла), и сервис не может корректно их разделить.
- На диске, откуда копировали MDF, не хватило места; в результате часть файла не была сохранена и попала в сервис в уже обрезанном виде.
- Файл MDF был восстановлен из образа/резервной копии с ошибками и уже в этом виде оказался повреждённым до загрузки в сервис.
- Антивирус или Защитник / Defender Windows на стороне клиента повредили файл при копировании (например, вырезали подозрительные участки).
- База данных использует нестандартный размер страницы/блока или экспериментальные настройки, которые не поддерживаются механизмом анализа.
- В таблицах хранится сильно нестандартный бинарный формат данных, который невозможно корректно интерпретировать без пользовательской логики.
- В момент сбоя сервер SQL был посередине тяжёлой операции (массовый UPDATE/INDEX REBUILD), и логически завершить её по следам в MDF не удаётся.
- После восстановления структуру базы удалось собрать, но объём реально восстановимых данных оказался практически нулевым — сервис сообщает, что восстановление нецелесообразно.
- В файле есть признаки постороннего вмешательства (ручное hex-редактирование, починка неизвестными утилитами), которые нарушили ожидаемый формат.
- MDF-файл принадлежит базе, которая никогда полностью не инициализировалась (создание было прервано) — внутри нет законченной структуры для восстановления.
- Файл относится к зеркалу/реплике или снапшоту, который был создан/удалён с ошибкой, и в нём отсутствует часть необходимых страниц.
- База сильно повреждена после неудачной миграции/обновления версии SQL Server, и в MDF смешаны структуры старого и нового формата.
- Критически повреждены данные в служебных пользовательских таблицах (например, данные о схемах), без которых сервис не может восстановить остальные объекты.
- Сервис смог извлечь только часть таблиц, но именно таблица с нужными пользователю данными повреждена полностью; в отчёте это выглядит как невозможно исправить файл.
- Файл изначально был создан другим программным обеспечением и лишь имитировал формат MDF, поэтому онлайн-сервис корректно определил, что это некорректная база данных SQL Server.
- На стороне сервера действуют ограничения политики безопасности/хранения (например, запрет на обработку файлов с определёнными типами шифрования), из-за чего анализ был принудительно прерван.