SSIS 카탈로그

적용 대상: Azure Data Factory의 SQL Server SSIS Integration Runtime

SSISDB 카탈로그는 Integration Services 서버에 배포한 SSIS(Integration Services) 프로젝트를 사용하기 위한 핵심 요소입니다. 예를 들어 프로젝트 및 패키지 매개 변수를 설정하고, 패키지에 대한 런타임 값을 지정하도록 환경을 구성하고, 패키지를 실행 및 문제 해결하고, Integration Services 서버 작업을 관리합니다.

참고 항목

이 문서에서는 일반적인 SSIS 카탈로그 및 온-프레미스에서 실행되는 SSIS 카탈로그를 설명합니다. Azure SQL Database에서 SSIS 카탈로그를 만들고 Azure에서 SSIS 패키지를 배포하고 실행할 수도 있습니다. 자세한 내용은 SQL Server Integration Services 워크로드를 클라우드로 리프트 앤 시프트를 참조하세요.

Linux에서 SSIS 패키지를 실행할 수도 있지만 Linux에서는 SSIS 카탈로그가 지원되지 않습니다. 자세한 내용은 Linux에서 SSIS를 사용하여 데이터 추출, 변환 및 로드를 참조하세요.

SSISDB 카탈로그에 저장된 개체에는 프로젝트, 패키지, 매개 변수, 환경 및 운영 기록이 포함됩니다.

SSISDB 데이터베이스에서 뷰를 쿼리하여 SSISDB 카탈로그에 저장된 개체, 설정 및 작업 데이터를 검사할 수 있습니다. SSISDB 데이터베이스에서 저장 프로시저를 호출하거나 SSISDB 카탈로그의 UI를 사용하여 개체를 관리합니다. 대부분의 경우 UI에서 또는 저장 프로시저를 호출하여 동일한 작업을 수행할 수 있습니다.

SSISDB 데이터베이스를 유지 관리하려면 사용자 데이터베이스 관리를 위한 표준 엔터프라이즈 정책을 적용하는 것이 좋습니다. 기본 테넌트 계획을 만드는 방법에 대한 자세한 내용은 유지 관리 계획을 참조하세요.

SSISDB 카탈로그 및 SSISDB 데이터베이스는 Windows PowerShell을 지원합니다. Windows PowerShell과 SQL Server를 함께 사용하는 방법은 SQL Server PowerShell을 참조하십시오. Windows PowerShell을 사용하여 프로젝트 배포와 같은 작업을 완료하는 방법에 대한 예제는 blogs.msdn.com SQL Server 2012의 블로그 항목, SSIS 및 PowerShell을 참조하세요.

작업 데이터를 보는 방법에 대한 자세한 내용은 실행 중인 패키지 및 기타 작업 모니터링을 참조 하세요.

SQL Server 데이터베이스 엔진 연결한 다음 개체 탐색기 Integration Services 카탈로그 노드를 확장하여 SQL Server Management Studio의 SSISDB 카탈로그에 액세스합니다. 개체 탐색기 데이터베이스 노드를 확장하여 SQL Server Management Studio의 SSISDB 데이터베이스에 액세스합니다.

참고 항목

SSISDB 데이터베이스의 이름을 바꿀 수 없습니다.

참고 항목

SSISDB 데이터베이스가 연결된 SQL Server 인스턴스가 중지되거나 응답하지 않으면 ISServerExec.exe 프로세스가 종료됩니다. 메시지가 Windows 이벤트 로그에 기록됩니다.

SQL Server 리소스가 클러스터 장애 조치(failover)의 일부로 장애 조치(failover)되는 경우 실행 중인 패키지는 다시 시작되지 않습니다. 검사점을 사용하여 패키지를 다시 시작할 수 있습니다. 자세한 내용은 검사점을 사용하여 패키지 다시 시작을 참조하세요.

특징 및 기능

카탈로그 개체 식별자

카탈로그에서 새 개체를 만들 때 개체에 이름을 할당합니다. 개체 이름은 식별자입니다. SQL Server는 식별자에서 사용할 수 있는 문자에 대한 규칙을 정의합니다. 다음 개체의 이름은 식별자 규칙을 따라야 합니다.

  • 폴더

  • Project

  • Environment

  • 매개 변수

  • 환경 변수

폴더, 프로젝트, 환경

폴더, 프로젝트 또는 환경의 이름을 바꿀 때 고려할 규칙은 다음과 같습니다.

  • ASCII/유니코드 문자 1~31, 따옴표(“), 보다 작음(<), 보다 큼(>), 파이프(|), 백스페이스(\b), null(\0) 및 탭(\t)은 올바른 문자가 아닙니다.

  • 이름은 선행 또는 후행 공백을 포함할 수 없습니다.

  • @는 첫 번째 문자로 허용되지 않지만 후속 문자는 @를 사용할 수 있습니다.

  • 이름의 길이는 0보다 크고 128보다 작거나 같아야 합니다.

매개 변수

매개 변수 이름을 지정할 때 고려할 규칙은 다음과 같습니다.

  • 이름의 첫 번째 문자는 유니코드 표준 2.0에 정의된 문자 또는 밑줄(_)이어야 합니다.

  • 이후 문자는 유니코드 표준 2.0에 정의된 문자 또는 숫자 또는 밑줄(_)일 수 있습니다.

환경 변수

환경 변수의 이름을 지정할 때 다음 규칙을 고려합니다.

  • ASCII/유니코드 문자 1~31, 따옴표(“), 보다 작음(<), 보다 큼(>), 파이프(|), 백스페이스(\b), null(\0) 및 탭(\t)은 올바른 문자가 아닙니다.

  • 이름은 선행 또는 후행 공백을 포함할 수 없습니다.

  • @는 첫 번째 문자로 허용되지 않지만 후속 문자는 @를 사용할 수 있습니다.

  • 이름의 길이는 0보다 크고 128보다 작거나 같아야 합니다.

  • 이름의 첫 번째 문자는 유니코드 표준 2.0에 정의된 문자 또는 밑줄(_)이어야 합니다.

  • 이후 문자는 유니코드 표준 2.0에 정의된 문자 또는 숫자 또는 밑줄(_)일 수 있습니다.

카탈로그 구성

