După ce aplicați această remediere rapidă, trebuie să activați semnalizatorul de urmărire 1800 ca parametru de pornire pe toate serverele sau reproducerile care au dimensiunea sectorului fizic de 512 byți și să le reporniți, pentru ca această remediere rapidă să funcționeze corect.
Simptome
Luați în considerare următorul scenariu:
-
Activați caracteristica Grupuri de disponibilitate AlwaysOn sau Caracteristica de livrare a jurnalelor în Microsoft SQL Server.
-
Discurile care stochează fișierele jurnal ale reproducerii primare și secundare într-un grup de disponibilitate AlwaysOn (AG) au dimensiuni de sector diferite. Sau, în mediile de expediere a jurnalelor, discurile care stochează fișierele jurnal pentru serverele principale de expediere jurnale și jurnalele de expediere a serverelor secundare au dimensiuni diferite de sector. De exemplu:
-
Fișierul jurnal principal al reproducerii se află pe un disc care are o dimensiune de sector de 512 byți. Cu toate acestea, fișierul jurnal al reproducerii secundare se află pe un disc care are dimensiunea de sector de 4 kiloocteți (KB).
-
Fișierul jurnal principal al reproducerii se află pe un sistem local local care are o dimensiune de sector de 512 byți. Cu toate acestea, reproducerea secundară se află pe un disc De stocare Windows Azure care are dimensiunea de sector de 4 kiloocteți (KB).
-
În acest scenariu, următorul mesaj de eroare este înregistrat în jurnalul de erori SQL Server. Mesajul de eroare poate continua un timp după repornire dacă au existat jurnale care nu au fost aplicate la secundar înainte de repornirea serverului.
Au existat IO-uri de jurnal aliniate greșit X care necesitau revenirea la IO sincronizat. IO curent este înregistrat ....
În plus, sincronizarea AG sau Logshipping rulează foarte lent din cauza I/Os sincron. Dacă reproducerea secundară se află în stocarea Windows Azure, finalizarea procesului de sincronizare durează mult mai mult decât era de așteptat.
Notă Această problemă apare atunci când utilizați atât unitățile noi care au o dimensiune de sector de 4 KB, cât și unitățile vechi care au dimensiunea de sector 512 byte. Pentru mai multe informații despre noile unități, consultați SQL Server - Unitățile noi utilizează dimensiunea sectorului 4K și SQL Server - Spații de stocare/VHDx și dimensiunea sectorului 4K.
Rezolvare
Problema a fost remediată prima dată în următoarea actualizare cumulativă a SQL Server.
Actualizarea cumulativă 5 pentru SQL Server 2014 /en-us/help/3011055
Actualizarea cumulativă 3 pentru SQL Server 2012 SP2 /en-us/help/3002049
Actualizare cumulativă 13 pentru SQL Server 2012 SP1 /en-us/help/3002044
După ce aplicați remedierea rapidă și activați semnalizatorul de urmărire 1800 ca parametru de pornire pe toate reproducerile serverelor care rulează pe un disc care are o dimensiune de sector de 512 byți, observați o mică creștere a dimensiunii următoarelor fișiere:
-
Fișier jurnal de tranzacții
-
Backup jurnal
În plus, observați că următoarele mesaje sunt înregistrate în jurnalul de erori SQL Server al serverului principal:
Coada jurnalului pentru " <nume bază de date>" a bazei de date este rescrisă pentru a se potrivi cu noua dimensiune de sector de 4096 byți
Acesta este un mesaj informativ care poate fi ignorat în siguranță.
Fiecare actualizare cumulativă nouă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în actualizarea cumulativă anterioară. Vedeți cele mai recente actualizări cumulative pentru SQL Server:
Soluție de evitare
Pentru a rezolva această problemă, mutați fișierul jurnal de tranzacții la destinație într-o unitate care are byți per sector fizic setat ca 512 octeți.
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.
Mai multe informații
Ca un exemplu de bună practică, încercați să vă asigurați că toate discurile de pe toate reproducerile (cel puțin toate discurile care găzduiesc fișiere jurnal) au aceeași dimensiune de sector. În medii mixte, unde secundarul are un sector fizic de 512 byți, iar cel principal are o dimensiune de sector de 4 KB, TF 1800 ar trebui utilizat ca semnalizator de pornire pe toate serverele sau reproducerile care au dimensiunea fizică a sectorului fizic de 512 octeți și repornite. Acest lucru vă asigură că formatul continuu de creare a jurnalului utilizează o dimensiune de sector de 4 KB.
Pentru mai multe informații despre modul în care funcționează SQL Server cu dimensiuni mai mari de sector, consultați următoarea postare pe blogul de asistență:
SQL Server–Spații de stocare/VHDx și dimensiunea
sectorului 4K
Puteți utiliza utilitarul linie de comandă Fsutil pentru a determina valoarea Byți per sector fizic. Dacă acest parametru nu este vizibil la ieșire, trebuie să aplicați remedierea rapidă specificată în articolul din baza de date 982018.
Pentru a verifica tipul de unitate pe care o aveți, urmați acești pași:
-
Rulați următoarea comandă într-o linie de comandă cu drepturi sporite:
Fsutil fsinfo ntfsinfo x: Notă Substituentul x reprezintă unitatea pe care o verificați.
-
Utilizați valorile pentru byți pe sector și octeți per sector fizic pentru a determina tipul de unitate pe care îl aveți. Pentru a face acest lucru, utilizați tabelul următor:
Valoarea "Octeți pe sector"
Valoarea "Byți per sector fizic"
Tip unitate
4096
4096
4K nativ
512
4096
Format complex (numit și 512E)
512
512
Nativ pe 512 byți