SQL 代理历史记录设置未保存

SQL 代理历史记录设置未保存

我正在使用安装了 SQL 2K8 R2 的 Win 2K3 R2 + SP2。

我正在尝试设置 SQL Agent History 以保留 1 周的日志。因此,我这样做:连接后,我右键单击SQL Server 代理并选择特性。然后我选择历史。然后我观察到没有选中任何复选框。然后我选择第二个复选框(删除代理历史记录:)。并将周数的值更改为 1。然后单击好的

之后我重新打开发现什么都没有改变。

如果这还不够的话,有时当我尝试查看某些特定作业的历史记录时它就会超时。

我感谢任何帮助。

感谢@Pradeep,我已经为我的日常维护工作添加了两个步骤,这是这些任务的脚本。

清除备份历史记录(优化备份速度)

declare @lastweek date;
select @lastweek = CONVERT(DATE,DATEADD(WEEK,-1,GETDATE()));
EXEC MSDB.DBO.SP_DELETE_BACKUPHISTORY @oldest_date = @lastweek;

为了清除工作历史记录,我必须使用光标。

declare @lastweek date
select @lastweek = CONVERT(DATE,DATEADD(WEEK,-1,GETDATE()));

DECLARE jobs_cursor CURSOR
FAST_FORWARD
FOR select job_id from msdb.dbo.sysjobs
DECLARE @job_id UNIQUEIDENTIFIER
OPEN jobs_cursor

FETCH NEXT FROM jobs_cursor INTO @job_id
WHILE (@@fetch_status <> -1)
BEGIN
    IF  (@@fetch_status <> -2)
    BEGIN
        EXEC msdb.dbo.sp_purge_jobhistory @job_id = @job_id, @oldest_date = @lastweek;
    END
    FETCH NEXT FROM jobs_cursor INTO @job_id
END

CLOSE jobs_cursor
DEALLOCATE jobs_cursor
GO

如果有人也需要这个,希望这会有所帮助。

答案1

这是一个 BUG,在 MS Connect 上。我也能重现这种情况。选中复选框后,它会清除指定日期的数据,但该选项不会保持选中状态。因此,当您选择它并单击“确定”时,它只会清除一次数据。您可以安排一个作业,该作业将执行 sp_delete_backuphistory 和 sp_purge_jobhistory 作为解决方法。

相关内容