카탈로그 속성을 조정하여 카탈로그의 동작 방식을 미세 조정합니다. 카탈로그 속성은 중요한 데이터를 암호화하는 방법과 작업 및 프로젝트 버전 관리 데이터를 유지하는 방법을 정의합니다. 카탈로그 속성을 설정하려면 카탈로그 속성 대화 상자를 사용하거나 catalog.configure_catalog(SSISDB 데이터베이스) 저장 프로시저를 호출합니다. 속성을 보려면 대화 상자를 사용하거나 catalog.catalog_properties(SSISDB 데이터베이스)를 쿼리합니다. 개체 탐색기에서 SSISDB를 마우스 오른쪽 단추로 클릭하여 대화 상자에 액세스할 수 있습니다.

작업 및 프로젝트 버전 정리

카탈로그의 많은 작업에 대한 상태 데이터는 내부 데이터베이스 테이블에 저장됩니다. 예를 들어 카탈로그는 패키지 실행 및 프로젝트 배포의 상태 추적합니다. 작업 데이터의 크기를 기본 위해 SQL Server Management Studio의 SSIS 서버 유지 관리 작업을 사용하여 이전 데이터를 제거합니다. 이 SQL Server 에이전트 작업은 Integration Services가 설치될 때 만들어집니다.

카탈로그의 동일한 폴더에 동일한 이름으로 배포하여 Integration Services 프로젝트를 업데이트하거나 다시 배포할 수 있습니다. 기본적으로 프로젝트를 다시 배포할 때마다 SSISDB 카탈로그에서 이전 버전의 프로젝트를 보존합니다. 작업 데이터의 크기를 기본 위해 SSIS 서버 유지 관리 작업을 사용하여 이전 버전의 프로젝트를 제거합니다.

SSIS 서버 유지 관리 작업을 실행하기 위해 SSIS는 SQL Server 로그인 ##MS_SSISServerCleanupJobLogin##을 만듭니다. 이 로그인은 SSIS에서 내부용으로만 사용됩니다.

다음 SSISDB 카탈로그 속성은 이 SQL Server 에이전트 작업의 동작 방식을 정의합니다. 카탈로그 속성 대화 상자를 사용하거나 catalog.catalog_properties(SSISDB 데이터베이스)catalog.configure_catalog(SSISDB 데이터베이스)를 사용하여 속성을 보고 수정할 수 있습니다.

주기적으로 로그 정리
작업 클린 작업에 대한 작업 단계는 이 속성이 True설정되면 실행됩니다.

보존 기간(일)
허용되는 작업 데이터의 최대 기간(일)을 정의합니다. 이전 데이터가 제거됩니다.

최소값은 1일입니다. 최대값은 SQL Server int 데이터의 최대값으로만 제한됩니다. 이 데이터 형식에 대한 내용은 int, bigint, smallint 및 tinyint(Transact-SQL)를 참조하세요.

주기적으로 이전 버전 제거
프로젝트 버전 클린업에 대한 작업 단계는 이 속성이 True설정되면 실행됩니다.

프로젝트당 최대 버전 수
카탈로그에 저장되는 프로젝트 버전 수를 정의합니다. 이전 버전의 프로젝트는 제거됩니다.

암호화 알고리즘

암호화 알고리즘 속성은 중요한 매개 변수 값을 암호화하는 데 사용되는 암호화 유형을 지정합니다. 다음 유형의 암호화 중에서 선택할 수 있습니다.

  • AES_256(기본값)

  • AES_192

  • AES_128

  • Desx

  • TRIPLE_DES_3KEY

  • TRIPLE_DES

  • DES

Integration Services 프로젝트를 Integration Services 서버에 배포하는 경우 카탈로그는 패키지 데이터와 중요한 값을 자동으로 암호화합니다. 또한 카탈로그는 데이터를 검색할 때 자동으로 암호를 해독합니다. SSISDB 카탈로그는 ServerStorage 보호 수준을 사용합니다. 자세한 내용은 Access Control for Sensitive Data in Packages을 참조하세요.

암호화 알고리즘을 변경하는 것은 시간이 많이 걸리는 작업입니다. 먼저 서버는 이전에 지정한 알고리즘을 사용하여 모든 구성 값의 암호를 해독해야 합니다. 그런 다음, 서버는 새 알고리즘을 사용하여 값을 다시 암호화해야 합니다. 이 시간 동안에는 서버에 다른 Integration Services 작업이 있을 수 없습니다. 따라서 Integration Services 작업을 중단 없이 지속되게 하려면 암호화 알고리즘이 Management Studio의 대화 상자에서 읽기 전용 값으로 지정되어야 합니다.

암호화 알고리즘 속성 설정을 변경하려면 SSISDB 데이터베이스를 단일 사용자 모드로 설정한 다음 catalog.configure_catalog 저장 프로시저를 호출합니다. property_name 인수에 ENCRYPTION_ALGORITHM 사용합니다. 지원되는 속성 값은 catalog.catalog_properties(SSISDB 데이터베이스)를 참조하세요. 저장 프로시저에 대한 자세한 내용은 catalog.configure_catalog(SSISDB 데이터베이스)를 참조하세요.

단일 사용자 모드에 대한 자세한 내용은 데이터베이스를 단일 사용자 모드로 설정을 참조 하세요. SQL Server의 암호화 및 암호화 알고리즘에 대한 자세한 내용은 SQL Server 암호화 섹션의 항목을 참조하세요.

데이터베이스 마스터 키는 암호화에 사용됩니다. 이 키는 카탈로그를 만들 때 생성됩니다.

다음 표에는 카탈로그 속성 대화 상자에 표시된 속성 이름과 데이터베이스 뷰의 해당 속성이 나와 있습니다.

속성 이름(카탈로그 속성 대화 상자) 속성 이름(데이터베이스 뷰)
암호화 알고리즘 이름 ENCRYPTION_ALGORITHM
주기적으로 로그 정리 OPERATION_CLEANUP_ENABLED​
보존 기간(일) RETENTION_WINDOW
주기적으로 이전 버전 제거 VERSION_CLEANUP_ENABLED
프로젝트당 최대 버전 수 MAX_PROJECT_VERSIONS
서버 전체 기본 로깅 수준 SERVER_LOGGING_LEVEL

사용 권한

