我有一个维护计划,在非工作时间每周执行一次。它始终报告成功,但旧备份不会被删除。我不希望驱动器充满。
数据库服务器信息:SQL Server标准版9.00.3042.00
“维护清理任务”设置为
“根据扩展程序搜索文件夹并删除文件”
和“在任务运行时根据文件的年龄删除文件”被选中并设置为4周。
我唯一能看到的是我的备份每个都有自己的子文件夹,这不是递归的。我错过了什么吗?
另外:我看过SP2之前的问题,但我正在运行Service Pack 2.
答案 0 :(得分:2)
如果您在子文件夹中进行备份,则必须指定要删除的确切子文件夹。
例如:
通过选择“为每个数据库创建一个备份文件”之类的选项进行备份,并选中“为每个数据库创建子文件夹”复选框。 (我使用的是德语版的SQL Server,所以我现在将所有内容翻译成英文)
指定的文件夹是 H:\ Backup ,因此实际上将在 H:\ Backup \ DatabaseName 文件夹中创建备份。
如果您希望维护清理任务通过“在任务运行时根据文件的年龄删除文件”来删除备份,则必须指定文件夹 H:\ Backup \ DatabaseName ,而不是 H:\ Backup !!!
这是我在开始使用SQL Server 2005时犯的错误 - 我将相同的文件夹放在备份和清理两个字段中。
答案 1 :(得分:1)
我的理解是您只能包含第一级子文件夹。我假设您已经检查了该复选框。
您的备份是否比单一级别更深?
另一个想法是,您是否只运行一个维护计划来删除多个数据库的备份?我问这个的原因是因为我可以看到你必须这样做的方式是将它指向一个更高一级的文件夹,这意味着你的“包含第一级子文件夹”不够深。
我设置的方式是维护清理任务是我的备份过程的一部分。因此,一旦特定数据库的备份完成,维护清理任务就会在相同的数据库备份文件上运行。这允许我在目录上更具体,所以我不会遇到目录结构太深。由于我按照我想要的方式设置了标准,因此在我准备好删除项目之前,项目不会被删除。
添
答案 2 :(得分:0)
确保您的维护计划没有任何与之相关的错误。您可以在SQL Server Management Studio中的SQL Server代理区域下检查错误日志。如果在维护计划期间出现错误,则可能在它开始删除过期备份之前退出。
答案 3 :(得分:0)
另一个问题可能是维护计划的“工作流程”。
如果您的计划包含多个任务,则必须使用箭头连接任务以定义它们的运行顺序。
可能的问题#1:
你忘了用箭头连接它们。我刚刚测试过 - 作业运行没有任何错误或警告,但它只执行第一个任务。
可能的问题#2:
您以清除任务永远不会运行的方式定义了工作流。如果使用箭头连接两个任务,则可以右键单击箭头并指定第二个任务是始终运行还是仅在第一个任务成功/不成功运行时(这会更改箭头的颜色,可能是红色) /绿,蓝)。也许备份工作,然后清理永远不会运行,因为它只会在备份失败时运行?