Síntomas

Suponga que está usando Microsoft SQL Server 2012, 2014 o 2016. Al realizar una copia de seguridad de una base de datos en la dirección URL del servicio de almacenamiento de blobs de Microsoft Azure, es posible que se produzcan errores en la operación y recibirá los siguientes mensajes de error en el cliente y en el registro de errores de SQL Server.

Error de cliente de SQL Server

Msj 3271, nivel 16, estado 1, línea lineNumber Error de e/s no recuperable en el archivo "https://<BlobStorageServerName>. blob.core.windows.net/sqlbackup/<DB_Backup_Name. bak>" Backup to URL recibió una excepción del extremo remoto. Mensaje de excepción: la conexión subyacente se ha cerrado: se produjo un error inesperado en una recepción. Msj 3013, nivel 16, estado 1, línea lineNumber La copia de seguridad de la base de datos está terminando anormal.

Registro de errores de 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.

Este error se produce si su Protocolo de seguridad de la capa de transporte (TLS) de la versión 1,2del servidor cliente habilitado con el siguiente registro.

Nombre de clave del registro: 

HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2 \ cliente Valor 0 Nombre: habilitado Escriba: REG_DWORD Datos: 0x1

Resolución

Este problema se ha corregido en las siguientes actualizaciones acumulativas para SQL Server 2014 y 2016:

Actualización acumulativa 7 para SQL Server 2016 RTM

Actualización acumulativa 4 para SQL Server 2016 SP1

Actualización acumulativa 5 para SQL Server 2014 SP2

Cada actualización acumulativa para SQL Server contiene todas las revisiones y todas las revisiones de seguridad incluidas en la actualización acumulativa anterior. Consulte las últimas actualizaciones acumulativas para SQL Server:

Actualización acumulativa más reciente de SQL Server 2016

Actualización acumulativa más reciente de SQL Server 2014

 

Solución alternativa para SQL Server 2012

Este problema se produce si el .NET Framework instalado tiene una preferencia para TLS 1,0, aunque sea compatible con TLS 1,2. 

No hay ninguna solución disponible para SQL Server 2012. Para solucionar este problema de SQL Server 2012 para habilitar el cifrado seguro, puede hacer lo siguiente: 

  • Hacer una copia de seguridad del registro

  • Abra el editor del registro y vaya a las siguientes subclaves del registro: HKLM\software\Wow6432Node\Microsoft.NETFramework\ y HKLM\software\microsoft.NETFramework\

  • Debajo de cada una de estas claves, existen los números de versión (como v 4.5, v 4.5.1). Agregue un valor DWORD denominado SchUseStrongCrypto con el valor 1 para cada versión.

  • En HKLM\Software\Microsoft.NetFramework, los nombres de clave no tienen que ser exactamente 4,5 o 4.5.1. Principalmente, comenzarán desde v 2.0 xxx, v 3.0 XXX y v 4.0 XXX. El valor DWORD denominado ' SchUseStrongCrypto ' con el valor 1 debe agregarse para todas las versiones disponibles.

  • Reinicie el equipo SQL Server.

Nota :También puede intentar instalar .NET Framework 4,8. De forma predeterminada, .NET Framework 4,7 y versiones posteriores están configurados para usar TLS 1,2 y permitir conexiones usando TLS 1,1 o TLS 1,0.

Referencias

Obtenga más información sobre la terminologíaque Microsoft usa para describir las actualizaciones de software.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".

¿Necesita más ayuda?

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Unirse a Microsoft Insider

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a tu experiencia?

¡Gracias por sus comentarios!

×