如何使用sql查询压缩数据库备份文件

时间:2014-08-01 13:46:15

标签: sql sql-server batch-file sql-server-2005

我使用此查询备份我的数据库:

USE DBName
GO

DECLARE @FileName VARCHAR(MAX)

SET @FileName = 'C:\Backup\SQLDB\DBName_'+ REPLACE(CONVERT(varchar(10),getdate(),103),'/','') + '_' + REPLACE(CONVERT(varchar(10),getdate(),108),':','') + '.Bak'

BACKUP DATABASE DBName
TO DISK = @FileName
WITH FORMAT,
NAME = 'Full Backup of DBName'
GO

我使用批处理文件执行此查询,批处理文件按计划任务运行。

批处理文件参数:

sqlcmd -d DBName -S .\SQLEXPRESS -I -U DBUserName -P DBUserPwd  
       -i SQL_FileName_with_Extension -o log.txt

它在每日基础上成功备份我的数据库,我得到了DBName_01082014_131210.bak名称的备份文件。但它的尺寸太高(大约7GB)。是否有任何sql查询使用上面的查询执行,并且可以同时备份和压缩我的数据库?

2 个答案:

答案 0 :(得分:0)

您可以构建.bat文件。将数据库名称存储在变量中,使用sqlcmd备份数据库,备份完成后,使用变量中的db文件名对其进行压缩。

答案 1 :(得分:0)

谢谢大家的帮助。我使用了一个名为“SQLBackupMaster”的第三方实用工具'备份,压缩和安排数据库备份。它的免费版本也符合我的要求。现在我能够每天和每周备份和压缩数据库文件。它在SQL Server 2005 Express Edition中正常工作(备份和压缩DB文件)。谢谢大家提出你的好意见。