6

我有一个运行备份以创建 .bak 文件的 SQL 2005 维护计划,并且在成功完成后应该运行维护清理任务以删除备份任务保存到的文件夹中的任何 .bak 文件较旧超过 5 天。

我的备份正在创建,但我的旧文件没有被删除。我在日志中看不到任何错误。我认为也许我有一个权限问题 - 运行作业的帐户需要访问要从中删除 .bak 文件的文件夹。这似乎是 .bak 文件未被删除的可能原因吗?

我如何找出作业在哪个帐户下运行?我猜这将是 SQL 代理帐户。我认为这将是名为“SQLServer2005AgentUser”的帐户,所以我尝试让该帐户完全控制,但我的 .bak 文件仍未被删除。

我应该采取不同的方法来清理旧文件吗?还是我做错了什么或不理解?

4

3 回答 3

12

我有这个完全相同的问题。我记得,问题在于我如何在清理任务设置中指定文件扩展名。

在维护清理任务中,检查“文件扩展名”的设置。如果它设置为“.bak”,请将其更改为“bak”(显然没有引号,也没有点)。

这解决了我的问题。这让我发疯了!

于 2009-06-12T15:10:44.210 回答
0

还有另一种可能会产生同样的问题(不删除旧的备份文件)。当使用旧版本 SSMS(9.00.1399 SQL Server 2005 RTM,2005 年 11 月 1 日)修改维护计划时,删除一级子文件夹的功能将被禁用。我知道大多数人不使用这个非常旧的版本 SSMS。在我看到的一个案例中,一位用户在他的 PC 上安装了此 RTM SSMS 版本,这就是导致此问题的原因。我花了一段时间才意识到这个问题。

总而言之,不仅数据库需要打补丁,SSMS 也需要打补丁。确保没有人应该使用 RTM SSMS 来修改维护计划。

于 2012-08-14T20:50:12.670 回答
0

在备份文件位置的路径中,确保在路径中的最后一个文件夹之后有一个反斜杠,例如。

E:\MSSQL\备份\

在让我们疯狂多年后为我们工作......

于 2010-07-22T15:13:54.813 回答