SSIS服务器维护作业错误

问题描述 投票:1回答:2

我在负责删除旧执行日志的维护作业的sql server 2017代理作业中收到以下错误消息:

Date        5/23/2018 12:18:45 AM
Log     Job History (SSIS Server Maintenance Job)

Step ID     1
Server      KARABL3
Job Name        SSIS Server Maintenance Job
Step Name       SSIS Server Operation Records Maintenance
Duration        00:02:34
Sql Severity    16
Sql Message ID  16916
Operator Emailed    
Operator Net sent   
Operator Paged  
Retries Attempted   3

Message
Executed as user: ##MS_SSISServerCleanupJobLogin##. A cursor with the name 'execution_cursor' does not exist. [SQLSTATE 34000] (Error 16916).  NOTE: The step was retried the requested number of times (3) without succeeding.  The step failed.

一段时间后,当日志计数超过正常计数时,它会导致所有作业因超时而失败.enter image description here

ssis sql-server-agent sql-server-2017
2个回答
1
投票

免责声明:我是Vahid的同事之一。

显然,错误消息不提供任何有用的信息。

这是SSIS服务器维护作业的第一步。

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]

起初,我想可能在最新版本的SQL服务器中更新了[cleanup_server_retention_window]并导致错误。但事实并非如此。

然后我搜索了cleanup_server_retention_window失败,这个link出现了。一些用户建议将SSISDB的恢复模式切换为简单可以解决问题,并且它也适用于这种情况。所以,如果你遇到类似的问题,我建议你也这样做。


0
投票

经过艰苦的努力,我终于在以下链接中找到了这个神奇的救生查询:

https://gist.github.com/sqlsimon/63a78ea8688ce9eaee60

这个怎么运作:

  1. 删除FK
  2. 截断所有日志表
  3. 最后读取FK对我来说非常适合

谢谢西蒙

© www.soinside.com 2019 - 2024. All rights reserved.