Scale Out 문제 해결
적용 대상: SQL Server Azure Data Factory의 SSIS Integration Runtime
SSIS Scale Out에는 SSIS 카탈로그 데이터베이스인 SSISDB
, Scale Out 마스터 서비스 및 Scale Out 작업자 서비스 사이의 통신이 포함됩니다. 구성 실수, 액세스 권한 부족 및 기타 이유로 인해 이 통신이 중단되는 경우가 있습니다. 이 문서는 Scale Out 구성 문제를 해결하는 데 도움이 됩니다.
발생하는 증상을 조사하려면 문제가 해결될 때까지 아래 단계를 하나씩 수행합니다.
Scale Out 마스터 실패
증상
Scale Out 마스터는 SSISDB에 연결할 수 없습니다.
Scale Out 관리자에서 마스터 속성이 표시되지 않습니다.
마스터 속성이 뷰에 채워지지 않습니다
[catalog].[master_properties]
.
솔루션
Scale Out을 사용할 수 있는지 확인합니다.
SSMS의 개체 탐색기에서 SSISDB를 마우스 오른쪽 단추로 클릭하고 Scale Out 기능이 사용하도록 설정됨을 확인합니다.
속성 값이 False이면 저장 프로시저를 호출하여 Scale Out을 사용하도록 설정합니다
[catalog].[enable_scaleout]
.Scale Out 마스터 구성 파일에 지정된 SQL Server 이름이 올바른지 확인하고 Scale Out 마스터 서비스를 다시 시작합니다.
Scale Out 작업자 실패
증상
Scale Out 작업자를 Scale Out 마스터에 연결할 수 없습니다.
Scale Out 관리자에 추가한 후에는 Scale Out 작업자가 표시되지 않습니다.
Scale Out 작업자가 보기에 표시되지 않습니다
[catalog].[worker_agents]
.Scale Out 작업자 서비스가 실행되고 있지만 Scale Out 작업자는 오프라인 상태에 있습니다.
솔루션
\<drive\>:\Users\\*[account running worker service]*\AppData\Local\SSIS\Cluster\Agent
아래의 Scale Out 작업자 서비스 로그에서 오류 메시지를 확인합니다.
수신 대기 중인 엔드포인트 없음
증상
"System.ServiceModel.EndpointNotFoundException: 수신 대기하는 엔드포인트가 없습니다 https://[MachineName]:[Port]/ClusterManagement/에서 메시지를 받을 수 있습니다."
솔루션
Scale Out 마스터 서비스 구성 파일에 지정된 포트 번호가 올바른지 확인하고 Scale Out 마스터 서비스를 다시 시작합니다.
Scale Out 마스터 서비스 구성 파일에 지정된 포트 번호가 올바른지 확인하고 Scale Out 마스터 서비스를 다시 시작합니다.
Scale Out 마스터 노드에서 방화벽 포트가 열려 있는지 확인합니다.
Scale Out 마스터 노드와 Scale Out 작업자 노드 사이의 다른 연결 문제가 있으면 모두 해결합니다.
오류는 SSL에 대한 신뢰 관계를 설정할 수 없습니다.
증상
System.ServiceModel.Security.SecurityNegotiationException: '[컴퓨터 이름]:[포트]' 권한이 있는 SSL/TLS 보안 채널에 대해 트러스트 관계를 설정할 수 없습니다.
"System.Net.WebException: 기본 연결이 닫혔습니다. SSL/TLS 보안 채널에 대한 트러스트 관계를 설정할 수 없습니다."
"System.Security.Authentication.AuthenticationException: 유효성 검사 절차에 따르면 원격 인증서가 잘못되었습니다."
솔루션
인증서가 아직 설치되지 않은 경우 Scale Out 작업자 노드에서 로컬 컴퓨터의 루트 인증서 저장소에 Scale Out 마스터 인증서를 설치하고 Worker Scale 작업자 서비스를 다시 시작합니다.
마스터 엔드포인트의 호스트 이름이 Scale Out 마스터 인증서의 CN에 포함되어 있는지 확인합니다. 그렇지 않으면 Scale Out 작업자 구성 파일에서 마스터 엔드포인트를 다시 설정하고 Scale Out 작업자 서비스를 다시 시작합니다.
참고 항목
DNS 설정으로 인해 마스터 엔드포인트의 호스트 이름을 변경할 수 없는 경우 Scale Out 마스터 인증서를 변경해야 합니다. SSIS Scale Out에 대한 인증서 관리를 참조하세요.
Scale Out 작업자 구성에 지정된 마스터 지문이 Scale Out 마스터 인증서의 지문과 일치하는지 확인합니다.
보안 채널을 설정할 수 없는 경우
증상
"System.ServiceModel.Security.SecurityNegotiationException: '[컴퓨터 이름]:[포트]' 권한이 있는 SSL/TLS에 대한 보안 채널을 설정할 수 없습니다."
"System.Net.WebException: 요청이 중단되었습니다. SSL/TLS 보안 채널을 만들 수 없습니다."
솔루션
Scale Out 작업자 서비스를 실행하는 계정에 다음 명령을 실행하여 Scale Out 작업자 인증서에 액세스할 수 있는지 확인합니다.
winhttpcertcfg.exe -l -c LOCAL_MACHINE\MY -s {CN of the worker certificate}
계정에 액세스 권한이 없는 경우 다음 명령을 실행하여 액세스 권한을 부여하고 Scale Out 작업자 서비스를 다시 시작합니다.
winhttpcertcfg.exe -g -c LOCAL_MACHINE\My -s {CN of the worker certificate} -a {the account running Scale Out Worker service}
HTTP 요청이 금지되었습니다.
증상
"System.ServiceModel.Security.MessageSecurityException: HTTP 요청은 클라이언트 인증 체계 '익명'으로 금지되었습니다."
“System.Net.WebException: 원격 서버에서 (403) 사용할 수 없음 오류를 반환했습니다.”
솔루션
인증서가 아직 설치되지 않은 경우 Scale Out 작업자 노드에서 로컬 컴퓨터의 루트 인증서 저장소에 Scale Out 마스터 인증서를 설치하고 Worker Scale 작업자 서비스를 다시 시작합니다.
Scale Out 마스터 노드에 있는 로컬 컴퓨터의 루트 인증서 저장소에서 쓸모 없는 인증서를 정리합니다.
Scale Out 마스터 노드에 다음 레지스트리 항목을 추가하여 TLS/SSL 핸드셰이크 프로세스 중에 신뢰할 수 있는 루트 인증 기관 목록을 더 이상 보내지 않도록 Schannel을 구성합니다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
값 이름: SendTrustedIssuerList
값 형식: REG_DWORD
값 데이터: 0(False)
2단계에서 설명한 대로 자체 서명되지 않은 인증서를 모두 정리할 수 없는 경우 다음 레지스트리 키의 값을 2로 설정합니다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
값 이름: ClientAuthTrustMode
값 형식: REG_DWORD
값 데이터: 2
참고 항목
루트 인증서 저장소에 자체 서명되지 않은 인증서가 있는 경우 클라이언트 인증서 인증이 실패합니다. 자세한 내용은 Internet Information Services (IIS) 8 may reject client certificate requests with HTTP 403.7 or 403.16 errors(IIS(인터넷 정보 서비스) 8이 HTTP 403.7 또는 403.16을 포함하는 클라이언트 인증서 요청을 거부할 수 있음)를 참조하세요.
HTTP 요청 오류
증상
"System.ServiceModel.CommunicationException: https://[컴퓨터 이름]:[포트]/ClusterManagement/에 대한 HTTP 요청을 수행하는 동안 오류가 발생했습니다. 이것은 HTTPS 경우에 서버 인증서가 HTTP.SYS로 제대로 구성되지 않았기 때문일 수 있습니다. 또한 클라이언트와 서버 사이에 보안 바인딩이 불일치하기 때문일 수 있습니다."
솔루션
다음 명령을 실행하여 Scale Out 마스터 인증서가 마스터 노드의 마스터 엔드포인트에 있는 포트에 올바르게 바인딩되어 있는지 확인합니다.
netsh http show sslcert ipport=0.0.0.0:{Master port}
표시된 인증서 해시가 Scale Out 마스터 인증서 지문과 일치하는지 확인합니다. 바인딩이 올바르지 않으면 다음 명령을 실행하여 바인딩을 다시 시작하고 Scale Out 작업자 서비스를 다시 시작합니다.
netsh http delete sslcert ipport=0.0.0.0:{Master port} netsh http add sslcert ipport=0.0.0.0:{Master port} certhash={Master certificate thumbprint} certstorename=Root appid={random guid}
인증서 저장소를 열 수 없음
증상
Scale Out 관리자의 Scale Out 마스터에 Scale Out 작업자를 연결할 때 "컴퓨터에서 인증서 저장소를 열 수 없습니다."라는 오류 메시지와 함께 유효성 검사에 실패합니다.
솔루션
Scale Out 관리자를 관리자 권한으로 실행합니다. SSMS를 사용하여 Scale Out 관리자를 여는 경우 관리자 권한으로 SSMS를 실행해야 합니다.
실행되고 있지 않은 경우 컴퓨터에서 원격 레지스트리 서비스를 시작합니다.
실행이 시작되지 않음
증상
Scale Out에서 실행이 시작되지 않습니다.
솔루션
보기에서 패키지를 실행하도록 선택한 컴퓨터의 상태를 확인합니다 [catalog].[worker_agents]
. 하나 이상의 작업자가 온라인 상태여야 하며 사용하도록 설정되어 있어야 합니다.
로그 없음
증상
패키지가 성공적으로 실행되었지만 메시지가 기록되지 않았습니다.
솔루션
SSISDB를 호스트하는 SQL Server 인스턴스에서 SQL Server 인증을 허용하는지 확인합니다.
참고 항목
Scale Out 로깅에 대한 계정을 변경한 경우 Scale Out 로깅에 대한 계정 변경을 참조하고 로깅에 사용된 연결 문자열을 확인합니다.
오류 메시지는 도움이 되지 않습니다.
증상
패키지 실행 보고서의 오류 메시지는 문제 해결에 충분하지 않습니다.
솔루션
WorkerSettings.config
에 구성된 TasksRootFolder
아래에서 더 많은 실행 로그를 찾을 수 있습니다 . 기본적으로 이 폴더는 \<drive\>:\Users\\[account]\AppData\Local\SSIS\ScaleOut\Tasks
입니다. [account]는 규모 확장 작업자 서비스를 실행하는 계정입니다 SSISScaleOutWorker140
.
[execution ID]를 사용하여 패키지 실행 로그를 찾으려면 아래의 T-SQL 명령을 실행하여 [task ID]를 가져옵니다. 그런 다음 TasksRootFolder
에서 [task ID]가 포함된 하위 폴더 이름을 찾습니다.
SELECT [TaskId]
FROM [SSISDB].[internal].[tasks] tasks, [SSISDB].[internal].[executions] executions
WHERE executions.execution_id = *Your Execution Id* AND tasks.JobId = executions.job_id
Warning
이 쿼리는 문제 해결 용도로만 사용됩니다. 쿼리에서 참조되는 내부 뷰는 나중에 변경될 예정입니다.
다음 단계
자세한 내용은 SSIS Scale Out 설정 및 구성에 대한 다음 문서를 참조하세요.