Partilhar via


limpar_chaves_execução_servidor_catalogo

Aplica-se a:SQL Server SSIS Integration Runtime em Azure Data Factory

Aplica-se a:SQL Server

Descarta certificados e chaves simétricas do banco de dados SSISDB.

Sintaxe

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

Argumentos

@cleanup_flag [ = ] cleanup_flag
Indica se os certificados e chaves simétricas de nível de execução (1) ou nível de projeto (2) devem ser descartados.

Use o nível de execução (1) somente quando o SERVER_OPERATION_ENCRYPTION_LEVEL estiver definido como PER_EXECUTION (1).

Use o nível do projeto (2) somente quando o SERVER_OPERATION_ENCRYPTION_LEVEL estiver definido como PER_PROJECT (2). Certificados e chaves simétricas são descartados apenas para projetos que foram excluídos e para os quais os logs de operação foram limpos.

@delete_batch_size [ = ] delete_batch_size
O número de chaves e certificados a serem eliminadas. O valor padrão é 1000.

Valores do código de retorno

0 para o sucesso e 1 para o fracasso.

Conjuntos de resultados

Nenhum.

Permissões

Este procedimento armazenado requer uma das seguintes permissões:

  • Permissões READ e EXECUTE no projeto e, se aplicável, permissões READ no ambiente referenciado.

  • Associação à função de banco de dados ssis_admin .

  • Associação à função de servidor sysadmin.

Erros e Avisos

Este procedimento armazenado gera erros nos seguintes cenários:

  • Há uma ou mais operações ativas no banco de dados SSISDB.

  • O banco de dados SSISDB não está no modo de usuário único.

Observações

O SQL Server 2012 Service Pack 2 adicionou a propriedade SERVER_OPERATION_ENCRYPTION_LEVEL à tabela internal.catalog_properties . Esta propriedade tem dois valores possíveis:

  • PER_EXECUTION (1) - O certificado e a chave simétrica usados para proteger parâmetros de execução sensíveis e logs de execução são criados para cada execução. Este é o valor padrão. Você pode enfrentar problemas de desempenho (deadlocks, tarefas de manutenção falhadas, etc...) num ambiente de produção porque certificados/chaves são gerados para cada execução. No entanto, essa configuração fornece um nível mais alto de segurança do que o outro valor (2).

  • PER_PROJECT (2) - O certificado e a chave simétrica utilizados para proteger parâmetros sensíveis são criados para cada projeto. Isso proporciona um desempenho melhor do que o nível PER_EXECUTION porque a chave e o certificado são gerados uma vez para um projeto e não para cada execução.

Você tem que executar o procedimento armazenado catalog.cleanup_server_log antes de poder alterar o SERVER_OPERATION_ENCRYPTION_LEVEL de 1 para 2 (ou) de 2 para 1. Antes de executar este procedimento armazenado, faça o seguinte:

  1. Verifique se o valor da propriedade OPERATION_CLEANUP_ENABLED está definido como TRUE na tabela catalog.catalog_properties (Banco de Dados SSISDB ).

  2. Defina o banco de dados do Integration Services (SSISDB) para o modo de usuário único. No SQL Server Management Studio, inicie a caixa de diálogo Propriedades do Banco de Dados para SSISDB, alterne para a guia Opções e defina a propriedade Restringir Acesso para o modo de usuário único (SINGLE_USER). Depois de executar o procedimento armazenado cleanup_server_log, defina novamente o valor da propriedade para o valor original.

  3. Execute o procedimento armazenado catalog.cleanup_server_log.

  4. Agora, altere o valor da propriedade SERVER_OPERATION_ENCRYPTION_LEVEL na tabela catalog.catalog_properties (Banco de Dados SSISDB ).

  5. Execute o procedimento armazenado catalog.cleanup_server_execution_keys para limpar as chaves de certificados do banco de dados SSISDB. Remover certificados e chaves do banco de dados SSISDB pode levar muito tempo, por isso deve ser executado periodicamente fora dos horários de pico.

    Você pode especificar o escopo ou nível (execução vs. projeto) e o número de chaves a serem excluídas. O tamanho de lote padrão para exclusão é 1000. Quando você define o nível como 2, as chaves e os certificados são excluídos somente se os projetos associados tiverem sido excluídos.

Para obter mais informações, consulte o seguinte artigo da Base de Dados de Conhecimento. CORREÇÃO: Problemas de desempenho ao usar o SSISDB como repositório de implantação no SQL Server 2012

Exemplo

O exemplo a seguir chama o cleanup_server_execution_keys procedimento armazenado.

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