2014-11-23 111 views
4

我安裝一個SQL Server維護計劃如下:Sql Server的差異備份大小不等

  • 完全備份每個星期日的凌晨2點
  • 差異備份,每3小時

完全備份後我注意到差異備份的大小各不相同。起初它開始變小,並相應增長。但是,在不同的點上,一些差異備份文件的大小可能比以前更大或更小。這包括很大的差異(即200MB到3MB)。我知道在這段時間內沒有其他完整備份,也沒有大量數據被刪除。原因是什麼,我有什麼缺失?根據我所做的研究,差分應該什麼也不做,除非增加另一個完全備份。

任何有識之士將不勝感激。

謝謝!

+0

我測試這些備份的實際工作......也許另一個完全備份下滑的那些差異備份現在幫你什麼。還原其中一個異常備份。 – usr 2014-11-23 11:27:48

+0

這聽起來很可疑。通過查看msdb中的bacupset表,確認沒有其他備份正在運行。我會說,有一些像虛擬機備份或類似的東西運行。 – 2014-11-24 01:38:55

+0

我去過這個網站:[link](http://www.mssqltips.com/sqlservertip/1601/script-to-retrieve-sql-server-database-backup-history-and-no-backups/)並跑了第一個腳本。它看起來像是以某種方式發生了完整備份。我說不知何故,因爲physical_device_name字段包含一個guid而不是實際的物理路徑。結果集中的大部分行實際上都在該列中有一個路徑,而且我知道這個路徑。是否有可能SQL Server正在自行完全備份? – HighGuard2012 2014-11-24 02:45:50

回答

0

你在說什麼differential backup或差分partial backup?您所描述的內容看起來很像差異部分備份。 MSSQL Server 2005引入了差異部分備份,與incremental backup非常相似。

通過差異部分備份,只保留自上次部分差異備份以來的更改。這意味着兩件事:

  • 差異部分備份的文件大小將根據自上次差異部分備份以來數據庫中的更改量而變化。
  • 如果要恢復備份,則必須恢復完整的部分備份(基礎),然後再恢復每個差異部分備份文件。

這裏是一個非常完整和有趣的關於MSSQL部分備份的article

編輯

使用的術語是有點混亂。在Microsoft文檔中,它被稱爲部分差異備份(儘管它的工作原理與增量備份非常相似),要做到這一點,必須使用非常直觀的READ_WRITE_FILEGROUPS標誌。據我所知,你必須使用T-SQL命令,如:

BACKUP DATABASE [SampleDB] READ_WRITE_FILEGROUPS 
TO DISK = N'C:\SQLBackups\SampleDB_PARTIAL_Diff.bak' 
WITH DIFFERENTIAL 
GO 
+0

當我創建維護計劃時,我選擇了備份數據庫(差異)。由於我使用的是SQL Server 2008 R2,因此當您選擇此選項時,是否默認執行部分差異備份? – HighGuard2012 2014-11-23 19:24:32

+0

可能不是。你有其他備份解決方案嗎?例如像Backup Exec的東西? – ForguesR 2014-11-23 22:59:32

+0

不是我所知。我已經檢查了任何無關的作業,但是沒有看到類似於完整備份的任何內容 – HighGuard2012 2014-11-24 02:14:34