Freigeben über


catalog.cleanup_server_execution_keys

Gilt für:SQL Server SSIS Integration Runtime in Azure Data Factory

Gilt für:SQL Server

Löscht Zertifikate und symmetrische Schlüssel aus der SSISDB-Datenbank.

Syntax

catalog.cleanup_server_execution_keys [ @cleanup_flag = ] cleanup_flag ,  
[ @delete_batch_size = ] delete_batch_size  

Argumente

[ @cleanup_flag = ] cleanup_flag
Gibt an, ob Zertifikate und symmetrische Schlüssel auf Ausführungsebene (1) oder Projektebene (2) gelöscht werden sollen.

Verwenden Sie die Ausführungsebene (1) nur, wenn SERVER_OPERATION_ENCRYPTION_LEVEL auf PER_EXECUTION (1) festgelegt ist.

Verwenden Sie die Projektebene (2) nur, wenn SERVER_OPERATION_ENCRYPTION_LEVEL auf PER_PROJECT (2) festgelegt ist. Zertifikate und symmetrische Schlüssel werden nur für Projekte gelöscht, die gelöscht und für die die Vorgangsprotokolle bereinigt wurden.

[ @delete_batch_size = ] delete_batch_size
Die Anzahl der zu löschenden Schlüssel und Zertifikate. Der Standardwert lautet „1000“.

Rückgabecodewerte

0 für „erfolgreich“ und 1 für „fehlerhaft“.

Resultsets

Keine.

Berechtigungen

Diese gespeicherte Prozedur erfordert eine der folgenden Berechtigungen:

  • READ- und EXECUTE-Berechtigungen für das Projekt und ggf. READ-Berechtigungen für die Umgebung, auf die verwiesen wird.

  • Mitgliedschaft in der Datenbankrolle ssis_admin.

  • Mitgliedschaft in der Serverrolle sysadmin

Fehler und Warnungen

Diese gespeicherte Prozedur löst Fehler in den folgenden Szenarien aus:

  • Es gibt mindestens einen aktiven Vorgang in SSISDB.

  • Die SSIS-Datenbank befindet sich nicht im Einzelbenutzermodus.

Bemerkungen

In SQL Server 2012 Service Pack 2 wird die Eigenschaft SERVER_OPERATION_ENCRYPTION_LEVEL der Tabelle internal.catalog_properties hinzugefügt. Diese Eigenschaft verfügt über zwei mögliche Werte:

  • PER_EXECUTION (1): Das Zertifikat und der symmetrische Schlüssel, die zum Schutz von sensiblen Ausführungsparametern und -protokollen verwendet werden, werden für jede Ausführung erstellt. Dies ist der Standardwert. Möglicherweise entstehen Probleme mit der Leistung (Deadlocks, fehlerhafte Wartungsaufträge usw.) in einer Produktionsumgebung, da für jede Ausführung Zertifikate bzw. Schlüssel generiert werden. Trotzdem bietet diese Einstellung ein höheres Maß an Sicherheit als der andere Wert (2).

  • PER_PROJECT (2): Das Zertifikat und der symmetrische Schlüssel, die zum Schutz von sensiblen Parametern verwendet werden, werden für jedes Projekt erstellt. Diese Einstellung bietet eine bessere Leistung als die PER_EXECUTION-Ebene, da der Schlüssel und das Zertifikat nur einmal pro Projekt anstatt für jede Ausführung generiert werden.

Sie müssen die gespeicherte Prozedur catalog.cleanup_server_log ausführen, bevor Sie SERVER_OPERATION_ENCRYPTION_LEVEL von 1 in 2 oder von 2 in 1 ändern können. Führen Sie die folgenden Schritte aus, bevor Sie diese gespeicherte Prozedur ausführen:

  1. Stellen Sie sicher, dass der Wert der OPERATION_CLEANUP_ENABLED-Eigenschaft in der Tabelle catalog.catalog_properties (SSISDB-Datenbank) auf TRUE festgelegt ist.

  2. Legen Sie die Integration Services-Datenbank (SSISDB) auf den Einzelbenutzermodus fest. Starten Sie in SQL Server Management Studio das Dialogfeld „Datenbankeigenschaften“ für SSISDB, wechseln Sie zur Registerkarte „Optionen“, und legen Sie die Eigenschaft „Zugriff beschränken“ auf den Einzelbenutzermodus fest (SINGLE_USER). Nachdem Sie die gespeicherte Prozedur „cleanup_server_log“ ausgeführt haben, setzen Sie den Eigenschaftswert auf den ursprünglichen Wert zurück.

  3. Führen Sie die gespeicherte Prozedur catalog.cleanup_server_log aus.

  4. Nun können Sie den Wert für die SERVER_OPERATION_ENCRYPTION_LEVEL-Eigenschaft in der Tabelle catalog.catalog_properties (SSISDB-Datenbank) ändern.

  5. Führen Sie die gespeicherte catalog.cleanup_server_execution_keys-Prozedur aus, um Zertifikatschlüssel aus der SSIS-Datenbank zu bereinigen. Das Löschen von Zertifikaten und Schlüssel aus der SSIS-Datenbank nimmt möglicherweise einige Zeit in Anspruch. Aus diesem Grund sollten Sie diesen Vorgang regelmäßig außerhalb der Spitzenzeiten ausführen.

    Sie können auch den Bereich oder die Ebene (Ausführung bzw. Projekt) angeben und festlegen, wie viele Schlüssel gelöscht werden sollen. Die Standardbatchgröße zum Löschen beträgt 1000. Wenn Sie die Ebene auf 2 festlegen, werden die Schlüssel und Zertifikate nur gelöscht, wenn zugehörige Projekte gelöscht wurden.

Weitere Informationen finden Sie in den folgenden Wissensdatenbankartikeln: FIX: Leistungsprobleme bei der Verwendung von SSISDB als Bereitstellungsspeicher in SQL Server 2012

Beispiel

Mithilfe des folgenden Beispiels wird die gespeicherte Prozedur „cleanup_server_execution_keys“ aufgerufen.

USE [SSISDB]  
GO  
  
DECLARE@return_value int  
  
EXEC@return_value = [internal].[cleanup_server_execution_keys]  
@cleanup_flag = 1,  
@delete_batch_size = 500  
  
SELECT'Return Value' = @return_value  
  
GO