Applies ToSQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Enterprise Core SQL Server 2012 Standard

증상

Microsoft SQL Server 2012, 2014 또는 2016을 사용 하 고 있다고 가정 합니다. Microsoft Azure Blob 저장소 서비스 URL에 데이터베이스를 백업 하면 작업이 실패할 수 있으며 클라이언트 쪽 및 SQL Server 오류 로그에 다음과 같은 오류 메시지가 표시 됩니다.

SQL Server 클라이언트 오류

메시지 3271, 수준 16, 상태 1, 줄 LineNumber "Https://<BlobStorageServerName>에서 nonrecoverable I/o 오류가 발생 했습니다. blob.core.windows.net/sqlbackup/<DB_Backup_Name .bak>" URL로 백업 "이 원격 끝점에서 예외를 받았습니다. 예외 메시지: 기본 연결이 닫혔습니다. 수신에 예기치 않은 오류가 발생 했습니다. 메시지 3013, 수준 16, 상태 1, 줄 LineNumber 백업 데이터베이스가 비정상적으로 종료 됩니다.

SQL Server 오류 로그

<DateTime>    ======== BackupToUrl Initiated =========
<DateTime> Inputs: Backup = True, PageBlob= True, URI = https://<BlobStorageServerName>.blob.core.windows.net/sqlbackup/<DB_Backup_Name.bak>, Acct= lbtesting2096, Key= KeyValue, FORMAT= False, Instance Name = MSSQLSERVER, DBName = <DB_Name> LogPath = C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Log
<DateTime>    Process Id: 3668
<DateTime>     Time for Initialization = 202.7451 ms
<DateTime>    BackupToUrl Client is getting configuration from SqlServr
<DateTime>    Time for Handshake and VDI config = 31.2507 ms
<DateTime>    Time for Get BlobRef = 15.6263 ms
<DateTime>    Time for - EXCEPTION Get Fetchattributes = 45364.4979 ms
<DateTime>    An exception occurred during communication with Azure Storage, exception information follows
<DateTime>    Exception Info: The underlying connection was closed: An unexpected error occurred on a receive.
<DateTime>    Stack:    at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](StorageCommandBase`1 cmd, IRetryPolicy policy, OperationContext operationContext)
   at BackupToUrl.Program.MainInternal(String[] args)
<DateTime>    The Active queue had 1 requests until we got a clear error.

이 오류는 클라이언트 서버가 다음 레지스트리를 사용 하 여 TLS (전송 계층 보안 ) 프로토콜 버전 1.2를 사용 하는 경우 발생 합니다.

레지스트리 키 이름: 

HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2 \ 클라이언트 값 0 이름: 사용 종류: REG_DWORD 데이터: 0x1

해결 방법

이 문제는 SQL Server 2014 및 2016의 다음과 같은 누적 업데이트로 해결 됩니다.

SQL Server 2016 RTM의 누적 업데이트 7

SQL Server 2016 SP1 용 누적 업데이트 4

SQL Server 2014 SP2의 누적 업데이트 5

각각의 새로운 새 누적 업데이트에는 이전 누적 업데이트에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. SQL Server에 대 한 최신 누적 업데이트를 확인 하세요.

SQL Server 2016의 최신 누적 업데이트

SQL Server 2014의 최신 누적 업데이트

 

SQL Server 2012에 대 한 해결 방법

이 문제는 설치 된 .Net Framework에서 tls 1.2를 지원 하지만 TLS 1.0에 대 한 기본 설정이 있는 경우에 발생 합니다. 

SQL Server 2012에는 사용할 수 있는 해결 방법이 없습니다. SQL Server 2012에서 강력한 암호화를 사용 하도록 설정 하기 위해이 문제를 해결 하려면 다음을 수행 하면 됩니다. 

  • 레지스트리 백업

  • 레지스트리 편집기를 열고 다음 레지스트리 하위 키로 이동 합니다. HKLM\software\Wow6432Node\Microsoft.NETFramework\ 및 HKLM\software\microsoft.NETFramework\

  • 이러한 키 각각 아래에 하위 키가 있는 버전 번호 (예: v 4.5, v 4.5.1)가 있습니다. 각 버전에 대해 값 1 을 사용 하 여 SchUseStrongCrypto 이라는 DWORD 값을 추가 합니다.

  • HKLM\Software\Microsoft.NetFramework에서 키 이름이 정확히 4.5 또는 4.5.1 일 필요는 없습니다. 대부분의 경우 v 2.0 xxx, v 3.0 xxx v 4.0 xxx부터 시작 됩니다. 값이 1 인 이름이 ' SchUseStrongCrypto ' 인 DWORD 값을 사용할 수 있는 모든 버전에 추가 해야 합니다.

  • SQL Server 컴퓨터를 다시 부팅 합니다.

기록.Net Framework 4.8를 설치 하려고 할 수도 있습니다. 기본적으로 .NET Framework 4.7 이상 버전은 TLS 1.2를 사용 하 고 TLS 1.1 또는 TLS 1.0를 사용 하 여 연결을 허용 하도록 구성 됩니다.

참조

Microsoft에서 소프트웨어 업데이트를 설명 하는 데 사용 하는 용어에 대해 알아봅니다.

상태

Microsoft는 "적용 대상" 절에 나열한 Microsoft 제품에서 이 문제를 확인했습니다.

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.