Применяется к
SQL 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. При резервном копировании базы данных в URL-адрес службы хранилища больших двоичных объектов Microsoft Azure может произойти сбой, и на стороне клиента и в журнале ошибок сервера SQL Server будут отображаться указанные ниже сообщения об ошибках.

Ошибка клиента SQL Server

Сообщение 3271, уровень 16, состояние 1, строка LineNumber Произошла неустранимая ошибка ввода-вывода в файле "https://<BlobStorageServerName>. 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.

Эта ошибка возникает в том случае, если Transport Layer Securityпротокол TLS версии 1,2,установленной на сервере клиентского доступа, имеет следующий реестр.

Имя раздела реестра: 

HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2 \ клиент Значение 0 Имя: включено Тип: REG_DWORD Данные: 0x1

Решение

Эта проблема исправлена в перечисленных ниже накопительных обновлениях для SQL Server 2014 и 2016.

Накопительное обновление 7 для SQL Server 2016 RTM

Накопительное обновление 4 для SQL Server 2016 с пакетом обновления 1 (SP1)

Накопительное обновление 5 для SQL Server 2014 с пакетом обновления 2 (SP2)

Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Ознакомьтесь с самыми последними накопительными обновлениями для SQL Server.

Последнее накопительное обновление для SQL Server 2016

Последнее накопительное обновление для SQL Server 2014

 

Временное решение для SQL Server 2012

Эта проблема возникает в том случае, если установленная платформа .NET Framework имеет приоритет для TLS 1,0, хотя она поддерживает TLS 1,2. 

Для SQL Server 2012 не предусмотрено исправление. Чтобы устранить эту проблему в SQL Server 2012 для включения усиленной криптографической возможности, выполните указанные ниже действия. 

  • Создание резервной копии реестра

  • Откройте редактор реестра и перейдите к следующим подразделам реестра: HKLM\software\Wow6432Node\Microsoft.NETFramework\ и HKLM\software\microsoft.NETFramework\

  • В каждом из этих разделов подключают номера версий (например, v 4.5, v 4.5.1). Добавьте параметр DWORD с именем SchUseStrongCrypto и значением 1 для каждой версии.

  • В разделе HKLM\Software\Microsoft.NetFramework имена ключей не обязательно должны быть ровно 4,5 или 4.5.1. В основном они будут начинаться с v 2.0 XXX, v 3.0 XXX и v 4.0 XXX. Параметр DWORD с именем "SchUseStrongCrypto" и значением 1 следует добавить для всех доступных версий.

  • Перезагрузите компьютер SQL Server.

Примечание. Вы также можете попытаться установить .NET Framework 4,8. По умолчанию .NET Framework 4,7 и более поздние версии настроены на использование TLS 1,2 и разрешают подключения с помощью TLS 1,1 или TLS 1,0.

Ссылки

Ознакомьтесь с терминологией, которую корпорация Майкрософт использует для описания обновлений программного обеспечения.

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.