KB4131496 - Îmbunătățire: Activarea mecanismului de "eliminare forțată" în SQL Server 2017 pe Linux

Se aplică la
SQL Server 2017 Developer Linux SQL Server 2017 Enterprise Core on Linux SQL Server 2017 Enterprise on Linux SQL Server 2017 Standard on Linux

Îmbunătățire

Să presupunem că utilizați SQL Server 2017 pe Linux. În anumite scenarii, SQL Server se poate confrunta cu pierderi de date pe sistemele care utilizează memorii cache volatile. Pierderea are loc din cauza unor circumstanțe neprevăzute, cum ar fi întreruperea curentului înainte ca datele memorate în cache să fie scrise pe un suport stabil. Pentru a preveni astfel de scenarii, este introdus un mecanism de golire forțată în actualizarea cumulativă 6 (CU6) pentru SQL Server 2017 pe Linux. Dacă subsistemul dvs. de stocare nu poate garanta scrieri durabile în timpul pierderilor de tensiune, vă recomandăm să aplicați CU6 pentru SQL Server 2017 pe Linux.

Această actualizare permite următoarele:

  • Comportamentul de golire impusă în timpul activității de scriere a bazei de date, cum ar fi scrierile de la punctul de verificare și jurnalul de tranzacții.
  • Setarea de configurare opțiunile writethrough=1 și alternatewritethrough=1 în mod implicit. Aceste setări implicite permit SQL Server să se asigure că scrierile sunt golite durabil pentru a bloca dispozitivele. Write-through alternativ este o opțiune pentru a optimiza solicitările de golire a durabilității pentru sistemul de fișiere. Pentru mai multe informații despre cele două setări, consultați tabelul următor:
Name Implicit Descriere
Scriere 1 Valorile valide sunt 0 și 1.
1 = Traduce solicitările de FILE_FLAG_WRITE_THROUGH în O_DSYNC se deschide.
0 = împiedică translatarea solicitărilor de FILE_FLAG_WRITE_THROUGH O_DSYNC deschise.
alternatewritethough 1 Valorile valide sunt 0 și 1.
1 = permite golirea optimizată de către extensia gazdă pentru solicitările FILE_FLAG_WRITE_THROUGH. Scrierea pe fișiere Optimizează apelurile către fdatasync pentru dispozitivul de blocare.
0 = dezactivează optimizarea alternativă a golirii. Fișierul este deschis utilizând O_DSYNC și sistemul de fișiere subiacent efectuează solicitările de scriere, golire necesare.
Notă Setarea alternatewritethrough se aplică doar atunci când scriere=1.

Mai multe informații

Pentru mai multe informații, consultați Cele mai bune practici privind performanța și instrucțiunile de configurare pentru SQL Server 2017 pe Linux pentru gestionarea sarcinilor de lucru de scriere de frecvență mare și recomandărilor de plasare a fișierelor bază de date.

SQL Server instalările care rulează pe sisteme de stocare care garantează că scrierile sunt O_DIRECT sigure pot activa semnalizarea de urmărire (TF) 3979 pentru a dezactiva comportamentul de golire forțată și a seta opțiunile alternatewritethrough și writethrough din mssql.conf la ZERO. Acest lucru returnează SQL Server 2017 la comportamentul de dinainte de CU6.

Notă Un sistem de stocare se poate asigura că toate scrierile memorate în cache sau pe etape sunt considerate sigure și durabile, garantând că scrierile emise către dispozitiv sunt menținute pe un mediu care va persista între căderile de sistem, resetările interfeței și penele de curent, iar mediul în sine este redundant din punct de vedere hardware.

Iată mai multe detalii despre comportamentul SQL Server pentru I/O de fișiere cu aceste modificări:

  • Fișierele bază de date (.mdf) și jurnalele de tranzacții (.ldf) nu utilizează writethrough și alternatewritethrough în mod implicit în CU6, deoarece utilizează comportamentul de golire forțată . TF 3979 dezactivează utilizarea comportamentului de golire impusă pentru baza de date și fișierele jurnal de tranzacții și va utiliza logica writethrough și writethrough alternativă.
  • Alte fișiere care sunt deschise utilizând FILE_FLAG_WRITE_THROUGH în SQL Server, cum ar fi instantaneele bazei de date, instantaneele interne pentru verificările coerenței bazei de date (CHECKDB), fișierele de urmărire ale profilerului și fișierele de urmărire a evenimentelor extinse, vor utiliza optimizările de scriere și de scriere alternativă.

Rezolvare

Această actualizare este inclusă în următoarea actualizare cumulativă pentru SQL Server:

Actualizarea cumulativă 6 pentru SQL Server 2017

Despre actualizările cumulative pentru SQL Server:

Fiecare actualizare cumulativă nouă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu actualizarea cumulativă anterioară. Consultați cele mai recente actualizări cumulative pentru SQL Server:

Cea mai recentă actualizare cumulativă pentru SQL Server 2017

Referințe

Aflați despre terminologia pe care o utilizează Microsoft pentru a descrie actualizările de software.