Sql-Server

帶有附加選項的備份文件與更好的選項相比越來越大

  • April 3, 2018

我們有近 5 個數據庫。

以下是 .mdf 和 .ldf 大小。

**注意:**除此之外,我們還為這些數據庫啟用了 FileStream。

在此處輸入圖像描述

在此處輸入圖像描述

請在下面建議我:

截至目前,我們正在使用第三方工具來備份這些數據庫的數據。

最重要的是,它們正在附加備份文件,現在它們已增長到接近 800 GB。

畢竟,現在我只是想提出每日單個文件的想法,而不是每天附加備份文件並讓它們變得龐大。

我考慮它有兩個原因。

  1. 對於從備份文件中恢復數據庫來說,比恢復一個大文件更容易一些。
  2. 接下來,我認為很容易清除備份文件,我的意思是舊的備份文件。
  3. 備份文件維護,可以維護5天左右,去掉之前的。

請告訴我 :

  1. 我上述計劃的缺點是什麼。
  2. 它與附加備份文件和每日單獨的備份文件有何不同,文件名每天附加日期時間戳。
  3. 數據庫備份是否還包括 FileStream 數據?
  4. 我的想法比我現在的想法要好得多。哪個更推薦和更好,覆蓋/附加/帶有日期時間戳的單個備份文件?

謝謝你所有的時間。

不要使用追加,它只會使單個文件越來越大,這使得管理變得更加困難。此外,如果您需要從中恢復,現在您必須從內部找出您需要的文件編號(而且通常情況下,人們沒有意識到有多個文件,他們只是從中執行恢復並獲取預設文件,而不是他們期望的文件)。

我強烈建議始終創建獨立的完整備份,並且在文件名中嵌入日期/時間對於手動檢查/清理很有用。幸運的是,您可以參數化輸出文件名,因此您可以使用目前日期(和適當的時間)動態建構它。當您每天只進行一次完整備份並且準確的時間並不重要時,單獨的日期很有用;時間對於日誌/差異備份可能更有用。這是包含日期和時間的完整備份:

DECLARE @file nvarchar(512) = N'C:\temp\foo_' 
   + CONVERT(char(8), GETDATE(), 112) + '_'
   + REPLACE(CONVERT(char(8), GETDATE(), 108),':','')
   + N'.bak';

BACKUP DATABASE foo TO DISK = @file
WITH INIT, COMPRESSION, STATS = 20;

對我來說,這創建了以下備份文件:

C:\temp\foo_20180403_082056.bak

是的,這個備份將包括 Filestream 數據。

**對單個文件(帶日期戳)進行備份總是好的。**這不僅可以幫助您節省磁碟空間,還可以更輕鬆地進行清理。可以根據您的保留期協議(5 天)進行清理。一個很大的缺點是 bak 文件損壞的任何事故。在這種情況下,您將沒有可用的備份,而在其他情況下,您將至少有一個好的備份(繼續檢查備份的有效性)。使用 Ola-Hellengren 的腳本,這是在本地配置備份的最佳方式。這包含所有必需的參數以及時間戳問題。

來回答你的問題:

4.我上述計劃的缺點是什麼。

沒有特別的缺點。這只會幫助您更好地進行容量管理。

5.它與每天在文件名後附加日期時間戳的備份文件和每日單個備份文件有何不同。

添加備份後,在還原期間,您必鬚根據要恢復的時間點從列出的文件(在 SSMS 中)中檢查正確的文件。這有時會令人困惑,而且清理也是不可能的。每天的備份文件都是分開的,因此如果任何文件損壞,那麼您將至少擁有一個有效的備份,而如果附加的文件損壞,您可能會面臨恢復問題。

6.數據庫備份是否也包括文件流數據?

是的,它會。查看此連結以備份和恢復文件流數據庫:MSSQLTips

7.我的想法比我現在的想法要好得多。哪個更推薦和更好,覆蓋/附加/帶有日期時間戳的單個備份文件?

帶有日期戳的單個備份文件,因為這避免了恢復過程中的任何混淆。

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