Назад | Перейти на главную страницу

Прикрепление файла MDF, который, похоже, был усечен ОС

У меня есть файл MDF и LDF с мертвого сервера, который я пытаюсь подключить к другому экземпляру SQL Server. Однако выполнение следующего оператора создания базы данных

USE [master]
GO
CREATE DATABASE [DBName] ON 
( FILENAME = N'C:\tmp\DBName.mdf' ),
( FILENAME = N'C:\tmp\DBName_log.ldf' )
 FOR ATTACH
GO

Генерирует эту ошибку.

Msg 1813, Level 16, State 2, Line 1
Could not open new database 'DBName'. CREATE DATABASE is aborted.
Msg 5125, Level 24, State 2, Line 1
File 'C:\tmp\DBName.mdf' appears to have been truncated by the operating system.  Expected size is 675840 KB but actual size is 47160 KB.

Прочитав запись MSDN, я не вижу никаких параметров в операторе создания базы данных, которые позволили бы мне игнорировать это. Есть ли другой способ заставить восстановление, игнорирующее усечение, получить некоторые данные, или mdf не подлежит восстановлению?

Есть ли какие-нибудь утилиты, которые позволят мне читать содержимое файла LDF?

Вы можете создать пустую базу данных с тем же именем и именами файлов данных, отключить службу SQL и заменить файлы файлами с мертвого сервера. После того, как вы вернете службу SQL в оперативный режим, она попытается смонтировать файлы, но, скорее всего, она окажется подозрительной и станет недоступной для чтения.