KB2574699 – KORJAUS: Tietokannan datatiedostot saatettiin merkitä virheellisesti hajaiksi SQL Server 2008 R2:ssa tai SQL Server 2008:ssa, vaikka fyysiset tiedostot olisi merkitty tiedostojärjestelmässä ei-hajaiksi

Käytetään kohteeseen
SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express SQL Server 2008 R2 Workgroup SQL Server 2008 R2 Standard SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 Standard SQL Server 2008 Workgroup

Microsoft jakelee Microsoft SQL Server 2008 R2- tai Microsoft SQL Server 2008 -korjaukset yhtenä ladattavana tiedostona. Koska korjaukset ovat kumulatiivisia, jokainen uusi versio sisältää kaikki edelliseen SQL Server 2008 R2:n tai SQL Server 2008:n korjausversioon sisältyvät hotfix-korjaukset ja tietoturvakorjaukset.

Ongelman ilmenemistapa

Microsoft SQL Server 2008 R2 tai Microsoft SQL Server 2008 voi merkitä tietokannan datatiedostot hajaiksi, vaikka fyysiset tiedostot olisi merkitty tiedostojärjestelmässä ei-hajaiksi.

Muistiinpanot

  • Voit selvittää, onko tietokannan datatiedostot merkitty SQL Server metatiedoissa harvaksi suorittamalla seuraavan lausekkeen ja tarkistamalla sitten, onko Is_Sparse sarakkeen arvo muu kuin nolla tulosjoukossa:

    
    

    Yleismerkki
    <tietokannan nimi>
    Valitse is_sparse physical_name sys.database_files

  • Voit tarkistaa fyysisten tiedostojen tilan tiedostojärjestelmässä suorittamalla seuraavan Windows-komennon, kun tietokanta on offline-tilassa:

    
    
    fsutil sparse queryflag 
    
    <files path>\<database file>
    

    Jos saat seuraavan tulosteen, tiedosto merkitään tiedostojärjestelmässä hajautettuna:

    Tämä tiedosto on määritetty hajautettuna.

  • Sekä SQL Server -metatiedot että tiedostojärjestelmän metatiedot on merkittävä hajautetuiksi vain silloin, kun tietokanta datatiedostot ovat osa tietokannan tilannevedosta.

Syy

Tämä ongelma ilmenee, koska tiedostojärjestelmä merkitsee virheellisesti koko tietokannan datatiedoston hajautettavaksi sen jälkeen, kun alun perin hajautettavaksi merkitty vaihtoehtoinen tietovirta on poistettu. Vaihtoehtoinen tietovirta poistetaan, kun DBCC CHECKDB -komento päättyy.

Muistiinpanot

  • Sisäisen tietokannan tilannevedoksen käyttö on NTFS-ominaisuus, jota DBCC CHECKDB -komentoperheen komennot käyttävät. Kun suoritat DBCC-komentoja, tietokantamoduuli luo tietokannan tilannevedoksen vaihtoehtoisen virran ja vie sen tapahtuman johdonmukaiseen tilaan. DBCC-komento tarkistaa vaihtoehtoisen tietovirran. Vaihtoehtoinen tietovirta poistetaan, kun DBCC-komento on valmis.

  • Tämän ongelman aiheuttava rakenne esiteltiin Windows Server 2003:ssa. Siinä käytetään Windowsin asematason varmuuskopioita tietokantatiedostojen varmuuskopiointiin. SQL Server -metatietoihin tallennetaan kopio järjestelmätaulukoiden datatiedostojen hajautuksista. SQL Server ei kuitenkaan päivitä Is_Sparse tietoja sen jälkeen, kun hajautettu määrite on poistettu tiedostojärjestelmästä.

  • Tämä ongelma ilmenee myös, kun tietokanta on siirretty Windows Server 2003:sta uudempaan Windows-käyttöjärjestelmään.

    Saatat esimerkiksi siirtää tietokantoja Windows Server 2003:sta Windows Server 2008:aan tai Windows Server 2008 R2:een.

Ratkaisu