프로젝트, 환경 및 패키지는 보안 개체인 폴더에 포함됩니다. MANAGE_OBJECT_PERMISSIONS 권한을 포함하여 폴더에 권한을 부여할 수 있습니다. MANAGE_OBJECT_PERMISSIONS는 ssis_admin 역할에 대한 사용자 멤버 자격을 부여하지 않고도 사용자에게 폴더 내용에 대한 관리를 위임할 수 있습니다. 프로젝트, 환경 및 작업에 사용 권한을 부여할 수도 있습니다. 작업에는 Integration Services 초기화, 프로젝트 배포, 실행 만들기 및 시작, 프로젝트 및 패키지 유효성 검사 및 SSISDB 카탈로그 구성이 포함됩니다.

데이터베이스 역할에 대한 자세한 내용은 데이터베이스 수준 역할을 참조 하세요.

SSISDB 카탈로그는 ddl_클린up_object_permissions DDL 트리거를 사용하여 SSIS 보안 개체에 대한 권한 정보의 무결성을 적용합니다. 이 트리거는 데이터베이스 사용자, 데이터베이스 역할 또는 데이터베이스 애플리케이션 역할과 같은 데이터베이스 보안 주체가 SSISDB 데이터베이스에서 제거될 때 발생합니다.

보안 주체가 다른 보안 주체에 대한 사용 권한을 부여하거나 거부한 경우 보안 주체를 제거하기 전에 피부여자가 부여한 사용 권한을 취소합니다. 그렇지 않으면 시스템에서 보안 주체를 제거하려고 하면 오류 메시지가 반환됩니다. 트리거는 데이터베이스 보안 주체가 피부여자인 모든 권한 레코드를 제거합니다.

SSISDB 데이터베이스에서 데이터베이스 보안 주체를 삭제한 후에 분리된 권한 레코드가 없도록 하므로 트리거를 사용하지 않도록 설정하지 않는 것이 좋습니다.

사용 권한 관리

SQL Server Management Studio UI, 저장 프로시저 및 네임스페이 Microsoft.SqlServer.Management.IntegrationServices 스를 사용하여 권한을 관리할 수 있습니다.

SQL Server Management Studio UI를 사용하여 사용 권한을 관리하려면 다음 대화 상자를 사용합니다.

Transact-SQL을 사용하여 권한을 관리하려면 catalog.grant_permission(SSISDB 데이터베이스), catalog.deny_permission(SSISDB 데이터베이스)catalog.revoke_permission(SSISDB 데이터베이스)을 참조하세요. 모든 개체의 현재 보안 주체에 대한 유효한 권한을 보려면 catalog.effective_object_permissions(SSISDB 데이터베이스)를 쿼리합니다. 이 항목에서는 다양한 유형의 권한에 대한 설명을 제공합니다. 사용자에게 명시적으로 할당된 권한을 보려면 catalog.explicit_object_permissions(SSISDB 데이터베이스)를 쿼리합니다.

폴더

폴더에는 SSISDB 카탈로그의 프로젝트 및 환경이 하나 이상 포함됩니다. catalog.folders(SSISDB 데이터베이스) 뷰를 사용하여 카탈로그의 폴더에 대한 정보에 액세스할 수 있습니다. 다음 저장 프로시저를 사용하여 폴더를 관리할 수 있습니다.

프로젝트 및 패키지

각 프로젝트에 여러 패키지를 포함할 수 있습니다. 프로젝트와 패키지 모두 매개 변수와 환경에 대한 참조를 포함할 수 있습니다. Configure Dialog Box를 사용하여 매개 변수 및 환경 참조에 액세스할 수 있습니다.

다음 저장 프로시저를 호출하여 다른 프로젝트 작업을 수행할 수 있습니다.

이러한 보기는 패키지, 프로젝트 및 프로젝트 버전에 대한 세부 정보를 제공합니다.

매개 변수

매개 변수를 사용하여 패키지 실행 시 패키지 속성에 값을 할당합니다. 패키지 또는 프로젝트 매개 변수의 값을 설정하고 값을 지우려면 catalog.set_object_parameter_value(SSISDB 데이터베이스)catalog.clear_object_parameter_value(SSISDB 데이터베이스)를 호출합니다. 실행 인스턴스에 대한 매개 변수 값을 설정하려면 catalog.set_execution_parameter_value(SSISDB 데이터베이스)를 호출합니다. catalog.get_parameter_values(SSISDB 데이터베이스)를 호출하여 기본 매개 변수 값을 검색할 수 있습니다.

이러한 뷰는 모든 패키지 및 프로젝트에 대한 매개 변수와 실행 인스턴스에 사용되는 매개 변수 값을 보여 줍니다.

서버 환경, 서버 변수 및 서버 환경 참조

서버 환경에는 서버 변수가 포함됩니다. 변수 값은 Integration Services 서버에서 패키지를 실행하거나 유효성을 검사할 때 사용할 수 있습니다.

다음 저장 프로시저를 사용하여 환경 및 변수에 대한 다른 많은 관리 태스크를 수행할 수 있습니다.

catalog.set_environment_variable_protection(SSISDB 데이터베이스) 저장 프로시저를 호출하여 변수에 대한 민감도 비트를 설정할 수 있습니다.

서버 변수의 값을 사용하려면 프로젝트와 서버 환경 간의 참조를 지정합니다. 다음 저장 프로시저를 사용하여 참조를 만들고 삭제할 수 있습니다. 환경이 프로젝트와 동일한 폴더에 있는지 또는 다른 폴더에 배치할 수 있는지 여부를 나타낼 수도 있습니다.

환경 및 변수에 대한 자세한 내용은 이러한 뷰를 쿼리합니다.

실행 및 유효성 검사

실행은 패키지 실행의 인스턴스입니다. catalog.create_execution(SSISDB 데이터베이스)catalog.start_execution(SSISDB 데이터베이스)을 호출하여 실행을 만들고 시작합니다. 실행 또는 패키지/프로젝트 유효성 검사를 중지하려면 catalog.stop_operation(SSISDB 데이터베이스)을 호출합니다.

실행 중인 패키지가 일시 중지되고 덤프 파일을 만들도록 하려면 catalog.create_execution_dump 저장 프로시저를 호출합니다. 덤프 파일은 실행 문제를 해결하는 데 도움이 되는 패키지 실행에 대한 정보를 제공합니다. 덤프 파일 생성 및 구성에 대한 자세한 내용은 패키지 실행을 위해 덤프 파일 생성을 참조하세요.

실행, 유효성 검사, 작업 중에 기록된 메시지 및 오류와 관련된 컨텍스트 정보에 대한 자세한 내용은 이러한 뷰를 쿼리합니다.

