SQL Server 如何将备份文件放在不同磁盘

全备数据库时可能会遇到一种极端情况:服务器上C,D,E三个盘符都只剩下5G空间,但全备业务库(压缩后)需要12G的空间,那么这时候怎么办呢?我们可以使用备份文件分割。

一、 分割备份

例如有一个Temp2的数据库,大小为1GB

我们分割备份到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'

 

二、 数据库还原

还原时指定所有的备份分割文件的路径即可。当然,一般在服务器搬迁时都会把这些备份文件放到新服务器的同一个盘符下,方便还原,而不会一个放C盘、一个放D盘、一个放E盘。

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

还原好了,我们查询一下数据

还原出来的数据库没有问题,可以收工了。

©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页