Voit ratkaista tämän ongelman SQL Server 2008 R2:ssa tai SQL Server 2008:ssa asentamalla seuraavan hotfix-korjauksen ja siirtämällä tietokannan verkkoon. Kun tietokanta siirretään online-tilaan, SQL Server tarkistaa, onko fyysisen tietokantatiedoston metatiedot merkitty tiedostojärjestelmässä hajautetuiksi. Jos se on merkitty matalaksi, SQL Server -metatiedot päivitetään.

Huomautus: Jos haluat poistaa hajautetut määritteet tiedostojärjestelmästä, kopioi tietokantatiedostot ja käytä sitten tiedostojen uutta kopiota tietokannassa. Lisätietoja tästä prosessista on seuraavassa MSDN-sivustossa:

Hajautettujen määritteiden poistaminen tiedostojärjestelmästä

Kumulatiiviset päivitystiedot

SQL Server 2008 Service Pack 3

Tämän ongelman korjaus julkaistiin ensin SQL Server 2008 Service Pack 3:n kumulatiivisessa päivityspaketissa 1. Saat lisätietoja tästä kumulatiivisesta päivityspaketista napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:

2617146 Kumulatiivinen päivityspaketti 1 SQL Server 2008 Service Pack 3:lleHuomautus Koska koontiversiot ovat kumulatiivisia, jokainen uusi korjausversio sisältää kaikki SQL Server 2008:n aiempaan korjausversioon sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Microsoft suosittelee, että otat käyttöön uusimman kyseisen hotfix-korjauksen sisältävän korjausversion. Lisätietoja saat napsauttamalla seuraavaa Microsoft Knowledge Base -tietokanta -artikkelinumeroa:

2629969 SQL Server 2008 -koontiversiot, jotka on julkaistu SQL Server 2008 Service Pack 3:n julkaisemisen jälkeen Microsoft SQL Server 2008:n hotfix-korjaukset on tarkoitettu tietyille SQL Server Service Pack -paketeille. SQL Server 2008 Service Pack 3 -asennukseen on asennettava SQL Server 2008 Service Pack 3 -korjaus. Oletusarvoisesti kaikki SQL Server Service Pack -pakettiin sisältyvät hotfix-korjaukset seuraavaan SQL Server Service Packiin.

SQL Server 2008 Service Pack 1

Tämän ongelman korjaus julkaistiin ensin SQL Server 2008 Service Pack 1:n kumulatiivisessa päivityspaketissa 16. Saat lisätietoja tästä kumulatiivisesta päivityspaketista napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:

2582282 Kumulatiivinen päivityspaketti 16 SQL Server 2008 Service Pack 1:lleHuomautus Koska koontiversiot ovat kumulatiivisia, jokainen uusi korjausversio sisältää kaikki SQL Server 2008:n aiempaan korjausversioon sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Microsoft suosittelee, että otat käyttöön uusimman kyseisen hotfix-korjauksen sisältävän korjausversion. Lisätietoja saat napsauttamalla seuraavaa Microsoft Knowledge Base -tietokanta -artikkelinumeroa:

970365 SQL Server 2008 -koontiversiot, jotka on julkaistu SQL Server 2008 Service Pack 1:n julkaisemisen jälkeen Microsoft SQL Server 2008:n hotfix-korjaukset on tarkoitettu tietyille SQL Server Service Pack -paketeille. SQL Server 2008 Service Pack 1:n asennukseen on asennettava SQL Server 2008 Service Pack 1 -korjaus. Oletusarvoisesti kaikki SQL Server Service Pack -pakettiin sisältyvät hotfix-korjaukset seuraavaan SQL Server Service Packiin.

SQL Server 2008 Service Pack 2

Tämän ongelman korjaus julkaistiin alun perin SQL Server 2008 Service Pack 2:n kumulatiivisessa päivityspaketissa 6. Saat lisätietoja tästä kumulatiivisesta päivityspaketista napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:

2582285 SQL Server 2008 Service Pack 2:n kumulatiivinen päivityspaketti 6Huomautus Koska koontiversiot ovat kumulatiivisia, jokainen uusi korjausversio sisältää kaikki SQL Server 2008:n aiempaan korjausversioon sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Microsoft suosittelee, että otat käyttöön uusimman kyseisen hotfix-korjauksen sisältävän korjausversion. Lisätietoja saat napsauttamalla seuraavaa Microsoft Knowledge Base -tietokanta -artikkelinumeroa:

