需要您的帮助:SSIS服务器维护作业失败
此作业使用默认存储过程清理系统表
正在运行的代码是SQL Server的内置部分,它已开箱即用。根据我所能收集到的信息,它清理了运行过的程序包的日志历史记录。
DECLARE @role int
SET @role = (SELECT [role] FROM [sys].[dm_hadr_availability_replica_states] hars
INNER JOIN [sys].[availability_databases_cluster] adc ON hars.[group_id] = adc.[group_id]
WHERE hars.[is_local] = 1 AND adc.[database_name] ='SSISDB')
IF DB_ID('SSISDB') IS NOT NULL AND (@role IS NULL OR @role = 1)
EXEC [SSISDB].[internal].[cleanup_server_retention_window]
哪个失败并出现此错误:
消息:
以用户身份执行:##MS_SSISServerCleanupJobLogin##。DELETE语句与REFERENCE约束冲突"FK_EventMessagecontext_Operations";。数据库中发生冲突"SSISDB";,表";internal.event_message_context";,柱'operation_id'。[SQLSTATE 23000](错误547(。
在线上有一些关于如何处理此错误的建议,但我不确定如何最好地将它们应用于默认过程。修改微软在工具中内置的东西让我很担心。
是的,这是在SQL Server上安装SSIS时运行的默认清理作业。我认为SSISDB出现了问题,您应该检查SSIS包是否仍在正常运行。
SSISDB中充满了触发器,默认清除作业在清除旧数据时尝试使用它们。有时,它在完成自己的工作时会遇到麻烦,尤其是当有很多数据需要删除时。此时,您可以通过手动更高效地删除数据来帮助它:https://www.timmitchell.net/post/2018/12/30/clean-up-the-ssis-catalog/