Förbättring
Anta att du använder SQL Server 2017 på Linux. I vissa scenarier kan SQL Server uppleva dataförlust på system som använder flyktiga cacheminnen. Förlusten uppstår på grund av oförutsedda omständigheter som strömavbrott innan cachelagrade data skrivs till ett stabilt medium. För att förhindra sådana scenarier introduceras en mekanism för tvingad tömning i kumulativ uppdatering 6 (CU6) för SQL Server 2017 på Linux. Om ditt underlagringssystem inte kan garantera varaktiga skrivningar över strömavbrott rekommenderar vi att du använder CU6 för SQL Server 2017 på Linux.
Den här uppdateringen aktiverar följande:
- Beteendet för tvingad tömning under databasskrivningsaktivitet, t.ex. kontrollpunkts- och transaktionsloggskrivningar.
- Konfigurationsinställningen writethrough=1 och alternatewritethrough=1 alternativ som standard. Med de här standardinställningarna kan SQL Server se till att skrivningar rensas varaktigt för att blockera enheter. Alternativ genomskrivning är ett alternativ för att optimera förfrågningar om tömning av varaktighet i filsystemet. Mer information om de två inställningarna finns i följande tabell:
| Name | Standard | Beskrivning |
|---|---|---|
| Genomskrivning | 1 | Giltiga värden är 0 och 1. 1 = Översätter FILE_FLAG_WRITE_THROUGH begäranden till O_DSYNC öppnar. 0 = Förhindrar översättning av FILE_FLAG_WRITE_THROUGH begäran till O_DSYNC öppnas. |
| alternatewritethough | 1 | Giltiga värden är 0 och 1. 1 = Möjliggör optimerad tömning av värdtillägget för FILE_FLAG_WRITE_THROUGH begäranden. Skrivningar på filer optimerar anrop till fdatasync för blockenheten. 0 = Inaktiverar optimering av alternativa tömningar. Filen öppnas med hjälp av O_DSYNC och det underliggande filsystemet utför de nödvändiga skriv- och tömningsbegärandena. Anteckning Inställningen alternatewritethrough gäller endast när writethrough=1. |
Mer information
Mer information finns i Bästa praxis för prestanda och konfigurationsriktlinjer för SQL Server 2017 på Linux för hantering av högfrekventa skrivarbetsbelastningar och rekommendationer för placering av databasfiler.
SQL Server installationer som körs på lagringssystem som garanterar att skrivningar är O_DIRECT säkra kan aktivera spårningsflagga (TF) 3979 för att inaktivera beteendet för tvingad tömning och ange alternativen alternatewritethrough och writethrough i mssql.conf till NOLL. Detta återställer SQL Server 2017 till pre-CU6-beteende.
Anteckning Ett lagringssystem kan se till att alla cachelagrade eller mellanlagrade skrivningar anses vara säkra och varaktiga genom att garantera att skrivningar som utfärdats till enheten lagras på ett medium som bevaras efter systemkrascher, gränssnittsåterställningar och strömavbrott, och själva mediet är maskinvaruredundant.
Här följer mer information om SQL Server beteende för fil-I/O med dessa ändringar:
- Databasfiler (.mdf) och transaktionsloggfiler (.ldf) använder inte writethrough och alternatewritethrough som standard i CU6 eftersom de använder beteendet för tvingad tömning . TF 3979 inaktiverar användningen av beteendet för tvingad tömning för databas- och transaktionsloggfiler och använder logiken writethrough och alternatewritethrough.
- Andra filer som öppnas med hjälp av FILE_FLAG_WRITE_THROUGH i SQL Server, till exempel ögonblicksbilder av databaser, interna ögonblicksbilder för konsekvenskontroller av databaser (CHECKDB), spårningsfiler för profilerare och filer för utökad händelsespårning, använder optimeringarna writethrough och alternatewritethrough.
Lösning
Den här uppdateringen ingår i följande kumulativa uppdatering för SQL Server:
Kumulativ uppdatering 6 för SQL Server 2017
Om kumulativa uppdateringar för SQL Server:
Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:
Senaste kumulativa uppdateringen för SQL Server 2017
Referenser
Läs om den terminologi som Microsoft använder för att beskriva programuppdateringar.