是否有一个好的方法可以让 SQL Server 2005 运行夜间备份,并自动压缩并仅保留最后 n 个备份?
我知道代理可以执行夜间备份,但我认为这个问题的棘手部分是压缩和删除非常旧的备份
干杯!
答案1
在 SQL 备份之后,我们运行另一个任务来运行批处理文件以压缩文件并将其复制到 NAS 上。我们保留最后 3 个备份 - 基本脚本如下所示:
d:
cd \MSSQL\BACKUP
zip -rq d:\northwind northwind.BAK
REM - do the local copy to the NAS
move/y \\10.0.0.1\sql_backup\yesterday\northwind.zip \\10.0.0.1\sql_backup\2DaysAgo\northwind.zip
move/y \\10.0.0.1\sql_backup\northwind.zip \\10.0.0.1\sql_backup\yesterday\northwind.zip
copy northwind.zip \\10.0.0.1\sql_backup\northwind.zip
(我已将脚本编辑为仅显示 1 个数据库)。在脚本的末尾,我们调用 Python 脚本来发送一封电子邮件,告诉我们备份文件的大小以及创建日期。您可以轻松地使用 WSH 脚本。我认为可能已添加“if errorlevel...”指令,因为 SQL 代理并不总是检测批处理文件是否完成?
if errorlevel 1 goto weakspace
d:\scripts\send_email_nas_copy_success.py
goto end
weakspace:
REM - error occured
d:\scripts\send_email_nas_copy_fail.py
end:
exit
我们的一台服务器使用 winrar 而不是 zip 来压缩文件(它有一个命令提示符)。每月一次,昨晚的备份被复制到保存六个月的存档中,但您可以轻松创建另一个批处理文件,每周运行一次,以维护上周日、2 个周日前和 3 个周日前的备份。
答案2
我写自动SQL备份它可创建备份、旋转、压缩并发送电子邮件。Powershell 且免费。
答案3
有一个软件:sql备份和FTP。有免费版和“高级”版。
免费版本包含“计划备份,Zip”选项。以下是一篇关于SQL Authority.com 博客,其中还解释了如何使用该工具。
或者你可以调用命令行 zip (winzip/压缩包)来自 SQL Server 扩展存储过程xp_cmdshell. 你可以使用机器人复制将结果文件保存到安全的地方。