catalog.validate_project(SSISDB 데이터베이스)catalog.validate_package(SSISDB 데이터베이스) 저장 프로시저를 호출하여 프로젝트와 패키지의 유효성을 검사할 수 있습니다. catalog.validations(SSISDB 데이터베이스) 뷰는 유효성 검사에서 고려되는 서버 환경 참조, 유효성 검사가 종속성 유효성 검사인지 또는 전체 유효성 검사인지 여부, 패키지를 실행하는 데 32비트 런타임이 사용되는지 또는 64비트 런타임이 사용되는지 여부 등에 대한 자세한 정보를 제공합니다.

SSIS 카탈로그 만들기

SQL Server Data Tools에서 패키지를 디자인하고 테스트한 후 패키지를 포함하는 프로젝트를 Integration Services 서버에 배포할 수 있습니다. Integration Services 서버에 프로젝트를 배포하려면 먼저 서버에 SSISDB 카탈로그가 포함되어야 합니다. SQL Server 2012(11.x)에 대한 설치 프로그램은 카탈로그를 자동으로 만들지 않습니다. 다음 지침을 사용하여 카탈로그를 수동으로 만들어야 합니다.

SQL Server Management Studio에서 SSISDB 카탈로그를 만들 수 있습니다. Windows PowerShell을 사용하여 프로그래밍 방식으로 카탈로그를 만들 수도 있습니다.

SQL Server Management Studio에서 SSISDB 카탈로그를 만들려면

  1. SQL Server Management Studio를 엽니다.

  2. SQL Server 데이터베이스 엔진 커넥트.

  3. 개체 탐색기 서버 노드를 확장하고 Integration Services 카탈로그 노드를 마우스 오른쪽 단추로 클릭한 다음 카탈로그 만들기를 클릭합니다.

  4. CLR 통합 사용을 클릭합니다.

    카탈로그는 CLR 저장 프로시저를 사용합니다.

  5. SQL Server 시작 시 Integration Services 저장 프로시저 자동 실행 을 클릭하여 SSIS 서버 인스턴스를 다시 시작할 때마다 catalog.startup 저장 프로시저를 실행하도록 지정합니다.

    저장 프로시저에서는 SSISDB 카탈로그에 대한 작업의 상태를 유지 관리합니다. SSIS 서버 인스턴스가 중단된 경우 실행 중인 패키지의 상태 수정합니다.

  6. 암호를 입력한 다음 확인을 클릭합니다.

    암호는 카탈로그 데이터를 암호화하는 데 사용되는 데이터베이스 마스터 키를 보호합니다. 암호를 안전한 위치에 저장합니다. 데이터베이스 마스터 키도 백업하는 것이 좋습니다. 자세한 내용은 Back Up a Database Master Key을 참조하세요.

