תופעות
נניח שאתה משתמש ב-Microsoft SQL Server 2012, 2014 או 2016. בעת גיבוי מסד נתונים לכתובת ה-URL של שירות האחסון Blob של Microsoft התכלת, הפעולה עשויה להיכשל ותקבל את הודעות השגיאה הבאות הן בצד הלקוח והן ביומן השגיאות של SQL Server.
שגיאת לקוח של SQL Server
Msg 3271, Level 16, State 1, Line LineNumber אירעה שגיאת קלט/פלט של nonrecoverable בקובץ "https://_ lT_BlobStorageServerName>. blob. core. windows. net/sqlbackup/_ lT_DB_Backup_Name. bak>" הגיבוי לכתובת ה-URL שהתקבל מנקודת הקצה המרוחקת. הודעת חריגה: החיבור המשמש כבסיס נסגר: אירעה שגיאה בלתי צפויה בקבלה. Msg 3013, Level 16, State 1, Line 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 שם: זמין Type: REG_DWORD Data: 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 משתמשת כדי לתאר עדכוני תוכנה.
מצב
Microsoft אישרה שזוהי בעיה במוצרי Microsoft המופיעים בסעיף "חל על".