2402659 SQL Server 2008 -koontiversiot, jotka on julkaistu SQL Server 2008 Service Pack 2:n julkaisemisen jälkeen Microsoft SQL Server 2008:n hotfix-korjaukset on tarkoitettu tietyille SQL Server Service Pack -paketeille. SQL Server 2008 Service Pack 2:n asennuksessa on käytettävä SQL Server 2008 Service Pack 2:n hotfix-korjausta. Oletusarvoisesti kaikki SQL Server Service Pack -pakettiin sisältyvät hotfix-korjaukset seuraavaan SQL Server Service Packiin.

SQL Server 2008 R2 CU9

Tämän ongelman korjaus julkaistiin alun perin SQL Server 2008 R2:n kumulatiivisessa päivityspaketissa 9. Saat lisätietoja tämän SQL Server 2008 R2:n kumulatiivisen päivityspaketin hankkimisesta napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:

2567713 Kumulatiivinen päivityspaketti 9 SQL Server 2008 R2:lle Huomautus Koska koontiversiot ovat kumulatiivisia, jokainen uusi korjausversio sisältää kaikki edelliseen SQL Server 2008 R2:n korjausversioon sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Suosittelemme, että otat käyttöön uusimman korjausversion, joka sisältää tämän hotfix-korjauksen. Lisätietoja saat napsauttamalla seuraavaa Microsoft Knowledge Base -tietokanta -artikkelinumeroa:

981356 SQL Server 2008 R2 -koontiversiot, jotka julkaistiin SQL Server 2008 R2:n jälkeen

SQL Server 2008 R2 Service Pack 1 CU2

Tämän ongelman korjaus julkaistiin ensin kumulatiivisessa päivityspaketissa 2. Saat lisätietoja tämän SQL Server 2008 R2 SP1:n kumulatiivisen päivityspaketin hankkimisesta napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:

2567714 SQL Server 2008 R2 Service Pack 1:n kumulatiivinen päivityspaketti 2Huomautus Koska koontiversiot ovat kumulatiivisia, jokainen uusi korjausversio sisältää kaikki hotfix-korjaukset ja tietoturvakorjaukset, jotka sisältyivät edelliseen SQL Server 2008 R2 SP1:n korjausversioon. Suosittelemme, että otat käyttöön uusimman korjausversion, joka sisältää tämän hotfix-korjauksen. Lisätietoja saat napsauttamalla seuraavaa Microsoft Knowledge Base -tietokanta -artikkelinumeroa:

2567616 SQL Server 2008 R2 -koontiversiot, jotka on julkaistu SQL Server 2008 R2 Service Pack 1:n jälkeen

Hotfix-korjauksen tiedot

Tuettu hotfix-korjaus on saatavana Microsoftilta. Tämä hotfix-korjaus on kuitenkin tarkoitettu vain tässä artikkelissa kuvatun ongelman korjaamiseen. Käytä tätä hotfix-korjausta vain järjestelmissä, joissa esiintyy tässä artikkelissa kuvattu ongelma. Tämä Hotfix-korjaus vaatii ehkä lisätestejä. Jos ongelma ei vaikuta sinuun vakavasti, suosittelemme odottamaan seuraavaa tämän hotfix-korjauksen sisältävää ohjelmistopäivitystä.

Jos hotfix-korjaus on ladattavissa, Knowledge Base -artikkelin yläosassa on "Ladattavissa hotfix-korjauksia" -osio. Jos tätä osaa ei näy, ota yhteyttä Microsoftin asiakaspalveluun ja tukeen hotfix-korjauksen hankkimista varten.

Huomautus: Jos muita ongelmia ilmenee tai jos vianmääritystä tarvitaan, sinun on ehkä luotava erillinen palvelupyyntö. Tavalliset tukikustannukset veloitetaan lisäkysymyksistä ja ongelmista, jotka eivät liity tähän nimenomaiseen hotfix-korjaukseen. Täydellinen luettelo Microsoftin asiakaspalvelun ja tuen puhelinnumeroista tai erillisen huoltopyynnön luominen on seuraavassa Microsoftin verkkosivustossa:

