当我在文件夹中创建 SQL 备份文件时,如何压缩?

当我在文件夹中创建 SQL 备份文件时,如何压缩?

我用SQL Server Express我每天都会使用Time Scheduling脚本为所有数据库创建备份文件。一个脚本就像这样;

BACKUP DATABASE [Jira]
TO DISK = N'C:\Backup\Jira.bak'
WITH COMPRESSION,INIT
GO

他们.bak在我的文件夹中创建了 3 个文件(备份)C:/backup

我想要的是,当我创建这些.bak文件时,我还想自动压缩它们(可能使用WinrarWinzip或属性7zipSQL Express Server

有什么办法可以做到这一点吗?

答案1

您也可以使用批处理脚本。

这是一个例子,需要稍微调整一下。在这个例子中,我使用了免费的 7zip。

@echo off

CLS

SET backuptime=%DATE:~10,4%-%DATE:~7,2%-%DATE:~4,2%-%TIME:~0,2%-%TIME:~3,2%

echo %backuptime%

echo Running dump ...

"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE" -S 
(local)\SQLExpress -i D:\dbbackups\bk_%SQLExpressBackups.sql

echo Zipping ...

"C:\Program Files\7-Zip\7z.exe" a -tzip "D:\dbbackups\zipped\bk_%backuptime%.zip" "D:\dbbackups\bk_%SQLExpressBackups.sql"

echo Deleting the SQL file ...

del "D:\dbbackups\bk_%SQLExpressBackups.sql"

echo Done!

或者,如果您只想压缩备份文件夹,则备份完成后您可以执行以下操作:

@echo off

CLS

SET backuptime=%DATE:~10,4%-%DATE:~7,2%-%DATE:~4,2%-%TIME:~0,2%-%TIME:~3,2%

echo %backuptime%

echo Zipping ...

"C:\Program Files\7-Zip\7z.exe" a -tzip "C:\dbbackups\zipped\bk_%backuptime%.zip" "C:\Backup\Jira.bak"

echo Done!

将其保存为 sqlbackup.bat 并安排其每天运行。

相关内容