微软 SQL 服务器管理套件

微软 SQL 服务器管理套件

我在 MSQL Studio 中设置了一个作业,将我的所有数据库备份到特定文件。然后我获取该文件,对其进行压缩,并将其发送到备份设备。我目前希望每周自动完成整个过程。但是,我遇到了问题。我在 MSQL Studio 中创建的作业当前运行数据库的完整备份,但是,它不会覆盖旧数据。我一次又一次地使用向导,但无法弄清楚如何让我的进程覆盖旧文件。这样做的目的是节省服务器空间。

有人能帮我弄清楚如何让备份作业覆盖旧文件吗?

答案1

如果您使用维护计划向导创建作业,则单击跨一个或多个文件备份数据库选项一如果备份文件存在:下拉菜单将启用。将该菜单设置为覆盖这应该可以帮你搞定。

如果您已经创建了维护计划,请打开维护计划并编辑“备份数据库”任务。您应该会看到与我上面描述的相同的选项。

如果您为每个数据库创建一个文件,则无法使用 SQL 本机备份覆盖预先存在的备份文件。将为每个文件创建新文件。您必须编写脚本或使用支持此功能的第三方工具。

答案2

我们做过类似的事情,我们不想在过程完成之前覆盖服务器上唯一的备份。我们创建了一个备份作业,然后创建了一个使用 gzip (sql 2005) 压缩备份的作业,然后使用 forfiles 删除了旧的 gzip 备份。我们已经这样做了一段时间,没有任何问题。

forfiles 指南 http://technet.microsoft.com/en-us/library/cc753551%28WS.10%29.aspx

答案3

尝试 T-SQL 脚本 BACKUP DATABASE 语句 http://msdn.microsoft.com/en-us/library/ms186865.aspx

将数据库 SomeDB 备份到磁盘 = 'c:\backupdb.bak' 使用 INIT; 去

这会将数据库备份到单个文件并始终覆盖所有内容。

或者也许这个免费工具http://sqlbackupandftp.com/- 它创建一个 zip 文件,并且可以限制要保留的文件数量。

相关内容