catalog.cleanup_server_execution_keys
Drops certificates and symmetric keys from the SSISDB database.
Syntax
clean_server_execution_keys [ @cleanup_flag = ] cleanup_flag
[ @delete_batch_size = ] delete_batch_size
Arguments
[ @cleanup\_flag = ] cleanup_flag
Indicates whether execution level (1) or project level (2) certificates/symmetric keys to be dropped.Use execution level (1) only when the SERVER_OPERATION_ENCRYPTION_LEVEL is set to PER_PROJECT (2).
Use project level (2) only when the SERVER_OPERATION_ENCRYPTION_LEVEL is set to PER_EXECUTION (1) or SERVER_OPERARATION_ENCRYPTION_LEVEL is set to (2) but the projects have been deleted and all the operation logs for the projects have been cleaned.
[ @delete\_batch\_size = ] delete_batch_size
Number of keys/certificates to be dropped. The default value is 1000.
Remarks
The service pack 2 for SQL Server 2012 adds a new property named SERVER_OPERATION_ENCRYPTION_LEVEL property to the internal.catalog_properties table. This property has two possible values:
PER_EXECUTION (1) – The certificate and symmetric key used for protecting sensitive execution parameters and execution logs are created for each execution. This is the default value. . You may run into performance issues (deadlocks, failed maintenance jobs etc…) in a production environment because certificate/keys are generated for each execution. This provides a higher level of security than the other value (2).
PER_PROJECT (2) – The certificate and symmetric key used for protecting sensitive parameters are created for each project. This gives you a better performance than the PER_EXECUTION level because the key and certificate are generated once for a project rather than for each execution.
You must execute the catalog.cleanup_server_log stored procedure before changing the SERVER_OPERATION_ENCRYPTION_LEVEL from 1 to 2 (or) from 2 to 1. Before executing this stored procedure, do the following:
Ensure that the value of the property OPERATION_CLEANUP_ENABLED is set to TRUE in the catalog.catalog_properties (SSISDB Database) table.
Set the Integration Services database (SSISDB) to be in single-user mode. In SQL Server Management Studio, launch Database Properties dialog box for SSISDB, switch to the Options tab, and set the Restrict Access property to single-user mode (SINGLE_USER). After you executed the cleanup_server_log stored procedure, set the property value back to the original value.
Execute the catalog.cleanup_server_log stored procedure.
Now, go ahead and change the value for the SERVER_OPERATION_ENCRYPTION_LEVEL property in the catalog.catalog_properties (SSISDB Database) table.
Execute the catalog.cleanup_server_execution_keys stored procedure to clean up certificates keys from the SSISDB database. Dropping certificates/keys from the SSISDB database may take a long time, so it should be run periodically during off-peak times.
You can specify the scope or level (execution vs. project) and number of keys to be deleted. The default batch size for deletion is 1000. When you set the level to 2, the keys and certificates are deleted only if the associated projects have been deleted.
See the following Knowledge Base article for additional details: 2972285.
Example
The following example calls cleanup_server_execution_keys stored procedure.
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
Return Code Value
0 for success
Result Sets
None
Permissions
This stored procedure requires one of the following permissions:
READ and EXECUTE permissions on the project and, if applicable, READ permissions on the referenced environment
Membership to the ssis_admin database role
Membership to the sysadmin server role