/contactus/?ws=support Huomautus Hotfix-korjauksen lataus saatavilla -lomakkeessa näkyvät kielet, joilla hotfix-korjaus on saatavilla. Jos kieltä ei näy, sille ei ole saatavilla hotfix-korjausta.

Edellytykset

Jotta voit ottaa tämän Hotfix-korjauksen käyttöön, SQL Server 2008 R2:n on oltava asennettuna.

Uudelleenkäynnistystarve

Tietokonetta ei tarvitse käynnistää uudelleen tämän hotfix-korjauksen käyttöönoton jälkeen.

Hotfix-korjauksen korvaustiedot

Tämä hotfix-korjaus ei korvaa aiemmin julkaistua hotfix-korjausta.

Tiedostojen tiedot

Tämän hotfix-korjauksen yleisellä versiolla on seuraavassa taulukossa luetellut tiedostomääritteet (tai uudemmat tiedostomääritteet). Näiden tiedostojen päivämäärät ja kellonajat on lueteltu UTC-aikana (Matched Universal Time). Kun tarkastelet tiedoston tietoja, ne muunnetaan paikalliseksi ajaksi. Voit selvittää UTC-ajan ja paikallisen ajan välisen eron Ohjauspaneelin Päivämäärä ja aika -osion Aikavyöhyke-välilehdessä.

Tiedoston nimi Tiedostoversio Tiedoston koko Päivämäärä Aika Käyttöympäristö
Sqlservr.exe 2009.100.1800.0 121,829,216 08. heinäkuuta 2011 11:55 IA-64
Sqlservr.exe 2009.100.1800.0 62,027,616 08. heinäkuuta 2011 12:28 x64
Sqlservr.exe 2009.100.1800.0 42,911,584 08. heinäkuuta 2011 13:22 x86

Tila

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

Lisätietoja

Seuraavassa taulukossa on lisätietoja tuotteista tai työkaluista, jotka tarkistavat tämän ehdon automaattisesti käyttämässäsi SQL Server -esiintymässä ja SQL Server -tuoteversioissa, joihin sääntöä verrataan.

Rule Software Säännön otsikko Säännön kuvaus Tuoteversiot, joihin sääntöä verrataan
System Center Advisor SQL Server -tietokantatiedostot, jotka on merkitty hajaiksi tiedostoiksi System Center Advisor tarkistaa, sisältääkö tämä SQL Server -esiintymä harvaksi merkittyjä tietokantatiedostoja. Vain tietokannan tilannevedostiedostot tulee merkitä tiedostoiksi. Jos normaalit tietokantatiedostot on merkitty harvaksi, Advisor luo ilmoituksen. Advisor käyttää sys.master_files luettelonäkymän is_sparse saraketta. Tarkista neuvojailmoituksen Kerättävät-osion tiedot ja tarkista, onko ongelma sisältävien tiedostojen hajautettu tila käyttöjärjestelmätasolla. Kun olet tyhjentänyt käyttöjärjestelmän hajautetun tilan, voit päivittää SQL Server -metatiedot ja synkronoida ne käyttöjärjestelmän asetusten kanssa tässä artikkelissa kuvatulla hotfix-korjauksella.

SQL Server 2008

SQL Server 2008 R2

SQL Server 2012

Viitteet

Lisätietoja DBCC-komennoista on seuraavassa MSDN-sivustossa:

Yleistä tietoa DBCC-komennoista Lisätietoja Fsutil-lausekkeesta on seuraavassa MSDN-sivustossa:

Yleistä tietoa Fsutil-lausekkeesta Saat lisätietoja tästä Windows Server 2003 -ongelmasta napsauttamalla seuraavia artikkelien numeroita, jolloin pääset lukemaan artikkelit Microsoft Knowledge Base -tietokanta -tietokannassa:

973886 Suuria tiedostoja ei voi palauttaa NTFS-tiedostojärjestelmässä, kun kaikki hajautetut määritteitä sisältävät tietovirrat on poistettu Windows XP SP2:n 64-bittisessä versiossa tai Windows Server 2003 SP2:ssa

932021 Virhesanoma suoritettaessa "chkdsk"-komentoa yhdessä /v-valitsimen kanssa Windows Server 2003 -tietokoneessa: "Korjataan hajautetun tiedostotietueen segmenttinumeroa<>"