當(dāng)完整備份數(shù)據(jù)庫的時候,我們有時候可能會遇到一種極端情況,比如服務(wù)器上C,D,E三個盤符都只剩下5G空間了
但是如果要完整備份業(yè)務(wù)庫需要12G的空間,那么這時候怎么辦呢?
使用文件組備份嗎?但是數(shù)據(jù)庫沒有做表分區(qū),沒有分多個文件組,就只有一個主文件組啊
這時候我們可以使用備份文件分割
我使用自己機器示范一下,我的機器上有一個Temp2的數(shù)據(jù)庫,數(shù)據(jù)庫大小為1GB
備份
我們做一個Temp2數(shù)據(jù)庫的完整備份
DECLARE @CurrentTime VARCHAR(50), @FileName VARCHAR(200)SET @CurrentTime = REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR, GETDATE(), 120 ),'-','_'),' ','_'),':','') --(Temp2 數(shù)據(jù)庫完整備份)SET @FileName = 'C:\Temp2_FullBackup_' + @CurrentTime+'.bak'BACKUP DATABASE [Temp2]TO DISK=@FileName WITH FORMAT
可以看到需要31MB大小
那么如何分割備份文件呢?方法很簡單
剛才是備份到C盤,現(xiàn)在我們備份到C盤和D盤
DECLARE @CurrentTime VARCHAR(50), @FileName VARCHAR(200),@FileName2 VARCHAR(200)SET @CurrentTime = REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR, GETDATE(), 120 ),'-','_'),' ','_'),':','') --(Temp2 數(shù)據(jù)庫完整備份)SET @FileName = 'C:\Temp2_FullBackup_Partial1_' + @CurrentTime+'.bak'SET @FileName2 = 'D:\Temp2_FullBackup_Partial2_' + @CurrentTime+'.bak'BACKUP DATABASE [Temp2]TO DISK=@FileName,DISK=@FileName2WITH FORMAT
C盤
D盤
可以看到每個備份文件的大小是平均的,都是16MB,如果是分成3個備份文件,那么就除以3,就是每個備份文件的大小
當(dāng)然,如果你要查詢備份文件的信息,無論查詢哪個備份文件都是可以查詢出來的
RESTORE FileListOnly From Disk='C:\Temp2_FullBackup_Partial1_2014_12_19_150533.bak'RESTORE FileListOnly From Disk='D:\Temp2_FullBackup_Partial2_2014_12_19_150533.bak'RESTORE HeaderOnly From Disk='C:\Temp2_FullBackup_Partial1_2014_12_19_150533.bak'RESTORE HeaderOnly From Disk='D:\Temp2_FullBackup_Partial2_2014_12_19_150533.bak'
還原
USE [master]RESTORE DATABASE [Temp2] FROM DISK = N'D:\Temp2_FullBackup_Partial1_2014_12_19_150533.bak',DISK = N'D:\Temp2_FullBackup_Partial2_2014_12_19_150533.bak' WITH FILE = 1, MOVE N'Temp' TO N'E:\DataBase\Temp2.mdf', MOVE N'Temp_log' TO N'E:\DataBase\Temp2_log.ldf', NOUNLOAD, REPLACE, STATS = 5GO
還原的時候只需要指定所有的備份分割文件的路徑就可以了,當(dāng)然我們一般在服務(wù)器搬遷的時候都會把這些備份文件一起放到新服務(wù)器的同一個盤符下面,方便還原
而不會一個放C盤,一個放D盤,一個放E盤
還原好了,我們查詢一下數(shù)據(jù)
還原出來的數(shù)據(jù)庫沒有問題,可以收工了
總結(jié)
有時候當(dāng)服務(wù)器的任何一個盤符的空間都不足以放下一個完整備份文件,但是又急需要做一個完整備份,那么可以采取這種辦法
當(dāng)然,你也可以插入一個移動硬盤,將數(shù)據(jù)庫備份到一個移動硬盤里去,但是當(dāng)你做集群搬遷,只能遠(yuǎn)程到服務(wù)器去做備份的時候,這種辦法就比較有用了