徵狀
當您使用 SSISDB 資料庫來儲存和管理 Microsoft SQL Server 整合服務(SSIS)套件,並在 SSIS 目錄上設定下列屬性時:
-
定期清除記錄 (設定為 True)
-
保留期間 (設定為特定的天數):較大的天數可能越多,問題越常見)
-
定期移除舊版本 (設為 true)
-
每個專案的最大版本數
您可能會遇到下列一個或多個徵狀:
-
從 SSDT 將 SSIS 套件部署到 SSIS 資料庫需要花很長的時間。
-
在某些情況下,SSIS 封裝可能需要花很長的時間執行,或甚至在執行 SSISDB 清除作業時失敗。
-
SQL Server 實例可能表現出效能問題。
-
SSIS 維護作業可能需要花很長的時間(超過一天)才能完成或甚至失敗。
-
SSISDB 可能已增長至較大的大小。
解決方案
SQL Server 2012 的 Service pack 資訊
若要解決此問題,請取得最新的 Microsoft SQL Server 2012 service pack。如需詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2755533 如何取得最新的 SQL Server service pack 2012 在您套用 SQL Server 2012 Service Pack 2 (SP2)之後,請遵循下列步驟來修正此問題:
-
在託管 SSISB catalog 的 SQL Server 實例上套用 SQL Server 2012 SP2。
-
在 SSISDB 中執行 內部.cleanup_server_log儲存程式,以執行完整清理。
EXEC SSISDB.internal.cleanup_server_log
-
將 SSISDB 資料庫變更為單使用者模式。
ALTER DATABASE SSISDB SET SINGLE_USER
-
使用SEVER_OPERATION_ENCRYPTION_LEVEL參數呼叫configure_catalog ,將作業記錄的加密層級從預設值PER_EXECUTION (1)變更為PER_PROJECT (2) 。
EXEC SSISDB.catalog.configure_catalog @property_name='SERVER_OPERATION_ENCRYPTION_LEVEL', @property_value='2'
-
將 SSISDB 資料庫變更回多使用者模式。
ALTER DATABASE SSISDB SET MULTI_USER
-
執行 內部。Cleanup_Server_execution_keys [儲存程式] 以清除交易層級的索引鍵。
EXEC SSISDB.internal.Cleanup_Server_execution_keys @cleanup_flag = 1
其他相關資訊
SQL Server 2012 Service Pack 2 引入可協助緩解此問題的主要設計變更:
-
新屬性(OPERATION_LOG_ENCRYPTION_LEVEL)會在SSISDB.catalog_property 表格中引入,以啟用專案層級安全性的選項。 這個設定會告知 SSI 為每個專案建立一個金鑰或憑證組,並針對每個事務重複使用它,從而將所保留的憑證數和需要的檔案減少到未來。 從交易層級變更到專案層級之前,必須完全清除。
-
引入了兩個儲存程式,以協助將現有的 SSISDB 從事務層級傳輸到專案層級:
-
cleanup_server_log
-
cleanup_server_execution_keys
如需這兩個程式及其用法的詳細資訊,請移至 SQL Server 線上書籍中的下列網站:
-
狀態
Microsoft 已確認<適用於>一節所列的 Microsoft 產品確實有上述問題。