Symptômes
Lorsque vous utilisez la base de données SSISDB pour stocker et gérer les packages Microsoft SQL Server Integration Services (SSIS) et configurer les propriétés suivantes sur le catalogue SSIS :
-
Nettoyage des journaux périodiquement (défini sur true)
-
Période de rétention (définie sur un nombre spécifique de jours : le nombre de jours le plus courant pour le problème peut être le plus courant)
-
Supprimer régulièrement les anciennes versions (définies sur true)
-
Nombre maximal de versions par projet
Vous risquez de voir un ou plusieurs des problèmes suivants :
-
Le déploiement de packages SSIS dans la base de données SSIS à partir de SSDT prend un certain temps.
-
L’exécution des packages SSIS peut prendre un certain temps, voire échouer dans certains cas lorsque le travail de nettoyage SSISDB est en cours d’exécution.
-
L’instance SQL Server risque de présenter des problèmes de performances.
-
Le travail de maintenance de SSIS risque de durer un certain temps (plus d’un jour).
-
Le SSISDB a pu être agrandi.
Résolution
Informations sur le Service Pack pour SQL Server 2012
Pour résoudre ce problème, procurez-vous le dernier Service Pack pour Microsoft SQL Server 2012. Pour plus d’informations, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
2755533 Obtention du dernier Service Pack pour SQL Server 2012 Après avoir appliqué SQL Server 2012 Service Pack 2 (SP2), procédez comme suit pour résoudre ce problème :
-
Appliquez SQL Server 2012 SP2 sur l’instance de SQL Server qui héberge SSISB Catalog.
-
Exécutez la procédure stockée.cleanup_server_loginternedans le SSISDB pour effectuer un nettoyage complet.
EXEC SSISDB.internal.cleanup_server_log
-
Changer la base de données SSISDB en mode utilisateur unique.
ALTER DATABASE SSISDB SET SINGLE_USER
-
Appelez configure_catalog conjointement avec le paramètre SEVER_OPERATION_ENCRYPTION_LEVEL pour remplacer le niveau de chiffrement du journal des opérations par PER_PROJECT (2) par défaut de PER_EXECUTION (1).
EXEC SSISDB.catalog.configure_catalog @property_name='SERVER_OPERATION_ENCRYPTION_LEVEL', @property_value='2'
-
Repassez la base de données SSISDB en mode multi-utilisateur.
ALTER DATABASE SSISDB SET MULTI_USER
-
Exécutez Internal.Cleanup_Server_execution_keys procédure stockée pour nettoyer les clés de niveau de transaction.
EXEC SSISDB.internal.Cleanup_Server_execution_keys @cleanup_flag = 1
Informations supplémentaires
SQL Server 2012 Service Pack 2 présente les modifications de conception principales qui aident à résoudre ce problème :
-
Une nouvelle propriété (OPERATION_LOG_ENCRYPTION_LEVEL) est proposée dans SSISDB.catalog_property table pour activer une option pour la sécurité au niveau du projet. Ce paramètre indique à SSIS de créer une clé ou une paire de certificats pour chaque projet et de le réutiliser pour chaque transaction, ce qui a pour effet de réduire le nombre de certificats conservés et nécessaires à être nettoyés à l’avenir. Un nettoyage complet est nécessaire avant de passer de niveau transaction à niveau de projet.
-
Deux procédures stockées sont introduites pour faciliter le transfert du SSISDB existant du niveau transaction au niveau du projet :
-
cleanup_server_log
-
cleanup_server_execution_keys
Pour plus d’informations sur ces deux procédures et sur leur utilisation, accédez au site Web suivant dans la documentation en ligne de SQL Server :
-
Statut
Microsoft a confirmé l’existence de ce problème dans les produits Microsoft répertoriés dans la section « S’applique à ».