Sql-Server

連接沒有 LDF 的 MDF

  • March 24, 2021

我只有一個.mdf未附加的數據庫文件。

我正在使用以下命令:

EXEC sp_attach_single_file_db @dbname = 'Test_Data', 
@physname = N'D:\Test_Data\Test_Data.mdf';

我收到以下錯誤消息:

消息 1813,級別 16,狀態 2,第 1 行

無法打開新數據庫“Test_Data”。CREATE DATABASE 已中止。

消息 824,級別 24,狀態 2,第 1 行

SQL Server 檢測到基於邏輯一致性的 I/O 錯誤:頁面 ID 不正確(預期為 1:24;實際為 0:0)。它發生在文件“D:\Test_Data\Test_Data.mdf”中偏移量 0x00000000030000 處的數據庫 ID 11 中讀取頁面 (1:24) 期間。SQL Server 錯誤日誌或系統事件日誌中的其他消息可能會提供更多詳細資訊。這是威脅數據庫完整性的嚴重錯誤情況,必須立即糾正。完成完整的數據庫一致性檢查 (DBCC CHECKDB)。這個錯誤可能是由許多因素引起的;有關詳細資訊,請參閱 SQL Server 聯機叢書。

請幫忙!

根據該錯誤消息,您的 MDF 實際上已損壞。這意味著你不能附加它。

您可以創建一個具有相同名稱的數據庫,替換 MDF(並重命名 LDF),並希望它上線或至少懷疑開始恢復它。

否則,您需要找到能夠理解 MDF 文件的第 3 方工具才能取回數據。

或者只是從您最新的備份中恢復…?

你可以試試這個 - 如果你的 MDF 完好無損(根據你的錯誤消息,它似乎不是…..):

USE master
GO 

CREATE DATABASE Test_Data
ON PRIMARY 
(FILENAME = N'D:\Test_Data\Test_Data.mdf')
FOR ATTACH_REBUILD_LOG
GO 

FOR ATTACH_REBUILD_LOG將嘗試為您的數據庫創建一個新的(空)日誌文件。

引用自:https://dba.stackexchange.com/questions/12089