SQL 代理作業掛起狀態(SSIS 作業掛起)
幾週以來,我在 SQL Server 2016 SP1 上遇到了一個奇怪的問題。我們使用並行將關鍵伺服器從 SQL Server 2008 R2 遷移到帶有 SP1 的 SQL Server 2016。我們遷移了所有數據庫、登錄名、數據庫郵件、作業等。
我們在 SQL Server 代理中部署了大約 150 個作業。在數據庫從 SQL Server 2008 R2 切換到 SQL Server 2016 時(美國東部時間星期六早上 5 點),很少有 SSIS 作業處於掛起狀態。工作既沒有成功也沒有失敗;它們顯示為“執行”狀態。我們發現這種行為僅適用於 SSIS 作業(大約 39 個作業);其餘的 T-SQL 作業都很好。
有趣的是,我們還可以看到事務日誌備份的掛起狀態(因為我們已經從每 1 小時執行一次的維護計劃創建了 TRN 備份作業)。我們已經驗證了事件查看器日誌、SQL Server 代理日誌、錯誤日誌和所有內容,但沒有在日誌中擷取任何內容。我們檢查了伺服器的健康狀態,一切正常(CPU 5%,記憶體 15%),還驗證了鎖定、阻塞狀態,我們找不到任何錯誤。
重新啟動 SQL Server 代理後,這些作業開始順利執行,沒有任何問題,並且按計劃成功執行。一周後,同一時間(美國東部時間星期六早上 5 點)重複了相同的問題,這組作業進入掛起狀態。
我們再次驗證了日誌、阻塞…等。沒有擷取任何內容並再次從配置管理器重新啟動 SQL Server 代理服務,然後它得到了解決。在這裡,我們的意圖是它是一個生產伺服器,使用者報告說如果作業不執行,那麼數據將變得陳舊。以下日誌是重新啟動代理後所有掛起的作業。
Unable to terminate process 1208 launched by step 1 of job 0xB4CF917BAF53234796F42A38EC45B871 (reason: Access is denied)
在每周維護工作(重建索引–> 更新統計資訊)之後,美國東部標準時間星期六早上 5 點再次出現此問題。這項工作的持續時間是 1 小時 50 分鐘。之後我們發現有幾個 SSIS 作業掛起。我們沒有說這是確切的原因。我將時間表更改為美國東部標準時間週日凌晨 5 點,以找出根本原因。我們也驗證了等待類型,一切都很好。
最後我們了解到,一個供應商更改了 SFTP 端的安全密鑰,導致剩餘作業掛起的一批。因此,我們的開發人員在 SQL 作業中的適當步驟手動更改了安全密鑰,然後作業執行良好。我們在測試環境中再次面臨一個問題。
我們不接受 FTP 中的密鑰,它繼續執行(執行)但不影響 SQL Server 2008 R2 中的其他作業。此處的情況在 SQL Server 2016 中完全不同,因為此 FTP 作業會影響剩餘的 SQL 代理作業掛起。
如果我們需要在伺服器上應用任何更新檔以進行永久修復或者它是 SQL Server 2016 中的錯誤,任何人都可以指導我嗎?
作業在 SQL Server 2008 R2 上以預定方式正常工作,但批處理 (FTP) 作業保持在執行模式。我們已將所有作業遷移到 SQL Server 2016,當 SFTP 批處理作業開始執行,然後在所有剩餘作業掛起後,我們發現了問題。
在一年內,我們在一台安裝了 SQL Server 2014 SP2 的生產伺服器上多次注意到類似的行為。
**症狀:**所有執行 SSIS 包的 SQL Agent 作業突然在執行狀態下掛起,而數據引擎端沒有真正的活動。
**解決方案:**兩次都通過推送所有待安裝的 Windows 更新更新檔來解決此問題。重新啟動此 SQL 代理後,作業行為再次正常。
似乎這個問題與我們通過 WSUS 獲得的伺服器和作業系統上的 .NET 堆棧有關
這似乎是由於 SFTP 作業遇到了一些問題而無法完成。我在 VMWare 2016 SQL Server 上遇到了同樣的問題。SFTP 作業只是繼續執行並且不會終止,並且由於某種原因,這阻止了所有包含 SSIS 包的作業的執行。所有其他工作都執行良好。SQL 代理日誌或 Windows 事件日誌中均未報告任何內容。查找其中包含 SFTP 步驟和/或已掛起並包含 SFTP 組件的作業。這必須終止,然後必須重新啟動 SQL 代理服務。