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 365 무료 평가판이 기다리고 있습니다

증상

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 제품에서 이 문제를 확인했습니다.

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

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

Microsoft 365 무료 평가판이 기다리고 있습니다