【发布时间】:2014-08-20 15:26:35
【问题描述】:
我用这个查询备份我的数据库:
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查询?
【问题讨论】:
-
您好 PRdeep,欢迎来到 Stack Overflow。您标记了
mysql和sql-server。是哪一个? -
您已将其标记为 mysql 和 sql-server,您真的需要具体说明您想要什么吗?
-
实际上是 SQL Server 2005 :P
-
SQL 2005 不提供本机备份压缩。您需要 SQL 2008 Enterprise Ed、SQL 2008 R2 Standard Ed 或更高版本。对于 SQL 2005,您必须在创建备份后对其进行压缩。例如,使用 Win-zip 或 7-zip。
-
是的,这就是我想要的。我能够每天创建 .bak 文件。但是现在,如果我想压缩相同的内容,我必须手动执行此操作。我想在数据库备份时通过命令行自动执行此压缩。但是我可以用 7z 命令行来做到这一点。但问题是,每天创建的备份文件都使用不同的名称(带有日期/时间扩展名)。
标签: sql sql-server batch-file sql-server-2005