SQL Server 資料庫備份主要有兩種:BACKUP DATABASE 產生 .bak 檔,或直接複製 .mdf (資料檔) 與 .ldf (記錄檔)。本文專注於後者——檔案層級的備份與還原,並涵蓋遺失 LDF 時的進階修復技巧。
sp_attach_dbEXEC sp_attach_db '資料庫名稱', '路徑\檔案.mdf', '路徑\檔案.ldf'
適用於 SQL Server 7.0/2000/2005+,關鍵在於必須同時備份 MDF 與 LDF 兩個檔案。
當只有 MDF(例如從他機複製、LDF 損毀或遺失),直接附加會報錯:「裝置啟動錯誤」或「無法開啟新資料庫」。此時需透過重建交易記錄 強制復原:
CREATE DATABASE)。EXEC sp_configure 'allow updates', 1; RECONFIGURE WITH OVERRIDE;
UPDATE sysdatabases SET status = -32768 WHERE dbid = DB_ID('目標資料庫');
DBCC REBUILD_LOG('目標資料庫', '完整路徑\新記錄檔.ldf');
若提示「無法獨佔鎖定」,請關閉所有連線(含企業管理器視窗)後重試。
DBCC CHECKDB('目標資料庫')EXEC sp_dboption '目標資料庫', 'dbo use only', 'false';
allow updates 改回 0。sp_attach_single_file_db 僅適用於正常脫離的單一 MDF,異機移植或異常斷電多半失效。DBCC CHECKDB 驗證資料完整性。BACKUP/RESTORE 機制,檔案複製僅作緊急備援。掌握 MDF/LDF 檔案層級的還原與修復技巧,能在備份檔遺損、跨機器遷移等棘手情境下挽回資料。但請牢記:完整備份策略才是資料安全的基石,檔案複製僅為補救手段,不可作為常態操作。