다음을 통해 공유


암호화 및 네트워크 패킷 크기를 사용하도록 구성된 SQL 서버의 SSIS 패키지 오류

이 문서는 암호화된 연결 및 네트워크 패킷 크기 옵션을 사용하도록 SQL Server 구성할 때 발생하는 문제를 resolve 데 도움이 됩니다.

원래 제품 버전: SQL Server
원래 KB 번호: 2006769

증상

SQL Server 환경에 대해 다음 시나리오를 고려합니다.

이 시나리오에서는 다음을 확인할 수 있습니다.

  • MSDB 패키지 저장소에 SSIS 패키지를 저장하려고 하면 다음 오류 메시지와 함께 실패합니다.

    SaveToSQLServer 메서드에 OLE DB 오류 코드 0x80004005(통신 링크 오류)가 발생했습니다. 실행된 SQL 문이 실패했습니다.

    참고

    또한 SQL Server Management Studio 만든 유지 관리 계획을 MSDB 데이터베이스에 SSIS 패키지로 저장할 때 위의 오류 메시지가 표시됩니다. 이 작업은 기본적으로 SQL Server 연결에 암호화를 사용하기 때문에 발생합니다.

  • SSIS를 사용하는 SQL Server 데이터 수집기 기능은 아래에 설명된 대로 다양한 문제가 실행됩니다.

    • 데이터 수집 집합 작업은 작업 기록에서 다음 오류를 보고합니다.

    dcexec: 오류: 주(이유: 시스템에서 지정된 파일을 찾을 수 없음)의 내부 오류입니다.
    dcexec: 오류: 주(이유: 핸들이 잘못됨)의 내부 오류입니다.

    • 데이터에서 직접 데이터 수집 집합을 실행하는 경우 다음 오류 메시지가 표시될 수 있습니다.

    패키지 "Set_{7B191952-8ECF-4E12-AEB2-EF646EF79FEF}_Master_Package_Collection" 패키지가 실패했습니다.

데이터 수집기 로그를 검토하면 다음과 유사한 오류 메시지가 표시됩니다.

SSIS 오류입니다. 구성 요소 이름: TaskForCollectionItem_1, 코드: -1073602332, 하위 구성 요소: (null), 설명: 패키지 로드를 준비하는 동안 오류 0xC0014062. LoadFromSQLServer 메서드에 OLE DB 오류 코드 0x80004005(통신 링크 오류)가 발생했습니다. 실행된 SQL 문이 실패했습니다.

이 섹션에서 설명하는 조건(암호화 및 큰 패킷 크기)이 모두 true인 경우 Application.LoadFromSqlServer(String, String, String, String, IDTSEvents) 메서드 또는 Application.SaveToSqlServer(Package, IDTSEvents, String, String, String) 메서드 를 사용하는 모든 작업에서 문제가 발생할 수 있습니다.

원인

SSL(Secure Socket Layer)과 해당 대체 TLS(전송 계층 보안)는 데이터 조각을 크기가 16k(16384)로 제한합니다. 이는 공용 RFC 2246 (섹션 6.2.2) 및 네트워크 프로토콜의 현재 구현에 설명 되어 있으며 TDS 엔드포인트 계층은 이 사양을 준수합니다. 따라서 SQL Server 암호화를 사용하는 환경에서 16k보다 큰 네트워크 패킷 크기를 사용하는 경우 증상 섹션에서 설명하는 오류가 발생합니다.

해결 방법

이 문제를 resolve 16,384바이트보다 작거나 같은 네트워크 패킷 크기를 지정합니다. 다음 코드를 사용하여 시스템 저장 프로시저의 network packet sizesp_configure 구성 옵션을 설정할 수 있습니다.

참고

MARS를 사용하는 경우 SMUX 공급자는 SSL 암호화 전에 패킷에 16바이트 헤더를 추가하여 최대 네트워크 패킷 크기를 16368 바이트로 줄입니다.

EXEC sp_configure 'network packet size', 16368
RECONFIGURE WITH OVERRIDE
GO

네트워크 패킷 크기는 개체 탐색기 서버 속성 페이지를 통해 변경할 수도 있습니다. 고급 옵션을 선택하고 네트워크 패킷 크기에 대한 새 값을 입력하고 확인을 클릭합니다.

참고

변경 내용이 적용되려면 SQL Server 다시 시작할 필요가 없습니다. 이 설정이 변경되면 모든 새 연결이 새 값을 받습니다.

추가 정보

TLS 및 SSL

재현 단계

sp_configure 'network packet size', 16384
RECONFIGURE WITH OVERRIDE
GO
  1. 데이터 수집기가 설치되어 있는지 확인합니다.

  2. 네트워크 패킷 크기를 16K보다 큰 값으로 설정합니다.

  3. 개체 탐색기(OE)에서 데이터 수집을 마우스 오른쪽 단추로 클릭하고 데이터 수집을 사용하지 않도록 설정합니다.

  4. OE에서 데이터 수집 을 마우스 오른쪽 단추로 클릭하고 데이터 수집 사용을 선택합니다.

  5. 컬렉션 집합에서 서버 작업을 마우스 오른쪽 단추로 클릭하고 데이터 수집 집합 시작을 선택합니다.

  6. 오류를 얻으려면 서버 작업을 마우스 오른쪽 단추로 클릭하고 지금 수집 및 업로드를 선택합니다. (DC 로그는 오류를 자세히 표시합니다).