Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

SQL Server 日誌檔案遺失?教你分情況恢復資料庫完整流程

編輯:關於伺服器

前言

資料庫是應用系統核心,一旦毀損將造成巨大損失。本文針對 SQL Server 日誌檔案(LDF)遺失時,如何利用主資料檔案(MDF)恢復資料庫,依日誌類型分類提供解決方案。

一、日誌分類與恢復策略

SQL Server 日誌分兩類:無活動交易日誌與含活動交易日誌,恢復方法截然不同。

1. 無活動交易日誌遺失——直接附加 MDF 生成新日誌

步驟:
① 分離受質疑資料庫:使用企業管理員「分離資料庫」工具,或執行預存程序 sp_detach_db。
② 利用 MDF 附加資料庫自動生成新日誌:使用企業管理員「附加資料庫」工具,或執行 sp_attach_single_file_db。
注意:若日誌含活動交易,此法無效。

2. 含活動交易日誌遺失——緊急模式搭配 DBCC 與 DTS 導出入

直接附加會報錯「資料庫與日誌檔案不符」。採用以下進階流程:

步驟 ① 建立同名資料庫並設為緊急模式

  • 停止 SQL Server 服務。
  • 移走原 MDF 檔案。
  • 啟動服務,建立同名新資料庫 AAA。
  • 停止服務,將原 MDF 覆蓋回去。
  • 啟動服務,將 AAA 設為緊急模式。預設系統表不可隨意修改,先執行:
USE MASTER
GO
sp_configure 'allow updates', 1
reconfigure with override
GO
  • 執行更新語句將 AAA 狀態設為 32768(緊急模式):
    UPDATE sysdatabases SET status=32768 WHERE name='AAA'

步驟 ② 設為單用戶模式並檢查資料庫

  • 重啟 SQL Server 服務。
  • 設為單用戶模式:sp_dboption 'AAA', 'single user', 'true'
  • 執行 DBCC CHECKDB ('AAA') 檢查,無重大問題可進行下一步。

步驟 ③ 還原資料庫狀態

UPDATE sysdatabases SET status=28 WHERE name='AAA'
sp_configure 'allow updates', 0
reconfigure with override
GO

刷新後 AAA 重現,但仍無法工作,需進一步處理。

步驟 ④ 利用 DTS 導入導出向導遷移資料

  • 建立新資料庫 BBB。
  • 右鍵 BBB 選「Import」,開啟導入向導。
  • 資料來源選「在 SQL Server 資料庫間複製物件與資料」,可導入表結構、資料、檢視、預存程序。
  • 再用此功能將 BBB 取代原 AAA。

至此資料庫 AAA 完全恢復。

警示與建議

SQL Server 日誌遺失極度危險,資料庫恢復仰賴日誌,務必保障日誌存在。建議採用多種備份方式結合,從心態上重視資料庫管理與維護。

Copyright © Windows教程網 All Rights Reserved