【问题标题】:How to compress DB backup file with sql query如何使用 sql 查询压缩数据库备份文件
【发布时间】: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。您标记了mysqlsql-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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    谢谢大家帮助我。我使用名为“SQLBackupMaster”的第三方实用程序来备份、压缩和安排数据库备份。它的免费版本也满足我的要求。现在我可以每天和每周备份和压缩数据库文件。它在 SQL Server 2005 速成版中也能正常工作(备份和压缩 DB 文件)。感谢大家提出宝贵的建议。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-08
      • 2015-03-09
      • 2010-10-30
      • 2019-07-14
      • 2021-10-31
      • 2019-04-06
      相关资源
      最近更新 更多