Вложение файла 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?

1 ответ

Решение

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

Другие вопросы по тегам