catalog.cleanup_server_log
적용 대상: SQL Server Azure Data Factory의 SSIS Integration Runtime
적용 대상: SQL Server
작업 로그를 정리하여 SSISDB 데이터베이스를 SERVER_OPERATION_ENCRYPTION_LEVEL 속성의 값을 변경할 수 있는 상태로 만듭니다.
구문
catalog.cleanup_server_log
인수
없음
반환 코드 값
성공의 경우 0, 실패의 경우 1입니다.
결과 집합
없음
사용 권한
이 저장 프로시저를 실행하려면 다음 권한 중 하나가 필요합니다.
프로젝트에 대한 READ 및 EXECUTE 권한 및 해당되는 경우 참조된 환경에 대한 READ 권한
ssis_admin 데이터베이스 역할의 멤버 자격
sysadmin 서버 역할에 대한 멤버 자격
오류 및 경고
이 저장 프로시저는 다음 시나리오에서 오류를 발생합니다.
SSISDB 데이터베이스에는 하나 이상의 활성 작업이 있습니다.
SSISDB 데이터베이스가 단일 사용자 모드가 아닙니다.
설명
SQL Server 2012 서비스 팩 2는 internal.catalog_properties 테이블에 SERVER_OPERATION_ENCRYPTION_LEVEL 속성을 추가했습니다. 이 속성에는 두 가지 값이 있습니다.
PER_EXECUTION (1) - 중요한 실행 매개 변수 및 실행 로그를 보호하는 데 사용되는 인증서 및 대칭 키가 각 실행에 대해 만들어집니다. 프로덕션 환경에서 각 실행마다 인증서와 키가 생성되기 때문에 교착 상태나 유지 보수 작업 실패 등의 성능 문제에 직면할 수 있습니다. 하지만 이 설정은 다른 값(2)보다 높은 수준의 보안을 제공합니다.
PER_PROJECT(2) – 중요한 매개 변수를 보호하는 데 사용되는 인증서 및 대칭 키는 각 프로젝트에 대해 만들어집니다. PER_PROJECT (2)가 기본값입니다. 이 설정은 키와 인증서가 각 실행이 아닌 프로젝트에 대해 한 번 생성되므로 PER_EXECUTION 수준보다 더 나은 성능을 제공합니다.
SERVER_OPERATION_ENCRYPTION_LEVEL 2에서 1 또는 1에서 2로 변경하려면 catalog.cleanup_server_log 저장 프로시저를 실행해야 합니다. 이 저장 프로시저를 실행하기 전에 다음을 수행합니다.
catalog.catalog_properties(SSISDB 데이터베이스) 테이블에 OPERATION_CLEANUP_ENABLED 속성의 값이 TRUE로 설정되어 있는지 확인합니다.
Integration Services 데이터베이스(SSISDB)를 단일 사용자 모드로 설정합니다. SQL Server Management Studio에서 SSISDB에 대한 데이터베이스 속성 대화 상자를 시작하고 옵션 탭으로 전환한 다음 액세스 제한 속성을 SINGLE_USER(단일 사용자 모드)로 설정합니다. cleanup_server_log 저장 프로시저를 실행한 후에 속성 값을 다시 원래 값으로 설정합니다.
저장 프로시저 catalog.cleanup_server_log 실행합니다.
계속해서 catalog.catalog_properties(SSISDB 데이터베이스) 테이블에서 SERVER_OPERATION_ENCRYPTION_LEVEL 속성 값을 변경합니다.
catalog.cleanup_server_execution_keys 저장 프로시저를 실행하여 SSISDB 데이터베이스에서 인증서 키를 정리합니다. SSISDB 데이터베이스에서 인증서 및 키를 삭제하는 데 시간이 오래 걸릴 수 있으므로 사용량이 많은 시간에 주기적으로 실행해야 합니다.
범위 또는 수준(실행 및 프로젝트) 및 삭제할 키 수를 지정할 수 있습니다. 삭제할 기본 일괄 처리 크기는 1000입니다. 수준을 2로 설정하면 연결된 프로젝트가 삭제된 경우에만 키와 인증서가 삭제됩니다.
자세한 내용은 수정: SQL Server 2012에서 SSISDB를 배포 저장소로 사용하는 경우 성능 문제에서 다음 기술 문서를 참조하세요.
예시
다음 예제에서는 cleanup_server_log 저장 프로시저를 호출합니다.
USE [SSISDB]
GO
DECLARE@return_value int
EXEC@return_value = [internal].[cleanup_server_log]
SELECT'Return Value' = @return_value
GO