Sql-Server

完全恢復模型中只有數據庫的完全備份(而不是 tlog 備份)是否允許時間點恢復?

  • January 16, 2022

我有一個完全恢復模式的數據庫。

完整備份配置為每週日執行,日誌備份每天執行。

日誌備份文件在 30 天后銷毀。完整備份會在 6 個月後銷毀。

我了解要恢復到最近 30 天內的某個時間點,我可以應用從需要恢復時間點的時間點之前的星期日開始的最新完整備份,然後應用日誌備份並指定恢復時間。

但是,假設我必須恢復到第 40 天的時間點。沒有日誌備份,因為它們在 30 天后被刪除。我只有每週的完整備份。是否可以僅使用第 40 天之後的星期日的完整備份進行時間點恢復?

不,這是不可能的。您可以在BACKUP文件中找到該資訊:

還原由 BACKUP DATABASE 創建的備份(數據備份)時,將還原整個備份。只有日誌備份可以恢復到備份中的特定時間或事務。

通過了解 SQL Server 備份類型可以清楚地了解此限制:

顧名思義,完整備份可以備份所有內容。

$$ … $$這是一個完整的副本,其中儲存了數據庫的所有對象:表、過程、函式、視圖、索引等。擁有完整備份後,您將能夠輕鬆地以與之前完全相同的形式恢復數據庫備份的時間。

$$ … $$

日誌備份,顧名思義,就是備份事務日誌。 $$ … $$事務日誌文件在數據庫中儲存一系列日誌,這些日誌提供每次數據修改的歷史記錄。

如您所見,完整備份只是當時整個數據庫的副本,而日誌備份包含自上次日誌備份以來發生的每個事務(單獨記錄,如一步一步的食譜)。

如果日誌備份文件隨後被丟棄,您進行日誌備份的事實不會“升級”完整備份以使其能夠自行進行時間點恢復。如您所述,仍然需要日誌備份來執行第 40 天的時間點恢復。

因此,如果您想從現在開始使用時間點恢復恢復第 40 天,您應該更改備份計劃以保留足夠的日誌備份以覆蓋該時間段。


要更好地了解日誌備份的內容,請參閱在日誌備份期間,數據是備份到操作開始還是結束?

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