SQL Server的一個不顯眼的功能 備份文件的分割

SQL Server的一個不顯眼的功能 備份文件的分割

當完整備份數據庫的時候,咱們有時候可能會遇到一種極端狀況,好比服務器上C,D,E三個盤符都只剩下5G空間了數據庫

可是若是要完整備份業務庫須要12G的空間,那麼這時候怎麼辦呢?服務器

使用文件組備份嗎?可是數據庫沒有作表分區,沒有分多個文件組,就只有一個主文件組啊spa

 

這時候咱們可使用備份文件分割3d

我使用本身機器示範一下,個人機器上有一個Temp2的數據庫,數據庫大小爲1GBcode

 


備份blog

咱們作一個Temp2數據庫的完整備份ast

DECLARE @CurrentTime VARCHAR(50), @FileName VARCHAR(200)
SET @CurrentTime = REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR, GETDATE(), 120 ),'-','_'),' ','_'),':','')

        
--(Temp2 數據庫完整備份)
SET @FileName = 'C:\Temp2_FullBackup_' + @CurrentTime+'.bak'
BACKUP DATABASE [Temp2]
TO DISK=@FileName WITH FORMAT 

能夠看到須要31MB大小class

 

那麼如何分割備份文件呢?方法很簡單集羣

剛纔是備份到C盤,如今咱們備份到C盤和D盤軟件

DECLARE @CurrentTime VARCHAR(50), @FileName VARCHAR(200),@FileName2 VARCHAR(200)
SET @CurrentTime = REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR, GETDATE(), 120 ),'-','_'),' ','_'),':','')

        
--(Temp2 數據庫完整備份)
SET @FileName = 'C:\Temp2_FullBackup_Partial1_' + @CurrentTime+'.bak'
SET @FileName2 = 'D:\Temp2_FullBackup_Partial2_' + @CurrentTime+'.bak'

BACKUP DATABASE [Temp2]
TO 
DISK=@FileName,
DISK=@FileName2
WITH FORMAT 

 

C盤

 

D盤

 

能夠看到每一個備份文件的大小是平均的,都是16MB,若是是分紅3個備份文件,那麼就除以3,就是每一個備份文件的大小

 

固然,若是你要查詢備份文件的信息,不管查詢哪一個備份文件都是能夠查詢出來的

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 = 5

GO

還原的時候只須要指定全部的備份分割文件的路徑就能夠了,固然咱們通常在服務器搬遷的時候都會把這些備份文件一塊兒放到新服務器的同一個盤符下面,方便還原

而不會一個放C盤,一個放D盤,一個放E盤

 

還原好了,咱們查詢一下數據

 

還原出來的數據庫沒有問題,能夠收工了


總結

有時候當服務器的任何一個盤符的空間都不足以放下一個完整備份文件,可是又急須要作一個完整備份,那麼能夠採起這種辦法

固然,你也能夠插入一個移動硬盤,將數據庫備份到一個移動硬盤裏去,可是當你作集羣搬遷,只能遠程到服務器去作備份的時候,這種辦法就比較有用了

 

還有一個就是不須要用winrar等壓縮軟件來壓縮分包了,SQL Server自己就能夠作

 

若有不對的地方,歡迎你們拍磚o(∩_∩)o 

相關文章
相關標籤/搜索