프로그래밍 방식으로 SSISDB 카탈로그를 만들려면

  1. 다음 PowerShell 스크립트를 실행합니다.

    # Load the IntegrationServices Assembly  
    [Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Management.IntegrationServices")  
    
    # Store the IntegrationServices Assembly namespace to avoid typing it every time  
    $ISNamespace = "Microsoft.SqlServer.Management.IntegrationServices"  
    
    Write-Host "Connecting to server ..."  
    
    # Create a connection to the server  
    $sqlConnectionString = "Data Source=localhost;Initial Catalog=master;Integrated Security=SSPI;"  
    $sqlConnection = New-Object System.Data.SqlClient.SqlConnection $sqlConnectionString  
    
    # Create the Integration Services object  
    $integrationServices = New-Object $ISNamespace".IntegrationServices" $sqlConnection  
    
    # Provision a new SSIS Catalog  
    $catalog = New-Object $ISNamespace".Catalog" ($integrationServices, "SSISDB", "P@assword1")  
    $catalog.Create()  
    
    

    Windows PowerShell 및 Microsoft.SqlServer.Management.IntegrationServices 네임스페이스를 사용하는 방법의 예를 더 보려면 blogs.msdn.com에서 SQL Server 2012의 SSIS 및 PowerShell 블로그 항목을 참조하세요. 네임스페이스 및 코드 예제에 대한 개요는 blogs.msdn.com SSIS 카탈로그 관리 개체 모델 엿보기 블로그 항목을 참조하세요.

카탈로그 속성 대화 상자

카탈로그 속성 대화 상자를 사용하여 SSISDB 카탈로그를 구성합니다. 카탈로그 속성은 중요한 데이터를 암호화하는 방법, 작업 및 프로젝트 버전 관리 데이터가 보존되는 방법 및 유효성 검사 작업의 시간 초과 시간을 정의합니다. SSISDB 카탈로그는 Integration Services 프로젝트, 패키지, 매개 변수 및 환경에 대한 중앙 스토리지 및 관리 지점입니다.

뷰에서 catalog.catalog_properties 카탈로그 속성을 보고 저장 프로시저를 사용하여 catalog.configure_catalog 속성을 설정할 수도 있습니다. 자세한 내용은 catalog.catalog_properties(SSISDB 데이터베이스)catalog.configure_catalog(SSISDB 데이터베이스)를 참조하세요.

수행 작업

카탈로그 속성 대화 상자 열기

  1. SQL Server Management Studio를 엽니다.

  2. 커넥트 Microsoft SQL Server 데이터베이스 엔진.

  3. 개체 탐색기에서 Integration Services 노드를 확장하고 SSISDB를 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.

옵션 구성

옵션

다음 표에서는 대화 상자의 특정 속성과 catalog.catalog_properties 보기의 해당 속성에 대해 설명합니다.

속성 이름(카탈로그 속성 대화 상자) 속성 이름(catalog.catalog_properties 보기) 설명
암호화 알고리즘 이름 ENCRYPTION_ALGORITHM 카탈로그의 중요한 매개 변수 값을 암호화하는 데 사용되는 암호화 유형을 지정합니다. 가능한 값은 다음과 같습니다.

DES

TRIPLE_DES

TRIPLE_DES_3KEY

DESPX

AES_128

AES_192

AES_256(기본값)
프로젝트당 최대 버전 수 MAX_PROJECT_VERSIONS 카탈로그에 저장되는 프로젝트의 버전 수를 지정합니다. 최대값을 초과하는 이전 버전의 프로젝트는 프로젝트 버전 클린up 작업이 실행될 때 제거됩니다.
주기적으로 로그 정리 OPERATION_CLEANUP_ENABLED 속성을 True로 설정하여 SQL Server 에이전트 작업, 작업 클린up이 실행되었음을 나타냅니다. 그렇지 않으면 이 속성을 False로 설정합니다.
보존 기간(일) RETENTION_WINDOW 허용되는 작업 데이터의 최대 기간(일)을 지정합니다. 지정된 일 수보다 오래된 데이터는 SQL 에이전트 작업, 작업 클린up에 의해 제거됩니다.

SSIS 카탈로그 백업, 복원 및 이동

적용 대상: SQL Server 2016(13.x) 이상 버전 Not supported. Azure SQL DatabaseNot supported.Azure Synapse Analytics Analytics Not supported. Platform System(PDW)

SQL Server 2019 Integration Services(SSIS)에는 SSISDB 데이터베이스가 포함되어 있습니다. SSISDB 데이터베이스에서 뷰를 쿼리하여 SSISDB 카탈로그에 저장된 개체, 설정 및 작업 데이터를 검사할 수 있습니다. 이 항목에서는 데이터베이스를 백업하고 복원하기 위한 지침을 제공합니다.

SSISDB 카탈로그는 Integration Services 서버에 배포한 패키지를 저장합니다. 카탈로그에 대한 자세한 내용은 SSIS 카탈로그를 참조하세요.

SSIS 데이터베이스를 백업하려면

  1. SQL Server Management Studio를 열고 SQL Server 인스턴스에 연결합니다.

  2. BACKUP MASTER KEY Transact-SQL 문을 사용하여 SSISDB 데이터베이스에 대한 마스터 키를 백업합니다. 키는 지정한 파일에 저장됩니다. 암호를 사용하여 파일의 마스터 키를 암호화합니다.

    문에 대한 자세한 내용은 BACKUP MASTER KEY(Transact-SQL)를 참조하세요.

    다음 예제에서는 마스터 키를 파일로 c:\temp directory\RCTestInstKey 내보냅니다. 암호는 LS2Setup! 마스터 키를 암호화하는 데 사용됩니다.

    backup master key to file = 'c:\temp\RCTestInstKey'  
           encryption by password = 'LS2Setup!'  
    
    
  3. SQL Server Management Studio의 Backup 데이터베이스 대화 상자를 사용하여 SSISDB 데이터베이스 를 백업합니다. 자세한 내용은 방법: 데이터베이스 백업(SQL Server Management Studio)을 참조하세요.

  4. 다음 작업을 수행하여 ##MS_SSISServerCleanupJobLogin##에 대한 CREATE LOGIN 스크립트를 생성합니다. 자세한 내용은 CREATE LOGIN(Transact-SQL)을 참조하세요.

    1. SQL Server Management Studio의 개체 탐색기 보안 노드를 확장한 다음 로그인 노드를 확장합니다.

    2. ##MS_SSISServerCleanupJobLogin##을 마우스 오른쪽 단추로 클릭한 후 로그인 스크립팅>CREATE>새 쿼리 편집기 창을 클릭합니다.

  5. SSISDB 카탈로그가 만들어지지 않은 SQL Server 인스턴스로 SSISDB 데이터베이스를 복원하는 경우 다음 작업을 수행하여 sp_ssis_startup 대한 CREATE PROCEDURE 스크립트를 생성합니다. 자세한 내용은 CREATE PROCEDURE(Transact-SQL)를 참조하세요.

    1. 개체 탐색기 데이터베이스 노드를 확장한 다음 마스터>프로그래밍 기능>저장 프로시저 노드를 확장합니다.

    2. dbo.sp_ssis_startup 마우스 오른쪽 단추로 클릭한 다음 저장 프로시저 스크립트를>새로 만들기 쿼리 편집기 창으로>클릭합니다.

  6. SQL Server 에이전트 시작되었는지 확인합니다.

  7. SSISDB 카탈로그가 만들어지지 않은 SQL Server 인스턴스로 SSISDB 데이터베이스를 복원하는 경우 다음 작업을 수행하여 SSIS 서버 유지 관리 작업에 대한 스크립트를 생성합니다. 스크립트는 SSISDB 카탈로그를 만들 때 SQL Server 에이전트 자동으로 만들어집니다. 이 작업은 보존 기간이 지난 작업 로그를 정리하고 오래된 프로젝트 버전을 제거하는 데 도움을 줍니다.

    1. 개체 탐색기 SQL Server 에이전트 노드를 확장한 다음 작업 노드를 확장합니다.

    2. SSIS 서버 유지 관리 작업을 마우스 오른쪽 단추로 클릭한 다음 스크립트 작업을 새로 만들기>쿼리 편집기 창으로>클릭합니다.

SSIS 데이터베이스를 복원하려면

  1. SSISDB 카탈로그가 만들어지지 않은 SQL Server 인스턴스로 SSISDB 데이터베이스를 복원하는 경우 저장 프로시저를 실행 sp_configure 하여 clr(공용 언어 런타임)을 사용하도록 설정합니다. 자세한 내용은 sp_configure(Transact-SQL)clr enabled 옵션을 참조하세요.

    use master   
           sp_configure 'clr enabled', 1  
           reconfigure  
    
    
  2. SSISDB 카탈로그가 만들어지지 않은 SQL Server 인스턴스로 SSISDB 데이터베이스를 복원하는 경우 비대칭 키에서 비대칭 키와 로그인을 만들고 로그인에 UNSAFE 권한을 부여합니다.

    Create Asymmetric Key MS_SQLEnableSystemAssemblyLoadingKey  
           FROM Executable File = 'C:\Program Files\Microsoft SQL Server\YourSQLServerDefaultCompatibilityLevel\DTS\Binn\Microsoft.SqlServer.IntegrationServices.Server.dll'  
    

    SQL Server 기본 호환성 수준 목록에서 YourSQLServerDefaultCompatibilityLevel 값을 찾을 수 있습니다.

    Integration Services CLR 저장 프로시저는 로그인에 MICROSOFT Win32 API와 같은 제한된 리소스에 대한 추가 액세스 권한이 필요하기 때문에 UNSAFE 권한을 로그인에 부여해야 합니다. UNSAFE 코드 권한에 대한 자세한 내용은 Creating an Assembly를 참조하십시오.

    Create Login ##MS_SQLEnableSystemAssemblyLoadingUser## FROM Asymmetric Key MS_SQLEnableSystemAssemblyLoadingKey   
    Grant Unsafe Assembly to ##MS_SQLEnableSystemAssemblyLoadingUser##    
    
  3. SQL Server Management Studio의 데이터베이스 복원 대화 상자를 사용하여 백업에서 SSISDB 데이터베이스 를 복원합니다. 자세한 내용은 아래 항목을 참조하세요.

  4. SSIS 데이터베이스를 백업하려면 에서 ##MS_SSISServerCleanupJobLogin##, sp_ssis_startup 및 SSIS 서버 유지 관리 작업에 대해 만든 스크립트를 실행합니다. SQL Server 에이전트가 시작되었는지 확인합니다.

  5. 다음 문을 실행하여 sp_ssis_startup 프로시저가 자동 실행되도록 설정합니다. 자세한 내용은 sp_procoption(Transact-SQL)을 참조하세요.

    EXEC sp_procoption N'sp_ssis_startup','startup','on'  
    
  6. SQL Server Management Studio의 로그인 속성 대화 상자를 사용하여 SSISDB 사용자 ##MS_SSISServerCleanupJobUser##(SSISDB 데이터베이스)를 ##MS_SSISServerCleanupJobLogin##에 매핑합니다.

  7. 다음 방법 중 하나를 사용하여 마스터 키를 복원합니다. 암호화에 대한 자세한 내용은 암호화 계층 구조를 참조 하세요.

    • 메서드 1

      이미 데이터베이스 마스터 키에 대한 백업을 수행했고 마스터 키를 암호화하기 위해 사용된 암호가 있는 경우 이 방법을 사용합니다.

             Restore master key from file = 'c:\temp\RCTestInstKey'  
             Decryption by password = 'LS2Setup!' -- 'Password used to encrypt the master key during SSISDB backup'  
             Encryption by password = 'LS3Setup!' -- 'New Password'  
             Force  
      
      

      참고 항목

      SQL Server 서비스 계정에 백업 키 파일을 읽을 수 있는 권한이 있음을 확인합니다.

      참고 항목

      데이터베이스 마스터 키가 서비스 마스터 키로 아직 암호화되지 않은 경우 SQL Server Management Studio에 다음 경고 메시지가 표시됩니다. 경고 메시지를 무시합니다.

      현재 마스터 키의 암호를 해독할 수 없습니다. FORCE 옵션이 지정되어 있어 오류가 무시되었습니다.

      FORCE 인수는 현재 데이터베이스 마스터 키가 열려 있지 않더라도 복원 프로세스가 계속되도록 지정합니다. SSISDB 카탈로그의 경우 데이터베이스를 복원하는 인스턴스에서 데이터베이스 마스터 키가 열리지 않았기 때문에 이 메시지가 표시됩니다.

    • 방법 2

      SSISDB를 만들기 위해 사용된 원래 암호를 갖고 있는 경우 이 방법을 사용합니다.

      open master key decryption by password = 'LS1Setup!' --'Password used when creating SSISDB'  
             Alter Master Key Add encryption by Service Master Key  
      
  8. catalog.검사를 실행하여 SSISDB 카탈로그 스키마 및 Integration Services 이진 파일(ISServerExec 및 SQLCLR 어셈블리)이 호환되는지 여부를 확인합니다._schema_version.

  9. SSISDB 데이터베이스가 성공적으로 복원되었는지 확인하려면 Integration Services 서버에 배포된 패키지 실행과 같은 SSISDB 카탈로그에 대한 작업을 수행합니다. 자세한 내용은 SSIS(Integration Services) 패키지 실행을 참조 하세요.

SSIS 데이터베이스를 이동하려면

  • 사용자 데이터베이스 이동에 대한 지침을 따릅니다. 자세한 내용은 사용자 데이터베이스 이동을 참조 하세요.

    SSISDB 데이터베이스에 대한 마스터 키를 백업하고 백업 파일을 보호해야 합니다. 자세한 내용은 SSIS 데이터베이스를 백업하려면을 참조하세요.

    SSIS(Integration Services) 관련 개체가 SSISDB 카탈로그가 아직 만들어지지 않은 새 SQL Server 인스턴스에 만들어졌는지 확인합니다.

SSIS 카탈로그(SSISDB) 업그레이드

데이터베이스가 SQL Server 인스턴스의 최신 버전보다 오래된 상태이면 SSISDB 업그레이드 마법사를 사용하여 SSIS 카탈로그 데이터베이스인 SSISDB를 업그레이드합니다. 다음 조건 중 하나가 true인 경우 데이터베이스가 더 오래되었을 수 있습니다.

  • 이전 버전의 SQL Server에서 데이터베이스를 복원한 경우

  • SQL Server 인스턴스를 업그레이드하기 전에 Always On 가용성 그룹에서 데이터베이스를 제거하지 않았습니다. 이 조건에서는 데이터베이스가 자동으로 업그레이드되지 않습니다. 자세한 내용은 가용성 그룹에서 SSISDB 업그레이드를 참조하세요.

마법사는 로컬 서버 인스턴스의 데이터베이스만 업그레이드할 수 있습니다.

SSISDB 업그레이드 마법사를 실행하여 SSISDB(SSIS 카탈로그) 업그레이드

  1. SSIS 카탈로그 데이터베이스 SSISDB를 백업합니다.

  2. SQL Server Management Studio에서 로컬 서버를 확장한 다음 Integration Services 카탈로그를 확장 합니다.

  3. SSISDB마우스 오른쪽 단추로 클릭한 다음 데이터베이스 업그레이드를 선택하여 SSISDB 업그레이드 마법사를 시작합니다. 또는 로컬 서버에서 관리자 권한으로 실행하여 SSISDB 업그레이드 마법사를 시작 C:\Program Files\Microsoft SQL Server\140\DTS\Binn\ISDBUpgradeWizard.exe 합니다.

    Launch the SSISDB upgrade wizard

  4. 인스턴스 선택 페이지에서 로컬 서버에서 SQL Server 인스턴스를 선택합니다.

    Important

    마법사는 로컬 서버 인스턴스의 데이터베이스만 업그레이드할 수 있습니다.

    마법사를 실행하기 전에 SSISDB 데이터베이스를 백업했음을 나타내려면 검사 상자를 선택합니다.

    Select the server in the SSISDB Upgrade Wizard

  5. 업그레이드를 선택하여 SSIS 카탈로그 데이터베이스를 업그레이드합니다.

  6. 결과 페이지에서 결과를 검토합니다.

    Review the results in the SSISDB Upgrade Wizard

SSIS 카탈로그용 Always On(SSISDB)

Always On 가용성 그룹 기능은 데이터베이스 미러 대한 엔터프라이즈 수준의 대안을 제공하는 고가용성 및 재해 복구 솔루션입니다. 가용성 그룹 은 함께 장애 조치(Failover)되는 사용자 데이터베이스( 가용성 데이터베이스라고 함)의 불연속 집합에 대한 장애 조치(Failover) 환경을 지원합니다. 자세한 내용은 Always On 가용성 그룹을 참조 하세요.

SSIS 카탈로그(SSISDB) 및 해당 콘텐츠(프로젝트, 패키지, 실행 로그 등)에 대한 고가용성을 제공하기 위해 SSISDB 데이터베이스(다른 사용자 데이터베이스와 동일)를 Always On 가용성 그룹에 추가할 수 있습니다. 장애 조치(failover)가 발생하면 보조 노드 중 하나가 자동으로 새 주 노드가 됩니다.

참고 항목

SQL Server 2022에서 도입된 포함된 가용성 그룹은 아직 지원되지 않습니다.

Important

장애 조치(failover)가 발생하면 실행 중인 패키지가 다시 시작되거나 다시 시작되지 않습니다.

이 섹션의 내용:

  1. 필수 조건

  2. Always On에 대한 SSIS 지원 구성

  3. 가용성 그룹에서 SSISDB 업그레이드

필수 조건

SSISDB 데이터베이스에 대한 Always On 지원을 활성화하기 전에 다음 필수 구성 요소를 수행합니다.

  1. Windows 장애 조치(failover) 클러스터를 설정합니다. 지침은 Windows Server 2012용 장애 조치(Failover) 클러스터 기능 및 도구 설치 블로그 게시물을 참조하세요. 모든 클러스터 노드에 기능 및 도구를 설치합니다.

  2. 클러스터의 각 노드에 Integration Services 기능이 포함된 SQL Server 2016(SSIS)을 설치합니다.

  3. 각 SQL Server 인스턴스에 대해 Always On 가용성 그룹을 사용하도록 설정합니다. 자세한 내용은 Always On 가용성 그룹 사용을 참조하세요.

Always On에 대한 SSIS 지원 구성

Important

  • 가용성 그룹의 주 노드에서 이러한 단계를 수행해야 합니다.
  • Always On가용성 그룹에 SSISDB를 추가한 후 Always On에 대해 SSIS 지원을 사용하도록 설정해야 합니다.

1단계: Integration Services 카탈로그 만들기

  1. SQL Server Management Studio 를 시작하고 SSISDB에 대한 Always On 고가용성 그룹의 주 노드 로 설정하려는 클러스터의 SQL Server 인스턴스에 연결합니다.

  2. 개체 탐색기 서버 노드를 확장하고 Integration Services 카탈로그 노드를 마우스 오른쪽 단추로 클릭한 다음 카탈로그 만들기를 클릭합니다.

  3. CLR 통합 사용을 클릭합니다. 카탈로그는 CLR 저장 프로시저를 사용합니다.

  4. SQL Server 시작 시 Integration Services 저장 프로시저 자동 실행 을 클릭하여 SSIS 서버 인스턴스를 다시 시작할 때마다 catalog.startup 저장 프로시저를 실행하도록 지정합니다. 저장 프로시저에서는 SSISDB 카탈로그에 대한 작업의 상태를 유지 관리합니다. SSIS 서버 인스턴스가 다운된 경우와 실행 중인 패키지의 상태 수정합니다.

  5. 암호를 입력한 다음 확인을 클릭합니다. 암호는 카탈로그 데이터를 암호화하는 데 사용되는 데이터베이스 마스터 키를 보호합니다. 암호를 안전한 위치에 저장합니다. 데이터베이스 마스터 키도 백업하는 것이 좋습니다. 자세한 내용은 Back Up a Database Master Key을 참조하세요.

2단계: Always On 가용성 그룹에 SSISDB 추가

Always On 가용성 그룹에 SSISDB 데이터베이스를 추가하는 것은 가용성 그룹에 다른 사용자 데이터베이스를 추가하는 것과 거의 동일합니다. 가용성 그룹 사용 마법사를 참조하세요.

새 가용성 그룹 마법사의 데이터베이스 선택 페이지에서 SSIS 카탈로그를 만드는 동안 지정한 암호를 제공합니다.

New Availability Group

Important

장애 조치(failover) 후 마스터 키 문제를 방지하려면 전체 데이터베이스 및 로그 백업 메서드를 사용하여 Always On 가용성 그룹에 SSISDB 데이터베이스를 추가합니다.

3단계: Always On에 대한 SSIS 지원 활성화

Integration Service 카탈로그를 만든 후 Integration Service 카탈로그 노드를 마우스 오른쪽 단추로 클릭하고 Always On 지원 사용을 클릭합니다. 다음 Always On에 대한 지원 사용 대화 상자가 표시됩니다. 이 메뉴 항목을 사용하지 않도록 설정한 경우 모든 필수 구성 요소가 설치되어 있는지 확인하고 새로 고침을 클릭합니다.

Enable Support for Always On

Warning

Always On에 대한 SSIS 지원을 활성화할 때까지 SSISDB 데이터베이스의 자동 장애 조치(Failover)는 지원되지 않습니다.

Always On 가용성 그룹에서 새로 추가된 보조 복제본(replica) 표에 표시됩니다. 목록에서 각 복제본에 대한 연결... 단추를 클릭하고 인증 자격 증명을 입력하여 복제본에 연결합니다. 사용자 계정은 Always On에 대한 SSIS 지원을 사용하도록 설정하려면 각 복제본(replica) sysadmin 그룹의 구성원이어야 합니다. 각 복제본(replica) 성공적으로 연결한 후 확인을 클릭하여 Always On에 대한 SSIS 지원을 사용하도록 설정합니다.

다른 필수 구성 요소를 완료한 후 상황에 맞는 메뉴의 Always On 지원 사용 옵션이 비활성화된 것처럼 보이는 경우 다음을 시도해 보세요.

  1. 새로 고침 옵션을 클릭하여 상황에 맞는 메뉴를 새로 고칩니다.
  2. 주 노드에 연결되는지 확인합니다. 주 노드에서 Always On 지원을 사용하도록 설정해야 합니다.
  3. SQL Server 버전이 13.0 이상인지 확인합니다. SSIS는 SQL Server 2016 이상 버전에서만 Always On을 지원합니다.

가용성 그룹에서 SSISDB 업그레이드

이전 버전에서 SQL Server를 업그레이드하고 SSISDB가 Always On 가용성 그룹에 있는 경우 업그레이드는 "Always On 가용성 그룹의 SSISDB 검사" 규칙에 따라 차단될 수 있습니다. 이 차단은 업그레이드가 단일 사용자 모드에서 실행되는 반면 가용성 데이터베이스는 다중 사용자 데이터베이스여야 하기 때문에 발생합니다. 따라서 업그레이드 또는 패치 중에는 SSISDB를 포함한 모든 가용성 데이터베이스가 오프라인으로 전환되고 업그레이드되거나 패치되지 않습니다. 업그레이드를 계속하려면 먼저 가용성 그룹에서 SSISDB를 제거한 다음 각 노드를 업그레이드 또는 패치하고 가용성 그룹에 SSISDB를 다시 추가합니다.

“Always On 가용성 그룹의 SSISDB 검사” 규칙에 따라 차단되는 경우 SQL Server를 업그레이드하려면 이러한 단계를 따릅니다.

  1. 가용성 그룹에서 SSISDB 데이터베이스를 제거합니다. 자세한 내용은 가용성 그룹에서 보조 데이터베이스 제거(SQL Server)가용성 그룹에서 주 데이터베이스 제거(SQL Server)를 참조하세요.

  2. 업그레이드 마법사에서 다시 실행을 클릭합니다. “Always On 가용성 그룹의 SSISDB 검사” 규칙을 통과합니다.

  3. 다음클릭하여 업그레이드를 계속합니다.

  4. 모든 노드를 업그레이드한 후 SSISDB 데이터베이스를 Always On 가용성 그룹에 다시 추가합니다. 자세한 내용은 가용성 그룹에 데이터베이스 추가(SQL Server)를 참조하세요.

SQL Server를 업그레이드할 때 차단되지 않고 SSISDB가 Always On 가용성 그룹에 있는 경우 SQL Server 데이터베이스 엔진을 업그레이드한 후 SSISDB를 별도로 업그레이드합니다. 다음 절차에 설명된 대로 SSIS 업그레이드 마법사를 사용하여 SSISDB를 업그레이드합니다.

  1. 가용성 그룹에서 SSISDB 데이터베이스를 이동하거나 SSISDB가 가용성 그룹의 유일한 데이터베이스인 경우 가용성 그룹을 삭제합니다. 가용성 그룹의 주 노드에서 SQL Server Management Studio를 시작하여 이 작업을 수행합니다.

  2. 모든 복제본(replica) 노드에서 SSISDB 데이터베이스를 제거합니다.

  3. 주 노드에서 SSISDB 데이터베이스를 업그레이드합니다. SQL Server Management Studio에서 개체 탐색기 Integration Services 카탈로그를 확장하고 SSISDB를 마우스 오른쪽 단추로 클릭한 다음 데이터베이스 업그레이드를 선택합니다. SSISDB 업그레이드 마법사의 지침에 따라 데이터베이스를 업그레이드합니다. 주 노드에서 SSIDB 업그레이드 마법사를 로컬로 시작합니다.

  4. 2단계의 지침에 따라 Always On 가용성 그룹에 SSISDB를 추가하여 가용성 그룹에 SSISDB를 다시 추가합니다.

  5. 3단계: Always On대한 SSIS 지원 사용의 지침을 따릅니다.

이중 홉 시나리오의 SSISDB 카탈로그 및 위임

기본적으로 SSISDB 카탈로그 아래에 저장된 SSIS 패키지의 원격 호출은 자격 증명 위임을 지원하지 않으며, 이중 홉이라고도 합니다.

사용자가 클라이언트 컴퓨터 A에 로그인하고 SSMS(SQL Server Management Studio)를 시작하는 시나리오를 상상해 보십시오. SSMS 내에서 사용자는 SSISDB 카탈로그가 있는 컴퓨터 B에서 호스트되는 SQL Server에 연결합니다. SSIS 패키지는 이 SSISDB 카탈로그 아래에 저장되고 패키지는 컴퓨터 C에서 실행되는 SQL Server 서비스에 연결됩니다(패키지가 다른 서비스에 액세스할 수도 있음). 사용자가 컴퓨터 A에서 SSIS 패키지 실행을 호출하면 SSMS는 먼저 사용자 자격 증명을 컴퓨터 A에서 컴퓨터 B(SSIS 런타임 프로세스가 패키지를 실행하는 위치)로 성공적으로 전달합니다. 이제 실행이 성공적으로 완료되도록 컴퓨터 B에서 컴퓨터 C로 사용자 자격 증명을 위임하려면 SSIS 실행 런타임 프로세스(ISServerExec.exe)가 필요합니다. 그러나 자격 증명 위임은 기본적으로 사용하도록 설정되어 있지 않습니다.

사용자는 SQL Server 서비스 계정(머신 B)에 ‘모든 서비스에 대한 위임용으로 이 사용자 트러스트(Kerberos만)’ 권한을 부여하여 자격 증명을 위임할 수 있으며 자식 프로세스로 ISServerExec.exe가 시작됩니다. 이 프로세스를 SQL Server 서비스 계정에 대해 제한되지 않은 위임 또는 열린 위임을 설정하는 것이라고 합니다. 이 권한을 부여하기 전에 조직의 보안 요구 사항을 충족하는지 여부를 고려합니다.

SSISDB는 제한된 위임을 지원하지 않습니다. 이중 홉 환경에서 SSISDB 카탈로그를 호스트하는 SQL Server의 서비스 계정(이 예제의 컴퓨터 B)이 제한된 위임에 대해 설정된 경우 ISServerExec.exe 자격 증명을 세 번째 컴퓨터(컴퓨터 C)에 위임할 수 없습니다. 이는 Windows Credential Guard를 사용하도록 설정하여 제한된 위임을 반드시 설정해야 하는 시나리오에 적용됩니다.

관련 내용