我有一个运行备份的SQL 2005维护计划来创建.bak文件,并且在成功完成后应运行维护清理任务以删除备份任务保存到的文件夹中的任何.bak文件超过5天。
正在创建我的备份,但我的旧文件未被删除。我没有在日志中看到任何错误。我想也许我有一个权限问题 - 运行该作业的帐户需要访问要从中删除.bak文件的文件夹。这似乎是.bak文件未被删除的可能原因吗?
如何找出该作业的帐户?我猜这将是SQL Agent帐户。我认为这将是名为'SQLServer2005AgentUser'的帐户,所以我尝试给该帐户完全控制,但我的.bak文件仍然没有被删除。
我应该采用不同的方法来清理旧文件吗?或者还有别的我做错了或不理解?
答案 0 :(得分:12)
我有同样的问题。我记得,问题在于我如何在清理任务设置中指定文件扩展名。
在维护清理任务中,检查“文件扩展名”的设置。如果设置为“.bak”,请将其更改为“bak”(显然没有引号,没有点)。
这解决了我的问题。这让我抓狂!
答案 1 :(得分:0)
在备份文件位置的路径中,请确保在路径中的最后一个文件夹后面有反斜杠,例如。
E:\ MSSQL \备份\
在我们坚持了多年之后为我们工作了......
答案 2 :(得分:0)
还有另一种可能性来创建相同的问题(不删除旧的备份文件)。当旧版本SSMS(9.00.1399 SQL Server 2005 RTM,2005年11月1日)用于修改维护计划时,删除第一级子文件夹的功能将被禁用。我知道大多数人都不使用这个旧版本的SSMS。在我看到的一个案例中,一个用户在他的PC上有这个RTM SSMS版本,这就是导致这个问题的原因。我花了一段时间才意识到这个问题。
总结一下,不仅需要修补的数据库,SSMS也需要补丁。确保没有人应该使用RTM SSMS来修改维护计划。