Sql-Server

附加似乎已被作業系統截斷的 MDF 文件

  • October 12, 2011

我有一個來自當機伺服器的 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 條目,我在 create database 語句中看不到任何允許我忽略它的選項。有沒有其他方法可以強制恢復忽略截斷以檢索一些數據,或者 mdf 是否無法恢復?

如果沒有任何實用程序可以讓我讀取 LDF 文件的內容?

您可以創建一個具有相同名稱和數據文件名的空數據庫,關閉 SQL 服務並將文件替換為來自死伺服器的文件。一旦您使 SQL 服務重新聯機,它將嘗試掛載文件,但很可能會出現可疑且不可讀的情況。

引用自:https://serverfault.com/questions/198277