我们希望安排 SQL 数据库备份,就像您使用 SQL Agent Job Scheduling Service 所做的那样。有没有办法在 SQL 2005 Express 版本上进行这种备份?
答案1
我通过两种方式解决了这个问题:
- 您可以使用 Windows 的计划任务通过 SQLCMD 执行脚本。
- 如果您有其他非 Express 版本的 SQL Server,则可以在指向 Express 服务器的服务器上创建维护计划。
答案2
您可以编写备份脚本并使用计划任务来执行备份。以下是使用 osql 命令行工具执行任务的命令示例(或放入批处理文件中的内容):
osql -s myserver -E -Q " BACKUP DATABASE MyDB TO DISK = 'C:\SQLBackups\MyDB.bak'"
这是 MSDN 参考页面SQL 2005 BACKUP 语句如果您需要在备份中加入比上述基本语句更多的选项。
答案3
几年前我遇到过这个问题,从那时起一直在使用简单的批处理文件和 SQL 脚本。
我在这里写了一篇文章来介绍它,其中包括脚本和演练: http://www.diaryofaninja.com/blog/2011/02/14/howto-quick-amp-dirty-sql-express-scheduled-backup
基本上我会做以下事情: - 编写一个存储过程来备份指定的数据库 - 编写一个 SQL 脚本,为每个要备份的数据库调用此脚本 - 使用计划任务使用 sqlcmd.exe 调用上述脚本
这让我可以选择按计划发生的时间,并在需要时运行不同的数据库
然后,您可以使用可编写脚本的 ftp 客户端,例如 WinSCP(http://winscp.net/) 创建另一个使用 FTP 或 SFTP(更安全)上传备份的计划。
答案4
您可以使用外部备份软件,例如Cobian 备份用于调度和压缩。对于数据库备份本身,一种选择是使用快速维护
更多答案在这里:
https://stackoverflow.com/questions/487675/how-can-i-schedule-a-daily-backup-with-sql-server-express