Подобряване
Приемете, че използвате SQL Server 2017 за Linux. При определени сценарии SQL Server може да изгуби загуба на данни в системи, които използват летливи кеширания. Тази загуба възниква поради непредвидени обстоятелства като прекъсване на захранването, преди кешираните данни да се запишат в стабилна среда. За да се предотвратят подобни сценарии, в кумулативната актуализация 6 (CU6) за SQL Server 2017 в Linux е въведена принудителна флъш . Ако подсистемата за съхранение не може да гарантира трайно писане в Power Loss, ви препоръчваме да приложите CU6 за SQL Server 2017 върху Linux. Тази актуализация позволява следното:
-
Принудителното изчистване поведение при запис на база данни, като например "контролна точка" и регистър за транзакции.
-
Настройката за конфигуриране наwritethrough = 1и alternatewritethrough = 1Опции по подразбиране. Тези настройки по подразбиране РАЗРЕШАВАТ SQL Server, за да се уверите, че писането е трайно зачервена, за да блокира устройства. Алтернативен writethrough е опция за оптимизиране на заявките за изчистване на издръжливост във файловата система. За повече информация относно двете настройки вижте таблицата по-долу:
Име |
По подразбиране |
Описание |
writethrough |
1 |
Валидните стойности са 0 и 1. 1 = превежда FILE_FLAG_WRITE_THROUGH искания в O_DSYNC се отваря. 0 = позволява отварянето на превод на искания за FILE_FLAG_WRITE_THROUGH O_DSYNC. |
alternatewritethough |
1 |
Валидните стойности са 0 и 1. 1 = разрешава оптимизирано зачервяване от разширението на хоста за FILE_FLAG_WRITE_THROUGH искания. Напиши (а) на файлове за оптимизиране (а) повиквания към fdatasync за блокиращо устройство. 0 = забранява алтернативната оптимизация за флъш. Файлът се отваря, като се използва O_DSYNC, а съответната файлова система извършва необходимите изписвания, заявки за изчистване. Забележка настройката alternatewritethrough се прилага само когато writethrough = 1. |
Повече информация
За повече информация вижте най-добри практики и указания за конфигуриране за SQL Server 2017 за Linux за работа с високочестотни натоварения запис и препоръки за разполагане на база данни.
Инсталациите на SQL Server, които се изпълняват на системите за съхранение, които гарантират, чеO_DIRECT е безопасно , могат да разрешат проследяване на флага (TF) 3979, за да забраните принудителното преливане и да зададете опциите за alternatewritethrough и writethrough в MSSQL. conf към нула. Това връща SQL Server 2017, за даCU6 поведениетоси.
Забележка Системата за съхранение може да се увери, че всеки кеширан или поетапен текст се смята за безопасен и траен, като се гарантира, че изписванията, издадени на устройството, се съхраняват в среда, която ще продължи да се срива, интерфейсът нулира и прекъсване на тока, а самият носител е неизползван хардуер.
Ето повече подробности за поведението на SQL Server за файлове в/о с тези промени:
-
Файлове на база данни (. MDF) и регистрационния файл на транзакциите (. ldf) не използват writethrough и alternatewritethrough по подразбиране в CU6, тъй като използват принудителното поведение на флъш. TF 3979 забранява използването на принудителното поведение при пречиствания за бази данни и регистрационните файлове за транзакции и ще използва логиката writethrough и alternatewritethrough.
-
Други файлове, които са отворени с помощта на FILE_FLAG_WRITE_THROUGH в SQL Server, като например снимки на база данни, вътрешни снимки за проверки за съгласуваност на бази данни (CHECKDB), профилиране на файлове за проследяване и допълнителни файлове за проследяване на събития, ще използват оптимизации за writethrough и alternatewritethrough.
Решение
Тази актуализация е включена в следната сборна актуализация за SQL Server:
Всяка нова сборна актуализация за SQL Server съдържа всички поправки и всички корекции на защитата, които са били включени в предишната сборна актуализация. Вижте последните сборни актуализации за SQL Server:
Препратки
Научете повече за терминологията, която Microsoft използва, за да опише софтуерни актуализации.