KB3009974 – KORJAUS: Hidas synkronointi, kun levyillä on erikokoiset sektorit ensisijaisille ja toissijaisille replikan lokitiedostoille SQL Server AG- ja Logshipping-ympäristöissä

Käytetään kohteeseen
SQL Server 2014 Developer SQL Server 2014 Enterprise SQL Server 2014 Standard SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2016 Enterprise Core SQL Server 2016 Standard SQL Server 2016 Developer SQL Server 2016 Enterprise SQL Server 2016 Web SQL Server 2016 Express

Huomautus

Tämän hotfix-korjauksen käyttöönoton jälkeen sinun on otettava jäljitysmerkintä 1800 käyttöön käynnistysparametrina kaikissa palvelimissa tai replikoissa, joiden fyysinen sektorikoko on 512 tavua, ja käynnistettävä ne uudelleen, jotta tämä hotfix-korjaus toimisi oikein.

Ongelman ilmenemistapa

Mieti seuraavaa tilannetta:

  • Otat käyttöön AlwaysOn-käytettävyysryhmät tai lokinsiirron Microsoft SQL Server.

  • Levyillä, jotka tallentavat ensisijaisen ja toissijaisen replikan lokitiedostot AlwaysOn Availability Groupiin (AG), on erikokoiset sektorit. Tai Logshipping-ympäristöissä levyt, joihin tallennetaan lokitiedostoja ensisijaisille ja lokimerkintöisille toissijaisille palvelimille, ovat erikokoisia. Esimerkki:

    • Ensisijaisen replikan lokitiedosto sijaitsee levyllä, jonka sektorin koko on 512 tavua. Toissijaisen replikan lokitiedosto sijaitsee kuitenkin levyllä, jonka sektorin koko on 4 kilotavua (Kt).
    • Ensisijaisen replikan lokitiedosto sijaitsee paikallisessa paikallisessa järjestelmässä, jonka sektorin koko on 512 tavua. Toissijainen replika sijaitsee kuitenkin Windows Azure-tallennus -levyllä, jonka sektorin koko on 4 kilotavua (kt).

Tässä skenaariossa seuraava virhesanoma kirjataan SQL Server -virhelokiin. Virhesanoma voi jatkua jonkin aikaa uudelleenkäynnistyksen jälkeen, jos oli lokitietoja, joita ei ole käytetty toissijaiseen palvelimeen ennen palvelimen uudelleenkäynnistystä.

Huomautus

On ollut X väärin kohdistettua loki-IO:ta, joka on pitänyt palata takaisin synkroniseen IO:hon. Nykyinen IO on arkistossa ....

Lisäksi AG- tai Logshipping-synkronointi toimii hyvin hitaasti synkronisten I/O:iden vuoksi. Jos toissijainen replika on Windows Azure -tallennustilassa, synkronointiprosessin viimeistely kestää paljon odotettua kauemmin.

Huomautus: Tämä ongelma ilmenee käytettäessä sekä uusia asemia, joiden sektori koko on 4 kt, että vanhoja asemia, joiden sektorikoko on 512 tavua. Lisätietoja uusista asemista on artikkelissa SQL Server – uudet asemat Käytä 4K-sektorikokoa ja SQL Server-tallennustilan / VHDx:n ja 4K-sektorin kokoa.

Ratkaisu

Ongelma korjattiin ensimmäisen kerran seuraavassa SQL Server kumulatiivisessa päivityksessä.

SQL Server 2014:n kumulatiivinen päivitys 5 /en-us/help/3011055

SQL Server 2012 SP2:n kumulatiivinen päivitys 3 /en-us/help/3002049

SQL Server 2012 SP1:n kumulatiivinen päivitys 13 /en-us/help/3002044

Kun olet ottanut käyttöön hotfix-korjauksen ja ottanut jäljitysmerkinnän 1800 käynnistysparametrina kaikissa palvelinreplikoissa, jotka ovat käynnissä levyllä, jonka sektorin koko on 512 tavua, huomaat seuraavien tiedostojen koon kasvavan hieman:

  • Tapahtumalokitiedosto
  • Lokien varmuuskopiot

Lisäksi huomaat, että seuraavat viestit kirjataan ensisijaisen palvelimen SQL Server -virhelokiin:

Huomautus

Tietokannan "<tietokannan nimi>"-lokin häntä kirjoitetaan uudelleen vastaamaan uutta sektorikokoa, joka on 4 096 tavua

Tämä on tietosanoma, jonka voi huoletta ohittaa.

Tietoja SQL Serverin kumulatiivisista päivityksistä

Jokainen uusi SQL Server -kumulatiivinen päivitys sisältää kaikki edelliseen kumulatiiviseen päivitykseen sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Katso SQL Server:n uusimmat kumulatiiviset päivitykset:

Vaihtoehtoinen menetelmä

Voit kiertää tämän ongelman siirtämällä tapahtumalokitiedoston kohteessa asemaan, jonka tavumäärä fyysistä sektoria kohti on määritetty 512 tavuksi.

Tila

Microsoft on vahvistanut tämän olevan ongelma niissä Microsoftin tuotteissa, jotka ovat listattuna Koskee seuraavia tuotteita -osiossa.

Lisätietoja

Paras käytäntö on yrittää varmistaa, että kaikkien replikoiden kaikilla levyillä (vähintään kaikilla lokitiedostoja isännöivillä levyillä) on sama sektorikoko. Yhdistetyissä ympäristöissä, joissa toissijaisen fyysinen sektori on 512 tavua ja ensisijaisen sektorin koko on 4 kt, TF 1800:aa tulisi käyttää käynnistysmerkintänä kaikissa palvelimissa tai replikoissa, joiden fyysinen sektori on 512-tavuinen ja jotka on käynnistetty uudelleen. Näin varmistetaan, että käynnissä olevan lokin luomisen muoto käyttää 4 kt:n sektorikokoa.

Lisätietoja siitä, miten SQL Server toimii suurempien sektorikokojen kanssa, on seuraavassa tukiblogin kirjoituksessa:

SQL Server – Tallennustilat/VHDx- ja 4K-sektorien koko

Voit käyttää Fsutil-komentokehoteapuohjelmaatavujen määrän määrittämiseen fyysistä sektoria kohden. Jos tämä parametri ei näy tulosteessa, sinun on otettava käyttöön Knowledge Base -artikkelissa 982018 määritetty hotfix-korjaus.

Voit tarkistaa käytössäsi olevan aseman tyypin seuraavasti:

  1. Suorita seuraava komento järjestelmänvalvojan oikeuksin suoritettavassa komentokehotteessa:
    Fsutil fsinfo ntfsinfo x: Huomautus X-paikkamerkki edustaa tarkistettavaa asemaa.

  2. Määritä käytössäsi olevan aseman tyyppi käyttämällä Tavua sektorilla - ja Tavuja fyysistä sektoria kohden -arvoja. Voit tehdä tämän seuraavan taulukon avulla:

    Tavua sektoria kohden -arvo Tavua fyysisellä sektorilla -arvo Aseman tyyppi
    4096 4096 4K-alkuperäinen
    512 4096 Advanced Format (tunnetaan myös nimellä 512E)
    512 512 512-tavuinen alkuperäinen