附加似乎已被操作系统截断的 MDF 文件

附加似乎已被操作系统截断的 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 服务恢复在线,它将尝试安装这些文件,但更有可能出现可疑情况并且无法读取。

相关内容