Ознаки
Припустимо, що ви використовуєте Microsoft SQL Server 2012, 2014 або 2016. Під час резервного копіювання бази даних до URL-адреси служби сховища Microsoft Azure BLOB-сервера операція може бути виконана, і в журналі помилок SQL Server з'явиться таке повідомлення про помилку.
Помилка клієнта сервера SQL Server
MSG 3271, рівень 16, стан 1, лінія Linenumber Помилка невидобутого повідомлення про помилку I/O у файлі "https://<BlobStorageServerName>. blob.core.windows.net/sqlbackup/<DB_Backup_Name. bak>" резервне копіювання на URL-адресу отримано виняток із віддаленої кінцевої точки. Повідомлення винятків: вихідне підключення було закрито: сталася неочікувана помилка в отриманні. MSG 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 (HTTPS) Server версії 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
Кожне нове Сукупне оновлення для SQL Server містить усі поточні виправлення та всі виправлення системи безпеки, які були включені до попереднього сукупного оновлення. Ознайомтеся з найновішими сукупними оновленнями для сервера SQL Server:
Тимчасове рішення для 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.
Посилання
Відомості про термінологію, яку корпорація Майкрософт використовує для опису оновлень програмного забезпечення.
Стан
Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "застосовується до".