catalog.cleanup_server_execution_keys
Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных Azure
Область применения: SQL Server
Удаляет сертификаты и симметричные ключи из базы данных SSISDB.
Синтаксис
catalog.cleanup_server_execution_keys [ @cleanup_flag = ] cleanup_flag ,
[ @delete_batch_size = ] delete_batch_size
Аргументы
[ @cleanup_flag = ] cleanup_flag
Указывает, следует ли удалить сертификаты и симметричные ключи уровня выполнения (1) или уровня проекта (2).
Используйте уровень выполнения (1), только если SERVER_OPERATION_ENCRYPTION_LEVEL имеет значение PER_EXECUTION (1).
Используйте уровень проекта (2), только если SERVER_OPERATION_ENCRYPTION_LEVEL имеет значение PER_PROJECT (2). Сертификаты и симметричные ключи удаляются только для проектов, которые были удалены и журналы операций для которых были очищены.
[ @delete_batch_size = ] delete_batch_size
Число удаляемых ключей и сертификатов. Значение по умолчанию ― 1000.
Значения кода возврата
0 — успех; 1 — ошибка.
Результирующие наборы
Нет.
Разрешения
Эта хранимая процедура требует применения одного из следующих разрешений:
разрешения READ и EXECUTE для проекта, а также, если применимо, разрешение READ для среды, указанной в ссылке.
Членство в роли базы данных ssis_admin.
Членство в роли сервера sysadmin.
Ошибки и предупреждения
Эта хранимая процедура вызывает ошибки в указанных ниже случаях.
Существует одна или несколько активных операций в базе данных SSISDB.
База данных SSISDB не находится в однопользовательском режиме.
Замечания
В SQL Server 2012 с пакетом обновления 2 (SP2) в таблицу internal.catalog_properties добавлено свойство SERVER_OPERATION_ENCRYPTION_LEVEL. Оно имеет два возможных значения.
PER_EXECUTION (1) — сертификат и симметричный ключ, используемые для защиты важных параметров выполнения и журналов выполнения, создаются для каждого выполнения. Это значение по умолчанию. Из-за создания сертификата и ключей для каждого выполнения в рабочей среде могут возникнуть проблемы с производительностью (взаимоблокировки, сбои заданий обслуживания и т. д.). Однако это значение обеспечивает более высокий уровень безопасности, чем другое (2).
PER_PROJECT (2) — сертификат и симметричный ключ, используемые для защиты важных параметров, создаются для каждого проекта. При этом производительность выше, чем при уровне PER_EXECUTION, так как ключ и сертификат создаются для проекта лишь один раз, а не для каждого выполнения.
Прежде чем изменять значение SERVER_OPERATION_ENCRYPTION_LEVEL с 1 на 2 или с 2 на 1, необходимо выполнить хранимую процедуру catalog.cleanup_server_log. Перед ее запуском выполните указанные ниже действия.
Убедитесь, что свойство OPERATION_CLEANUP_ENABLED в таблице catalog.catalog_properties (база данных SSISDB) имеет значение TRUE.
Переведите базу данных служб Integration Services (SSISDB) в однопользовательский режим. В SQL Server Management Studio откройте диалоговое окно "Свойства базы данных" для базы данных SSISDB, перейдите на вкладку "Параметры" и в качестве значения свойства "Ограничение доступа" выберите однопользовательский режим (SINGLE_USER). После выполнения хранимой процедуры cleanup_server_log восстановите исходное значение свойства.
Выполните хранимую процедуру catalog.cleanup_server_log.
Теперь измените значение свойства SERVER_OPERATION_ENCRYPTION_LEVEL в таблице catalog.catalog_properties (база данных SSISDB).
Выполните хранимую процедуру catalog.cleanup_server_execution_keys, чтобы удалить ключи и сертификаты из базы данных SSISDB. Удаление сертификатов и ключей из базы данных SSISDB может занять много времени, поэтому эту операцию следует проводить в периоды низкой нагрузки.
Вы можете указать область действия или уровень (выполнение или проект) и число удаляемых ключей. Размер удаляемого пакета по умолчанию — 1000. Если задан уровень 2, ключи и сертификаты удаляются только при условии, что удалены связанные проекты.
Дополнительные сведения см. в следующей статье базы знаний: Устранение проблем с производительностью при использовании базы данных SSISDB в качестве хранилища развертывания в SQL Server 2012
Пример
В этом примере вызывается хранимая процедура cleanup_server_execution_keys.
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