只是将其留在这里作为答案(将整个数据库编写为 .sql 文件(包括数据),然后使用 winrar 对其进行压缩。)
我创建了这个解决方案,每天从任务计划程序运行一次,这就是为什么它只下降到每天的水平。如果您想运行更多(例如,每半小时一次),您将需要编辑“%date:~-4,4%%date:~-7,2%%date:~-10,2 %" 字段可降至小时/分钟/秒级别,具体取决于您的需要。
注意:需要安装 SQL 发布向导和 Winrar
begin.bat - 保存日志文件记录的包装器。这是任务计划程序要调用的批处理文件
::Run dbbackup.bat and append all output to log.txt
md C:\[directory]\%date:~-4,4%%date:~-7,2%%date:~-10,2%
"dbbackup.bat" >> "C:\[Directory]\%date:~-4,4%%date:~-7,2%%date:~-10,2%\log.txt"
dbbackup.bat - 备份数据库
echo off
cls
echo %date% %time%
echo ***************************************************************************
echo ** Script all objects in databases and save them in 'yyyymmdd' folder **
echo ***************************************************************************
cd C:\[directory]\%date:~-4,4%%date:~-7,2%%date:~-10,2%
"C:\Program Files\Microsoft SQL Server\90\Tools\Publishing\sqlpubwiz.exe" script -C "[ConnectionString]" [dbname]_%date:~-4,4%%date:~-7,2%%date:~-10,2%.sql
echo ***************************************************************************
echo ** RAR compress all .sql script files **
echo ***************************************************************************
"C:\Program Files\WinRAR\WinRAR.exe" -ibck a [dbname]_%date:~-4,4%%date:~-7,2%%date:~-10,2%.rar [dbname]_%date:~-4,4%%date:~-7,2%%date:~-10,2%.sql
echo WinRAR has completed execution
echo ***************************************************************************
echo ** Delete all .sql script files **
echo ***************************************************************************
del *.sql
echo .SQL files deleted
只需创建一个计划任务来运行 begin.bat 以在您需要的任何时间间隔运行,数据库备份将与日志文件一起编写脚本。