적용 대상: Azure Data Factory
Azure Synapse Analytics
팁
기업용 올인원 분석 솔루션인 Microsoft Fabric의 Data Factory를 사용해 보세요. Microsoft Fabric은 데이터 이동부터 데이터 과학, 실시간 분석, 비즈니스 인텔리전스 및 보고에 이르기까지 모든 것을 다룹니다. 무료로 새 평가판을 시작하는 방법을 알아봅니다!
이 문서에는 SSIS Integration Runtime에서 SSIS(SQL Server Integration Services) 패키지를 실행할 때 발견할 수 있는 가장 일반적인 오류가 포함되어 있습니다. 잠재적인 원인과 오류를 해결하기 위한 작업에 대해 설명합니다.
일반
문제 해결을 위한 로그를 찾을 수 있는 위치
Azure Data Factory 포털을 사용하여 SSIS 패키지 실행 작업의 출력을 확인합니다. 출력에는 실행 결과, 오류 메시지 및 작업 ID가 포함되어 있습니다. 자세한 내용은 파이프라인 모니터링을 참조하세요.
SSIS 카탈로그(SSISDB)를 사용하여 실행에 대한 세부 정보 로그를 확인합니다. 자세한 내용은 실행 중인 패키지 및 기타 작업 모니터링을 참조하세요.
일반적인 오류, 원인 및 해결 방법
오류 메시지: "연결 제한 시간이 만료되었습니다." 또는 "요청을 처리하는 동안 서비스에 오류가 발생했습니다. 다시 시도하세요. "
잠재적인 원인 및 권장되는 작업은 다음과 같습니다.
- 데이터 원본 또는 대상이 오버로드되었습니다. 데이터 원본 또는 대상의 부하를 확인하고 용량이 충분한지 확인합니다. 예를 들어 Azure SQL Database를 사용한 경우 데이터베이스가 시간 초과될 수 있다면 스케일 업하는 것이 좋습니다.
- 특히 지역 간 연결 또는 온-프레미스와 Azure 간 연결인 경우 SSIS Integration Runtime과 데이터 원본 또는 대상 간의 네트워크가 불안정합니다. 다음 단계에 따라 다시 시도 패턴을 SSIS 패키지에 적용합니다.
- SSIS 패키지가 실패 시 부작용(예: 데이터 손실, 데이터 중복) 없이 다시 실행할 수 있는지 확인합니다.
- 일반 탭에서 SSIS 패키지 실행 작업의 다시 시도 및 다시 시도 간격을 구성합니다.
- ADO.NET 및 OLE DB 원본 또는 대상 구성 요소의 경우 SSIS 패키지 또는 SSIS 작업의 연결 관리자에서 ConnectRetryCount 및 ConnectRetryInterval을 설정합니다.
오류 메시지: "ADO NET 원본이 '...' 연결을 설정하지 못했습니다." "SQL Server에 연결을 설정하는 중에 네트워크 관련 또는 인스턴스 관련 오류가 발생했습니다. 서버를 찾을 수 없거나 서버에 액세스할 수 없습니다. "
이 이슈는 일반적으로 SSIS 통합 런타임에서 데이터 원본 또는 대상에 액세스할 수 없음을 의미합니다. 원인은 다양합니다. 다음과 같이 작업해 보세요.
- 데이터 원본 또는 대상 이름/IP를 올바르게 전달하고 있는지 확인합니다.
- 방화벽이 올바르게 설정되었는지 확인합니다.
- 데이터 원본 또는 대상이 온-프레미스에 있는 경우 가상 네트워크가 올바르게 구성되었는지 확인합니다.
- 동일한 가상 네트워크에서 Azure VM을 프로비전하여 문제가 가상 네트워크 구성에서 발생하는지 확인할 수 있습니다. 그런 다음, Azure VM에서 데이터 원본 또는 대상에 액세스할 수 있는지 확인합니다.
- SSIS Integration Runtime에서 가상 네트워크를 사용하는 방법에 대한 자세한 내용은 Azure-SSIS Integration Runtime을 가상 네트워크에 조인을 참조하세요.
오류 메시지: "ADO NET 원본이 "관리형 연결 관리자를 만들 수 없습니다."와 함께 '...' 연결을 획득하는 데 실패했습니다. "
패키지에 사용되는 ADO.NET 공급자가 SSIS Integration Runtime에 설치되지 않았기 때문일 수 있습니다. 사용자 지정 설정을 사용하여 공급자를 설치할 수 있습니다. 사용자 지정 설정에 대한 자세한 내용은 Azure-SSIS Integration Runtime 설정 사용자 지정을 참조하세요.
오류 메시지: “연결 ‘...’을 찾을 수 없습니다.”
이 오류는 이전 버전의 SSMS(SQL Server Management Studio)에서 알려진 이슈로 인해 발생할 수 있습니다. 패키지에 SSMS를 사용하여 배포를 수행하는 컴퓨터에 설치되지 않은 사용자 지정 구성 요소(예: SSIS Azure Feature Pack 또는 파트너 구성 요소)가 포함된 경우 SSMS는 구성 요소를 제거하고 오류를 발생시킵니다. 이슈가 해결된 최신 버전으로 SSMS를 업그레이드합니다.
오류 메시지: `SSIS 실행기 종료 코드: -1073741819. "
- 잠재적인 원인 & 권장 조치:
- 이 오류는 여러 Excel 원본 또는 대상이 다중 스레드에서 병렬로 실행될 때 Excel 원본 및 대상에 대한 제한 때문일 수 있습니다. Excel 구성 요소를 순서대로 실행하도록 변경하거나, Excel 구성 요소를 여러 패키지로 분리하고 ExecuteOutOfProcess 속성이 True로 설정된 "패키지 실행 태스크"를 통해 트리거하여 이 제한을 해결할 수 있습니다.
오류 메시지: “디스크 공간이 부족합니다.”
이 오류는 로컬 디스크가 SSIS Integration Runtime 노드에서 사용되었음을 의미합니다. 패키지 또는 사용자 지정 설정에서 많은 디스크 공간을 사용하는지 확인합니다.
- 패키지에서 디스크를 사용하는 경우 패키지 실행이 완료되면 디스크 공간이 비워집니다.
- 사용자 지정 설정에서 디스크를 사용하는 경우 SSIS Integration Runtime을 중지하고, 스크립트를 수정하고, 통합 런타임을 다시 시작해야 합니다. 사용자 지정 설정에 대해 지정한 전체 Azure Blob 컨테이너가 SSIS Integration Runtime 노드에 복사되므로 해당 컨테이너 아래에 불필요한 콘텐츠가 있는지 확인합니다.
오류 메시지: "마스터에서 리소스를 검색하지 못했습니다. Microsoft.SqlServer.IntegrationServices.Scale.ScaleoutContract.Common.MasterResponseFailedException: 코드:300004. 설명: 파일 "***"을(를) 로드하지 못했습니다. "
- 잠재적인 원인 & 권장 조치:
- SSIS 작업이 파일 시스템(패키지 파일 또는 프로젝트 파일)에서 패키지를 실행하는 경우 SSIS 작업에서 제공한 패키지 액세스 자격 증명을 사용하여 프로젝트, 패키지 또는 구성 파일에 액세스할 수 없으면 이 오류가 발생합니다.
- Azure File을 사용하는 경우:
- 파일 경로는 \\<storage account name>.file.core.windows.net\<파일 공유 경로>로 시작해야 합니다.
- 도메인은 "Azure"여야 합니다.
- 사용자 이름은 <스토리지 계정 이름>이어야 합니다.
- 암호는 <스토리지 액세스 키>여야 합니다.
- 온-프레미스 파일을 사용하는 경우 Azure SSIS 통합 런타임이 온-프레미스 파일 공유에 액세스할 수 있도록 VNet, 패키지 액세스 자격 증명 및 권한이 제대로 구성되었는지 확인하세요.
- Azure File을 사용하는 경우:
- SSIS 작업이 파일 시스템(패키지 파일 또는 프로젝트 파일)에서 패키지를 실행하는 경우 SSIS 작업에서 제공한 패키지 액세스 자격 증명을 사용하여 프로젝트, 패키지 또는 구성 파일에 액세스할 수 없으면 이 오류가 발생합니다.
오류 메시지: "연결에 지정된 파일 이름 '...'이(가) 잘못되었습니다."
- 잠재적인 원인 & 권장 조치:
- 잘못된 파일 이름이 지정되었습니다.
- 연결 관리자에서 짧은 시간 대신 FQDN(정규화된 도메인 이름)을 사용하고 있는지 확인합니다.
오류 메시지: "'...' 파일을 열 수 없습니다."
이 오류는 패키지 실행이 SSIS Integration Runtime의 로컬 디스크에서 파일을 찾을 수 없을 때 발생합니다. 다음과 같이 작업해 보세요.
- SSIS Integration Runtime에서 실행되는 패키지의 절대 경로를 사용하지 않습니다. 대신 현재 실행 작업 디렉터리(.) 또는 임시 폴더(% TEMP%)를 사용합니다.
- SSIS Integration Runtime 노드에서 일부 파일을 유지해야 하는 경우 설정 사용자 지정에서 설명한 대로 파일을 준비합니다. 실행이 완료되면 작업 디렉터리의 모든 파일이 정리됩니다.
- 파일을 SSIS Integration Runtime 노드에 저장하는 대신 Azure Files를 사용합니다. 자세한 내용은 Azure 파일 공유 사용을 참조하세요.
오류 메시지: "데이터베이스 'SSISDB'가 크기 할당량에 도달했습니다."
잠재적인 원인은 Azure SQL Database 또는 SQL Managed Instance에서 만든 SSISDB 데이터베이스가 할당량에 도달했기 때문입니다. 다음과 같이 작업해 보세요.
- 데이터베이스의 DTU를 늘리는 것이 좋습니다. 자세한 내용은 논리 서버에 대한 SQL Database 제한을 참조하세요.
- 패키지에서 많은 로그를 생성할지 여부를 확인합니다. 많은 로그를 생성할 경우 이러한 로그를 정리하도록 탄력적 작업을 구성할 수 있습니다. 자세한 내용은 Azure Elastic Database 작업을 사용하여 SSISDB 로그 정리를 참조하세요.
오류 메시지: "데이터베이스에 대한 요청 제한인 ...에 도달했습니다. "
많은 패키지가 SSIS Integration Runtime에서 병렬로 실행되는 경우 SSISDB가 요청 제한에 도달했기 때문에 이 오류가 발생할 수 있습니다. 이 문제를 해결하려면 SSISDB의 DTU를 늘리는 것이 좋습니다. 자세한 내용은 논리 서버에 대한 SQL Database 제한을 참조하세요.
오류 메시지: "SSIS 작업이 예기치 않은 작업 상태로 인해 실패했습니다..."
이 오류는 일반적으로 일시적인 문제로 인해 발생하므로 패키지 실행을 다시 실행합니다. 다음 단계에 따라 다시 시도 패턴을 SSIS 패키지에 적용합니다.
- SSIS 패키지가 실패 시 부작용(예: 데이터 손실, 데이터 중복) 없이 다시 실행할 수 있는지 확인합니다.
- 일반 탭에서 SSIS 패키지 실행 작업의 다시 시도 및 다시 시도 간격을 구성합니다.
- ADO.NET 및 OLE DB 원본 또는 대상 구성 요소의 경우 SSIS 패키지 또는 SSIS 작업의 연결 관리자에서 ConnectRetryCount 및 ConnectRetryInterval을 설정합니다.
오류 메시지: "활성 작업자가 없습니다. "
이 오류는 일반적으로 SSIS Integration Runtime이 비정상 상태임을 의미합니다. Azure Portal에서 상태 및 자세한 오류를 확인합니다. 자세한 내용은 Azure-SSIS Integration Runtime을 참조하세요.
오류 메시지: "사용자 지정 설정에 제공한 Azure Blob 컨테이너에 액세스할 수 없으므로 Integration Runtime을 업그레이드할 수 없으며 결국에는 작동이 중지됩니다. "
이 오류는 SSIS Integration Runtime에서 사용자 지정 설정에 대해 구성된 스토리지에 액세스할 수 없을 때 발생합니다. 제공된 SAS(공유 액세스 서명) URI가 유효하고 만료되지 않았는지 확인합니다.
오류 메시지: "Microsoft OLE DB Provider for Analysis Services입니다. 'Hresult: 0x80004005 설명:' COM 오류: COM 오류: mscorlib; 호출 대상이 예외를 throw했습니다."
한 가지 잠재적인 원인은 Microsoft Entra 다단계 인증이 사용하도록 설정된 사용자 이름 또는 암호가 Azure Analysis Services 인증에 대해 구성되어 있기 때문입니다. 이 인증은 SSIS Integration Runtime에서 지원되지 않습니다. 서비스 주체를 Azure Analysis Services 인증에 사용하도록 시도합니다.
서비스 주체를 사용한 자동화에서 설명한 대로 서비스 주체를 준비합니다.
연결 관리자에서 특정 사용자 이름 및 암호 사용을 구성합니다. app:<AppID>@<TenantID>를 사용자 이름으로 설정하고 clientSecret을 암호로 설정합니다. 올바른 형식의 사용자 이름 예는 다음과 같습니다.
app:12345678-9012-3456-789a-bcdef012345678@9abcdef0-1234-5678-9abc-def0123456789abc
연결 관리자에서 특정 사용자 이름 및 암호 사용을 구성합니다. AppID를 사용자 이름으로 설정하고 clientSecret을 암호로 설정합니다.
오류 메시지: "ADONET 원본이 {GUID} 연결을 설정하지 못했으며 다음 오류 메시지가 표시되었습니다. 관리 ID를 사용할 때 사용자 'NT AUTHORITY\ANONYMOUS LOGON'이 로그인하지 못했습니다."
ConnectUsingManagedIdentity 매개 변수가 True인 경우 연결 관리자의 인증 방법을 Active Directory 암호 인증으로 구성하지 않았는지 확인합니다. ConnectUsingManagedIdentity가 설정되면 무시되는 SQL 인증으로 대신 구성할 수 있습니다.
오류 메시지: "...에서 0xC020801F ..., OData 원본 [...]: 런타임 연결 관리자로부터 관리되는 연결을 설정할 수 없습니다."
한 가지 잠재적인 원인은 SSIS Integration Runtime에서 OData 원본에 필요한 TLS(전송 계층 보안)가 사용하도록 설정되지 않았기 때문입니다. 사용자 지정 설정을 사용하여 SSIS Integration Runtime에서 TLS를 사용하도록 설정할 수 있습니다. 자세한 내용은 SSIS에서 Project Online Odata를 연결할 수 없음 및 Azure-SSIS Integration Runtime 설정 사용자 지정을 참조하세요.
오류 메시지: "작업 GUID가 ...인 준비 작업 요청이 실패했습니다. 오류: 다음 오류 메시지로 인해 준비 작업을 디스패치하지 못했습니다. Microsoft.SqlServer.IntegrationServices.AisAgentCore.AisAgentException: 데이터 프록시를 로드하지 못했습니다. "
Azure SSIS Integration Runtime이 자체 호스팅 통합 런타임으로 구성되었는지 확인합니다. 자세한 내용은 ADF에서 자체 호스팅 IR을 Azure-SSIS IR에 대한 프록시로 구성을 참조하세요.
오류 메시지: "준비 작업 상태: 실패. 준비 작업 오류: ErrorCode: 2010, ErrorMessage: 자체 호스팅 통합 런타임 ...이(가) 오프라인입니다."
자체 호스팅 통합 런타임이 설치되고 시작되었는지 확인합니다. 자세한 내용은 자체 호스팅 통합 런타임 만들기 및 구성을 참조하세요.
오류 메시지: "준비 작업 오류: ErrorCode: 2906, ErrorMessage: 패키지 실행이 실패했습니다. 출력: {"OperationErrorMessages": "오류: 요청한 OLE DB 공급자 ...이(가) 등록되지 않았습니다. 64비트 드라이버가 설치되지 않은 경우 32비트 모드에서 패키지를 실행합니다..."
패키지의 OLE DB 커넥터에서 사용하는 해당 공급자가 자체 호스팅 통합 런타임 컴퓨터에 제대로 설치되었는지 확인합니다. 자세한 내용은 ADF에서 Azure-SSIS IR에 대한 프록시로 자체 호스팅 IR 구성을 참조하세요.
오류 메시지: "준비 작업 오류: ErrorCode: 2906, ErrorMessage: 패키지 실행이 실패했습니다. 출력: {"OperationErrorMessages": "오류: System.IO.FileLoadException: 파일 또는 어셈블리 'Microsoft.WindowsAzure.Storage, Version=..., Culture=neutral, PublicKeyToken=31bf3856ad364e35' 또는 해당 종속성 중 하나를 로드할 수 없습니다. 찾은 어셈블리의 매니페스트 정의가 해당 어셈블리 참조와 일치하지 않습니다..."
한 가지 잠재적인 원인은 자체 호스팅 통합 런타임이 제대로 설치되지 않았거나 업그레이드되지 않았기 때문입니다. 최신 자체 호스팅 통합 런타임을 다운로드하고 다시 설치하는 것이 좋습니다. 자세한 내용은 자체 호스팅 통합 런타임 만들기 및 구성을 참조하세요.
오류 메시지: "준비 작업이 실패했습니다. TaskStatus: 실패, ErrorCode: 2906, ErrorMessage: 패키지를 실행하지 못했습니다. 자세한 내용을 보려면 동일한 행에서 활동 실행에 대한 출력을 선택합니다. 출력: {"OperationErrorMessages": "4/14/2021 7:10:35 AM +00:00 : = Namedpipe 프록시를 시작하지 못했습니다..."
자체 호스팅 IR 서비스를 실행하는 계정에 보안 정책이 올바르게 할당되었는지 확인합니다. SSIS 패키지 실행 작업에서 Windows 인증이 사용되거나 실행 자격 증명이 SSIS 카탈로그(SSISDB)에 설정된 경우 동일한 보안 정책을 사용되는 Windows 계정에 할당해야 합니다. 자세한 내용은 ADF에서 Azure-SSIS IR에 대한 프록시로 자체 호스팅 IR 구성을 참조하세요.
오류 메시지: "메타데이터를 요청할 때는 연결이 필요합니다. 오프라인으로 작업하는 경우 SSIS 메뉴에서 오프라인으로 작업의 선택을 취소하여 연결을 활성화합니다."
- 잠재적인 원인 & 권장 조치:
- 실행 로그에 "구성 요소에서 ConnectByProxy 값이 true로 설정된 연결 관리자를 사용하도록 지원하지 않습니다."라는 경고 메시지가 표시되면 구성 요소에서 아직 "ConnectByProxy"를 지원하지 않는 연결 관리자를 사용하고 있음을 의미합니다. 지원되는 구성 요소는 ADF에서 자체 호스팅 IR을 Azure-SSIS IR에 대한 프록시로 구성을 참조하세요.
- 실행 로그는 SSMS 보고서 또는 SSIS 패키지 실행 작업에서 지정한 로그 폴더에서 찾을 수 있습니다.
- vNet을 대안으로 사용하여 온-프레미스 데이터에 액세스할 수도 있습니다. 자세한 내용은 Azure-SSIS Integration Runtime을 가상 네트워크에 조인을 참조하세요.
오류 메시지: "준비 작업 상태: 실패. 준비 작업 오류: ErrorCode: 2906, ErrorMessage: 패키지 실행이 실패했습니다. 출력: {"OperationErrorMessages": "SSIS Executor exit code: -1.\n", "LogLocation": "...\SSISTelemetry\ExecutionLog\...", "effectiveIntegrationRuntime": "...", "executionDuration": ..., "durationInQueue": { "integrationRuntimeQueue": ... }} "
Visual C++ 런타임이 자체 호스팅 통합 런타임 컴퓨터에 설치되어 있는지 확인합니다. 자세한 내용은 ADF에서 Azure-SSIS IR에 대한 프록시로 자체 호스팅 IR 구성을 참조하세요.
오류 메시지: "준비에서 읽을 때 시간 제한"
이 오류는 SHIR을 데이터 프록시로 사용하는 SSIS-IR이 준비 BLOB에서 데이터를 읽을 수 없을 때 발생합니다. 일반적으로 SHIR이 온-프레미스 데이터를 준비 BLOB으로 전송하지 못했기 때문입니다. 그런 다음 SSIS-IR의 준비 데이터 읽기 시도가 시간 제한 오류와 함께 실패합니다. SHIR에서 데이터가 준비 BLOB에 성공적으로 업로드되지 않은 이유를 추가로 조사하려면 런타임 로그의 경우 C:\ProgramData\SSISTelemetry 폴더의 SHIR 로그와 실행 로그의 경우 C:\ProgramData\SSISTelemetry\ExecutionLog 폴더를 확인해야 합니다.
여러 패키지 실행이 예기치 않게 트리거됨
- 잠재적인 원인 & 권장 조치:
- ADF 저장 프로시저 작업 또는 조회 작업은 SSIS 패키지 실행을 트리거하는 데 사용됩니다. T-SQL 명령은 일시적인 문제에 도달하고 여러 패키지 실행이 수행되는 다시 실행을 트리거할 수 있습니다.
- ExecuteSSISPackage 작업을 대신 사용합니다. 그러면 사용자가 작업에서 다시 시도 횟수를 설정하는 경우를 제외하고는 패키지 실행이 다시 실행되지 않습니다. 자세한 내용은 SSIS 패키지 실행 작업을 사용하여 SSIS 패키지 실행을 참조하세요.
- 실행이 이미 트리거되었는지 확인하여 다시 실행할 수 있도록 T-SQL 명령을 구체화합니다.
패키지 실행 시간이 너무 오래 걸림
잠재적인 원인 및 권장되는 작업은 다음과 같습니다.
- 너무 많은 패키지 실행이 SSIS Integration Runtime에 예약되었습니다. 이러한 모든 실행은 큐에서 차례를 기다리고 있습니다.
다음 수식을 사용하여 최댓값을 결정합니다.
IR당 최대 병렬 실행 수 = 노드 수 * 노드당 최대 병렬 실행 수
노드 수 및 노드당 최대 병렬 실행 수를 설정하는 방법은 Azure Data Factory에서 Azure-SSIS Integration Runtime 만들기를 참조하세요.
- SSIS Integration Runtime이 중지되었거나 비정상 상태입니다. SSIS Integration Runtime 상태 및 오류를 확인하는 방법은 Azure-SSIS Integration Runtime을 참조하세요.
또한 일반 탭에서 시간 제한을 설정하는 것이 좋습니다.
:\
패키지 실행 성능 저하
다음과 같이 작업해 보세요.
SSIS Integration Runtime이 데이터 원본 및 대상과 동일한 지역에 있는지 확인합니다.
패키지 실행의 로깅 수준을 성능으로 설정하여 실행의 각 구성 요소에 대한 기간 정보를 수집합니다. 자세한 내용은 Integration Services(SSIS) 로깅을 참조하세요.
Azure Portal에서 IR 노드 성능을 확인합니다.
- SSIS Integration Runtime을 모니터링하는 방법에 대한 자세한 내용은 Azure-SSIS Integration Runtime을 참조하세요.
- Azure Portal에서 데이터 팩터리의 메트릭을 확인하여 SSIS Integration Runtime에 대한 CPU/메모리 기록을 찾을 수 있습니다.