SQLSERVER數(shù)據(jù)備份文件的分割備份方法
當(dāng)完整備份數(shù)據(jù)庫(kù)的時(shí)候,我們有時(shí)候可能會(huì)遇到一種極端情況,比如服務(wù)器上C,D,E三個(gè)盤(pán)符都只剩下5G空間了
但是如果要完整備份業(yè)務(wù)庫(kù)需要12G的空間,那么這時(shí)候怎么辦呢?
使用文件組備份嗎?但是數(shù)據(jù)庫(kù)沒(méi)有做表分區(qū),沒(méi)有分多個(gè)文件組,就只有一個(gè)主文件組啊
這時(shí)候我們可以使用備份文件分割
我使用自己機(jī)器示范一下,我的機(jī)器上有一個(gè)Temp2的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)大小為1GB

備份
我們做一個(gè)Temp2數(shù)據(jù)庫(kù)的完整備份
DECLARE @CurrentTime VARCHAR(50), @FileName VARCHAR(200)SET @CurrentTime = REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR, GETDATE(), 120 ),'-','_'),' ','_'),':','') --(Temp2 數(shù)據(jù)庫(kù)完整備份)SET @FileName = 'C:\Temp2_FullBackup_' + @CurrentTime+'.bak'BACKUP DATABASE [Temp2]TO DISK=@FileName WITH FORMAT
可以看到需要31MB大小

那么如何分割備份文件呢?方法很簡(jiǎn)單
剛才是備份到C盤(pán),現(xiàn)在我們備份到C盤(pán)和D盤(pán)
DECLARE @CurrentTime VARCHAR(50), @FileName VARCHAR(200),@FileName2 VARCHAR(200)SET @CurrentTime = REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR, GETDATE(), 120 ),'-','_'),' ','_'),':','') --(Temp2 數(shù)據(jù)庫(kù)完整備份)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盤(pán)


D盤(pán)


可以看到每個(gè)備份文件的大小是平均的,都是16MB,如果是分成3個(gè)備份文件,那么就除以3,就是每個(gè)備份文件的大小
當(dāng)然,如果你要查詢(xún)備份文件的信息,無(wú)論查詢(xún)哪個(gè)備份文件都是可以查詢(xún)出來(lái)的
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
還原的時(shí)候只需要指定所有的備份分割文件的路徑就可以了,當(dāng)然我們一般在服務(wù)器搬遷的時(shí)候都會(huì)把這些備份文件一起放到新服務(wù)器的同一個(gè)盤(pán)符下面,方便還原
而不會(huì)一個(gè)放C盤(pán),一個(gè)放D盤(pán),一個(gè)放E盤(pán)

還原好了,我們查詢(xún)一下數(shù)據(jù)


還原出來(lái)的數(shù)據(jù)庫(kù)沒(méi)有問(wèn)題,可以收工了
總結(jié)
有時(shí)候當(dāng)服務(wù)器的任何一個(gè)盤(pán)符的空間都不足以放下一個(gè)完整備份文件,但是又急需要做一個(gè)完整備份,那么可以采取這種辦法
當(dāng)然,你也可以插入一個(gè)移動(dòng)硬盤(pán),將數(shù)據(jù)庫(kù)備份到一個(gè)移動(dòng)硬盤(pán)里去,但是當(dāng)你做集群搬遷,只能遠(yuǎn)程到服務(wù)器去做備份的時(shí)候,這種辦法就比較有用了
- 找回SQL企業(yè)管理器里的SQL連接的密碼的方法
- sqlserver找回企業(yè)管理器的方法
- sql server 2005數(shù)據(jù)庫(kù)備份還原圖文教程
- SQL Server中聚合歷史備份信息對(duì)比數(shù)據(jù)庫(kù)增長(zhǎng)的方法
- 如何備份MySQL數(shù)據(jù)庫(kù)
- Linux下自動(dòng)備份MySQL的方法
- MySQL使用命令備份和還原數(shù)據(jù)庫(kù)
- SqlServer備份數(shù)據(jù)庫(kù)的4種方式介紹
- SQL Server遠(yuǎn)程定時(shí)備份數(shù)據(jù)庫(kù)腳本分享
- MySQL備份與恢復(fù)之冷備(1)
- MySQL備份與恢復(fù)之真實(shí)環(huán)境使用冷備(2)
- MySQL備份與恢復(fù)之熱備(3)
- MySQL備份與恢復(fù)之熱拷貝(4)
- MySQL備份與恢復(fù)之保證數(shù)據(jù)一致性(5)
- 企業(yè)管理器備份和還原SQL Server數(shù)據(jù)庫(kù)
相關(guān)文章
如何恢復(fù)數(shù)據(jù)庫(kù)的賬號(hào) 登錄名/用戶(hù)名等
當(dāng)重裝數(shù)系統(tǒng)/數(shù)據(jù)庫(kù)之后,如何恢復(fù)數(shù)據(jù)庫(kù)的賬號(hào) 登錄名/用戶(hù)名 孤立用戶(hù) 縮小ldf日志文件 修改sqlserver2000端口2013-08-08
sql server 獲取系統(tǒng)時(shí)間的方法
Sql Server 中一個(gè)非常強(qiáng)大的日期格式化函數(shù),獲得當(dāng)前系統(tǒng)時(shí)間,GETDATE2012-11-11
sp_executesql 使用復(fù)雜的Unicode 表達(dá)式錯(cuò)誤的解決方法
sp_executesql 使用復(fù)雜的Unicode 表達(dá)式錯(cuò)誤的解決方法,需要的朋友可以參考下2012-01-01
SQL Server 數(shù)據(jù)庫(kù)索引其索引的小技巧
關(guān)于索引的常識(shí):影響到數(shù)據(jù)庫(kù)性能的最大因素就是索引。由于該問(wèn)題的復(fù)雜性,我只可能簡(jiǎn)單的談?wù)勥@個(gè)問(wèn)題,不過(guò)關(guān)于這方面的問(wèn)題,目前有好幾本不錯(cuò)的書(shū)籍可供你參閱。我在這里只討論兩種SQL Server索引,即clustered索引和nonclustered索引2012-06-06
SQL Server 數(shù)據(jù)文件收縮和查看收縮進(jìn)度的步驟
這篇文章主要介紹了SQL Server 數(shù)據(jù)文件收縮和查看收縮進(jìn)度,SQL Server在刪除數(shù)據(jù)后,會(huì)重新利用這部分空間,所以如果不是空間緊張的情況下,可以不回收,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03
使用sql語(yǔ)句創(chuàng)建和刪除約束示例代碼
本例主要介紹了使用sql語(yǔ)句創(chuàng)建和刪除約束,不了解的朋友可以參考下2014-07-07

