我用SQL Server Express
我每天都会使用Time Scheduling
脚本为所有数据库创建备份文件。一个脚本就像这样;
BACKUP DATABASE [Jira]
TO DISK = N'C:\Backup\Jira.bak'
WITH COMPRESSION,INIT
GO
他们.bak
在我的文件夹中创建了 3 个文件(备份)C:/backup
。
我想要的是,当我创建这些.bak
文件时,我还想自动压缩它们(可能使用Winrar
,Winzip
或属性7zip
)SQL 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 并安排其每天运行。