Sql-Server

重建事務日誌

  • May 13, 2021

一位同事意外刪除了我們 SQL Server 2016 實例的所有事務日誌(SQLServer/Logs/*.ldf文件)。現在我們不能再啟動 SQL Server 服務了。我們嘗試使用恢復數據工具(https://www.cgsecurity.org/wiki/Undelete_files_from_NTFS_with_TestDisk),但並非所有文件都在那裡。

這是 Windows 事件日誌中顯示的錯誤:

在此處輸入圖像描述

有沒有辦法恢復/重建日誌或任何其他程序使其再次工作?

謝謝

首先,我想知道一位同事是如何刪除日誌文件的。刪除發生時 SQL 實例不得處於執行狀態。當實例執行時,您無法刪除該文件。你會得到錯誤:

在此處輸入圖像描述

幸運的是,如果是您的master數據庫,則事務日誌中可能沒有大量資訊。大多數登錄、元數據不會經常更改,並且很可能已經寫入.mdf磁碟。

另一件事是您正在執行 SQL Server 2016,如果您不知道,它具有系統數據庫模板。這些是您第一次安裝期間創建的模板空白數據庫。您只需更換它們即可啟動並執行。唯一需要注意的是您將沒有任何使用者元數據。

模板位於您的BINN文件夾中,例如:

C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2K16\MSSQL\Binn\Templates

然後,您將立即啟動並執行您的實例。然後,如果需要,您可以毫不著急地修復您的主數據庫。您還可以使用 SQL 數據庫恢復工具來恢復您的系統數據庫或使用者數據庫。

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